十三、NFS网关配置

13.1 启动一个新的系统,禁用selinux、禁用firewalld
[root@ngsgw ~]# getenforce
Disabled
[root@ngsgw ~]# systemctl stop firewalld
[root@ngsgw ~]# systemctl disable firewalld
13.2 卸载rpcbind、nfs-utils
13.3 配置/etc/hosts,添加所有namenode和datanode的主机名不ip对应关系
[root@ngsgw ~]# cat /etc/hosts
192.168.0.10 nn01
192.168.0.11 node1
192.168.0.12 node2
192.168.0.21 node3
192.168.0.22 node4
192.168.0.16 nfsgw
13.4 安装java openjdk的运行环境
[root@ngsgw ~]# yum -y install java-1.8.0-openjdk-devel
13.5 同步namenode的/usr/local/hadoop到本机
[root@nn01 local]# scp hadoop.tar root@192.168.0.16:/usr/local/
[root@ngsgw local]# tar -xf hadoop.tar
13.6 、配置hdfs-site.xml
•nfs.exports.allowed.hosts
–默认情况下,export可以被任何客户端挂载。为了更好的控制访问,可以设置属性。值字符串为机器名和访问策略,通过空格来分割。机器名的格式可以是单一的主机,Java的正则表达式戒者IPv4地址。访问权限使用rw戒ro来挃定导出目录的读/写戒机器只读访问。如果访问策略没被提供,默认为只读的。每个条目使用“;”来分割。
–nfs.exports.allowed.hosts
–配置* rw
… …
<property>
<name>nfs.exports.allowed.hosts</name>
<value>* rw</value>
</property>
… …
•nfs.dump.dir
–用户需要更新文件转储目录参数。NFS客户端经常重新安排写操作,顺序的写操作会以随机到达NFS网关。这个目录常用于临时存储无序的写操作。对于每个文件,无序的写操作会在他们积累在内存中超过一定阈值(如。1mb)被转储。需要确保有足够的空间的目录。例如,如果应用上传10个100M,那么这个转储目录推荐有1GB左右的空间,以便每个文件都发生最坏的情况。只有NFS网关需要在设置该属性后重启。
–nfs.dump.dir
… …
<property>
<name>nfs.dump.dir</name>
<value>/var/nfstmp</value>
</property>
… …
–配置完该属性后要创建/var/nfstmp文件夹
mkdir/var/nfstmp
–并且把该文件夹的属组改成代理用户

[root@ngsgw local]# cd /usr/local/hadoop/etc/hadoop/
[root@ngsgw hadoop]# vim hdfs-site.xml
追加写入:
<property>
<name>nfs.exports.allowed.hosts</name>
<value>* rw</value>
</property>
<property>
<name>nfs.dump.dir</name>
<value>/var/nfstmp</value>
</property>
创建转存目录
[root@ngsgw hadoop]# mkdir /var/nfstmp
[root@ngsgw hadoop]# chown 200.200 /var/nfstmp
[root@ngsgw hadoop]# ll /var/
drwxr-xr-x 2 test test 6 9月 9 00:05 nfstmp
13.7 启动与挂载
–设置/usr/local/hadoop/logs权限,为代理用户赋予读写执行的权限
[root@ngsgw hadoop]# setfacl -m u:test:rwx logs
创建数据根目录[
root@ngsgw hadoop]# mkdir /var/hadoop
13.8 使用root用户启动portmap服务
在启动之前我们先做一个测试
[root@ngsgw hadoop]# sudo -u test -s
[test@ngsgw hadoop]$ cd /var/nfstmp/
[test@ngsgw nfstmp]$ touch aa.txt
[test@ngsgw nfstmp]$ ls
aa.txt
[test@ngsgw nfstmp]$ rm -d aa.txt
[test@ngsgw nfstmp]$ ls
[test@ngsgw nfstmp]$ cd /usr/local/hadoop/logs/
[test@ngsgw logs]$ ls
[test@ngsgw logs]$ touch a
[test@ngsgw logs]$ ls
a
[test@ngsgw logs]$ rm -rf a
[test@ngsgw logs]$ ls
。。。。。。。。。。。。上面可省略。。。。。。。。。。。。。。。
–使用root用户启动portmap服务
[root@ngsgw hadoop]# ./sbin/hadoop-daemon.sh --script ./bin/hdfs start portmap
starting portmap, logging to /usr/local/hadoop/logs/hadoop-root-portmap-ngsgw.out
[root@ngsgw hadoop]# jps
1399 Jps
1353 Portmap
–使用代理用户启动nfs3
[root@ngsgw hadoop]# su test -l
[test@ngsgw ~]$ cd /usr/local/hadoop/
[test@ngsgw hadoop]$ ./sbin/hadoop-daemon.sh --script ./bin/hdfs start nfs3
starting nfs3, logging to /usr/local/hadoop/logs/hadoop-test-nfs3-ngsgw.out
[test@ngsgw hadoop]$ jps
1460 Nfs3
1513 Jps
[test@ngsgw hadoop]$ exit
登出
[root@ngsgw hadoop]# jps
1460 Nfs3
1526 Jps
1353 Portmap
[root@ngsgw hadoop]#
[root@ngsgw hadoop]# netstat -ntulp
111跟2049都应启动
•这里要特别注意:
–启动portmap需要使用root用户
–启动nfs3需要使用core-site里面设置的代理用户
–必须先启劢portmap之后再启劢nfs3
–如果portmap重启了,在重启之后nfs3也需要重启

日志查看
[root@ngsgw ~]# cd /usr/local/hadoop/logs/
[root@ngsgw logs]# tailf hadoop-test-nfs3-ngsgw.log
启动与挂载
•启劢不挂载
–强烈建议使用安装选项“sync”,因为它可以最小化戒避免重新排序写入,这将导致更可预测的吞吐量。未指定同步选项可能会导致上传大文件时出现不可靠的行为
没有错误的话,我们然后进入新的一台机器(新的机器可以没有Hadoop)
[root@node5 local]# yum -y install nfs-utils.x86_64
[root@node5 ~]# mount -t nfs -o vers=3,proto=tcp,noatime,nolock,sync 192.168.0.16:/ /mnt/
[root@node5 ~]# cd /mnt/
[root@node5 mnt]# ls
aaa centos.iso oo system tmp xx
注:
–目前NFS只能使用v3版本
–vers=3
–仅使用TCP作为传输协议。
–proto=tcp
–不支持NLM
–nolock
–禁用accesstime的时间更新
–noatime

查看注册服务

[root@node5 mnt]# rpcinfo -p 192.168.0.16
program vers proto port service
100005 3 udp 4242 mountd
100005 1 tcp 4242 mountd
100000 2 udp 111 portmapper
100000 2 tcp 111 portmapper
100005 3 tcp 4242 mountd
100005 2 tcp 4242 mountd
100003 3 tcp 2049 nfs
100005 2 udp 4242 mountd
100005 1 udp 4242 mountd

查看共享目录
[root@node5 mnt]# showmount -e 192.168.0.16
Export list for 192.168.0.16:
/ *

posted @ 2021-09-08 17:06  落樰兂痕  阅读(147)  评论(0)    收藏  举报