一、工作原理图
user mount NFS服务器 NFS服务器把指令转换为 HDFS Client 指令 HDFS Client访问 HDFS服务器
(一)配置步骤
1. 卸载rpcbind,nfs-utils(用的不是这个nfs 不卸载会占用资源,端口)
2. 配置/etc/hosts 添加所有 NameNode和DateNode的主机与IP绑定
3. 安装java运行环境
4. 同步NameNode的/usr/local/hadoop的配置文件到本机(在非安全模式下需要授权
NameNode和NFSGW 需要添加一个 UID GID 和用户名完全相同的用户作为代理
如果特殊原因不能不能创建 相同的那么 在nfs的静态文件中配置
uid 10 100 # Map the remote UID 10 the local UID 100
gid 11 101 # Map the remote GID 11 to the local GID 101 )
5. 授权配置(所有的路径都是相对路径在Hadoop配置文件下操作)
(1)关闭集群 (./sbin/stop-all.sh)
(2) 修改配置文件(/etc/hadoop/core-site.xml)配置文件修改完之后 同步到所有节点(不包括NFSGW节点)
第一个参数 用户组授权
第二个参数 解析授权
value 全是 *表示授权所有
(3)启动集群
./sbin/start-dfs.sh
(4)验证集群
jps
./bin/hdfs dfsadmin -report
6. 把DateNode的节点配置文件 全部拷贝到NFSGW节点上
7. 配置NFSGW的文件(hdfs-site.xml)
第一个参数 是允许那台主机通过 * 表示 任何主机 rw表示 读写 ro 表示只读
第二个参数表示 临时文件 每当传送文件的时候 NFSGW 服务器会先把数据放在本机上传完整之后再放传给 HDFS
8. 创建文件夹 给文件夹修改组的权限
mkdir /var/nfstmp
chown nfsuser.nfsuser /var/nfstmp
9. 修改logs的权限默认是root nfsuser 用户写不进去数据
setfacl -m nfsuser:rwx logs
10. 启动nfs时 因为nfs依赖于rpcbind服务(centos7 在centos6中叫portmap服务 在7中还是用的6的名字)在启动nfs时 必须要先启用portmap
启动NFSGW服务的时候必须要用 代理用户,不用的话mount不上
nfs3中3代表版本3
11. mount 服务器
(1) 必须下载 nfs-utils这个包
(2) mount (showmount -e NFSGW服务器ip)
sync 他可以最小化避免重排序写入造成不预测的吞吐量,未指定同步选项可能会导致上传达文件时出现不可靠行为