因为项目使用NFS共享,但是存在着单点故障,后来发现可以将hdfs目录挂载到本地,ambari HDP支持nfs,照着文档的说明去做,很简单完成了。
1.修改hdfs-site.xm
vi /etc/hadoop/conf/hdfs-site.xml
如果没有hdfs-site.xml就找hdfs-default.xml,设置为如下内容,hdp的默认值是0
<property>
<name>dfs.access.time.precision</name>
<value>3600000</value>
</property>
2.修改hdfs-site.xml,HDP的默认值比较大,4096的,这里就不修改了
<property>
<name>dfs.datanode.max.xcievers</name>
<value>1024</value>
</property>
3.设置nf3的临时存储目录
<property>
<name>dfs.nfs3.dump.dir</name>
<value>/tmp/.hdfs-nfs</value>
</property>
我尝试分别在两台节点上执行(10.11.32.53和50):
su hdfs
/usr/lib/hadoop/sbin/hadoop-daemon.sh start portmap
/usr/lib/hadoop/sbin/hadoop-daemon.sh start nfs3
10.11.32.53上
mount -t nfs -o vers=3,proto=tcp,nolock 10.11.32.53:/ /hdfs
10.11.32.50上
mount -t nfs -o vers=3,proto=tcp,nolock 10.11.32.50:/ /hdfs
我尝试挂载二级目录,就报错了,可能是只支持挂载hdfs根/目录
mount -t nfs -o vers=3,proto=tcp,nolock 10.11.32.50:/tmp /hdfs
mount.nfs: mounting 10.11.32.50:/tmp failed, reason given by server: No such file or directory
参考:
http://www.cnblogs.com/cenyuhai/p/3320075.html
1.修改hdfs-site.xm
vi /etc/hadoop/conf/hdfs-site.xml
如果没有hdfs-site.xml就找hdfs-default.xml,设置为如下内容,hdp的默认值是0
<property>
<name>dfs.access.time.precision</name>
<value>3600000</value>
</property>
2.修改hdfs-site.xml,HDP的默认值比较大,4096的,这里就不修改了
<property>
<name>dfs.datanode.max.xcievers</name>
<value>1024</value>
</property>
3.设置nf3的临时存储目录
<property>
<name>dfs.nfs3.dump.dir</name>
<value>/tmp/.hdfs-nfs</value>
</property>
操作:
我尝试分别在两台节点上执行(10.11.32.53和50):
su hdfs
/usr/lib/hadoop/sbin/hadoop-daemon.sh start portmap
/usr/lib/hadoop/sbin/hadoop-daemon.sh start nfs3
两节点都启动nfs3服务支持
ps -ef|grep nfs3
10.11.32.53上
mount -t nfs -o vers=3,proto=tcp,nolock 10.11.32.53:/ /hdfs
10.11.32.50上
mount -t nfs -o vers=3,proto=tcp,nolock 10.11.32.50:/ /hdfs
ll /hdfs 内容是一样的,可以看到hdfs上的文件了。
dd写入30M/s速度
我尝试挂载二级目录,就报错了,可能是只支持挂载hdfs根/目录
mount -t nfs -o vers=3,proto=tcp,nolock 10.11.32.50:/tmp /hdfs
mount.nfs: mounting 10.11.32.50:/tmp failed, reason given by server: No such file or directory
参考:
http://www.cnblogs.com/cenyuhai/p/3320075.html