阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

通过NFSv3挂载HDFS到本地目录

150次阅读
没有评论

共计 3277 个字符,预计需要花费 9 分钟才能阅读完成。

1.1 配置

编辑 $Hadoop_HOME/etc/hadoop/hdsf-site.xml 文件,增加如下配置:

<property>

<name>dfs.access.time.precision</name>

<value>3600000</value>

<description>The access time for HDFS file is precise upto thisvalue.

The default value is 1 hour. Setting a value of 0 disables

access times for HDFS.

</description>

</property>

 

<property>

<name>dfs.datanode.max.xcievers</name>

<value>1024</value>

</property>

 

<property>

<name>dfs.nfs3.dump.dir</name>

<value>/tmp/.hdfs-nfs</value>

</property>

ü 上述的属性名称 dfs.access.time.precision 已经被 dfs.namenode.accesstime.precision 替换,建议使用这个名称;

ü 上述的属性名称 dfs.datanode.max.xcievers 已经被 dfs.datanode.max.transfer.threads 替换,建议使用这个名称;

 

编辑 log4j.property 文件,增加如下配置:

log4j.logger.org.apache.hadoop.hdfs.nfs=DEBUG

log4j.logger.org.apache.hadoop.oncrpc=DEBUG

 

1.2 启动

然后可以启动 portmap 了,注意这里需要 root 权限才能启动:

sudo ./bin/hdfs portmap -start

若提示端口已经被占用,则说明系统已经启动了,需要先停止:

service portmap stop

然后再启动。

 

 

再启动 nfs,一定要先启动 portmap 才能启动 nfs:

./bin/hdfs nfs3 start

 

可以通过以下两个命令来观察是否启动 OK:

rpcinfo -p 192.168.111.130 #后面的 ip 地址是 namenode 的启动服务器地址

 

showmount -e 192.168.111.130

 

在 /mnt 目录下建立挂载目录 hdfs

mkdir –p /mnt/hdfs

 

挂载到目标目录,注意这里使用的是 mount.nfs,若没有则需要手工先安装,以下命令是在 Ubuntu12.04server 版本是进行的:

sudo mount.nfs -o nolock 192.168.111.130://mnt/hdfs

若上述命令提示 mount.nfs 不存在,则需要提前先安装好:

sudo apt-get install nfs-common

或者

sudo mount -o nolock 10.3.3.141:/ /mnt/hdfs #这是在 SUSE 机器上的命令

或者

sudo mount -t nfs -o vers=3,proto=tcp,nolock10.3.3.141:/ /mnt/hdfs #这是在 suse 机器上的命令

1.3 测试

实测如下:

一台 namenode(10.3.3.141),两台 datanode(10.3.3.142,10.3.3.143):

1、往 hdfs 上复制文件:

[aihadoop@suse-141 ~] $ time cp jdk.tar.gz/mnt/hdfs/

 

real 0m6.733s

user 0m0.000s

sys 0m0.264s

[aihadoop@suse-141 ~] $ ll jdk.tar.gz

-rw-r–r– 1 aihadoop aihadoop 156209379 2013-12-2015:57 jdk.tar.gz

 

[aihadoop@suse-141 soft_bak] $ llspark-0.8.1-incubating-bin-hadoop2.tgz

-rw——- 1 aihadoop aihadoop 225613885 2013-12-2314:49 spark-0.8.1-incubating-bin-hadoop2.tgz

[aihadoop@suse-141 soft_bak] $ time cp spark-0.8.1-incubating-bin-hadoop2.tgz/mnt/hdfs/

 

real 0m7.671s

user 0m0.000s

sys 0m0.376s

从上面的测试来看,在目前这个环境中: 上传速度约为:26m/s

 

2、从 hdfs 上复制文件到本地目录:

[aihadoop@suse-141 workdir] $ time cp/mnt/hdfs/test_put_250_06_20130604148159 .

 

real 0m3.243s

user 0m0.000s

sys 0m0.508s

[aihadoop@suse-141 soft_bak] $ lltest_put_250_06_20130604148159

-rw-r–r– 1 aihadoop aihadoop 102324750 2014-01-0317:25 test_put_250_06_20130604148159

[aihadoop@suse-141 workdir] $ time cp/mnt/hdfs/jdk.tar.gz .

 

real 0m4.750s

user 0m0.004s

sys 0m0.420s

[aihadoop@suse-141 workdir] $ ll jdk.tar.gz

-rw-r–r– 1 aihadoop aihadoop 156209379 2014-01-0317:44 jdk.tar.gz

[aihadoop@suse-141 soft_bak] $ time cp/mnt/hdfs/input/100_01_20130726021112 .

cp: writing `./100_01_20130726021112′: No spaceleft on device #这里空间不够,写部分成功了。

 

real 3m35.862s

user 0m0.164s

sys 0m17.613s

 

[aihadoop@suse-141 soft_bak] $ ll 100_01_20130726021112

-rw-r–r– 1 aihadoop aihadoop 40210227202014-01-03 17:31 100_01_20130726021112

从上面的测试来看,在目前这个环境中: 下载速度约为:32m/s,当下载的文件在 hdfs 的缓存中时,下载速度非常快。

 

从客户端进行文件上传和下载的速度取决于 HDFS 部署的硬件环境和 datanode 的个数。

相关阅读:

将本地文件拷到 HDFS 中 http://www.linuxidc.com/Linux/2013-05/83866.htm

从 HDFS 下载文件到本地 http://www.linuxidc.com/Linux/2012-11/74214.htm

将本地文件上传至 HDFS http://www.linuxidc.com/Linux/2012-11/74213.htm

HDFS 基本文件常用命令 http://www.linuxidc.com/Linux/2013-09/89658.htm

Hadoop 中 HDFS 和 MapReduce 节点基本简介 http://www.linuxidc.com/Linux/2013-09/89653.htm

《Hadoop 实战》中文版 + 英文文字版 + 源码【PDF】http://www.linuxidc.com/Linux/2012-10/71901.htm

Hadoop: The Definitive Guide【PDF 版】http://www.linuxidc.com/Linux/2012-01/51182.htm

更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3277字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中