hdfs 通过NFSV3 加载至本地目录

时间:2023-12-16 14:39:14

常常会有这种需求,把HDFS的目录MOUNT到本地目录,然后方便使用LINUX下面的命令直接操作.

FUSE也可以达到同样的效果,但是配置比较复杂,新的HADOOP版本都建议使用NFS3来完成这个需求.

要点记录,

1. CORE-SITE.XML 修改

<property>  
  <name>hadoop.proxyuser.student.groups</name>  
  <value>*</value>
  <description></description>  
</property>

<property>  
  <name>hadoop.proxyuser.student.hosts</name>  
  <value>*</value>  
  <description>  
  </description>  
</property>  
加粗的是HADOOP用户,这点需要注意,也可以改成ROOT

2.HDFS-SITE.XML

\<!-- nfs configuration needed -->
<property>  
    <name>nfs.dump.dir</name>  
    <value>/tmp/.hdfs-nfs</value>  
</property>
 
<property>  
  <name>nfs.exports.allowed.hosts</name>  
  <value>* rw</value>  
</property>

3.关掉本机的NFS服务

service stop rpcbind

service stop nfs

4.开启HDFS的NFS服务

使用ROOT用户启动 PORTMAP服务

./hdfs portmap &

其他用户没有权限绑定端口

使用STUDENT用户开启NFS3

./hdfs nfs3 &

5.创建MOUNT点,加载

mkdir /mnt/hdfs

mount -t nfs -o vers=3,proto=tcp,nolock,noacl,sync localhost:/  /hdfs

在NAMENODE节点上使用ROOT用户运行上述命令

有时候会报ROOT不能模拟ROOT用户的错误,这个错误,可能是BUG,需要更新HADOOP版本

我使用的版本是HADOOP2.6