千家信息网

HDFS进阶应用 配置 NFS 网关

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,HDFS进阶应用 配置NFS 网关• NFS 网关用途- 1.用户可以通过操作系统兼容的本地NFSv3客户端来阅览HDFS文件系统- 2.用户可以从HDFS文件系统下载文档到本地文件系统- 3.用户可
千家信息网最后更新 2025年01月24日HDFS进阶应用 配置 NFS 网关

HDFS进阶应用 配置NFS 网关

• NFS 网关用途

- 1.用户可以通过操作系统兼容的本地NFSv3客户端来阅览HDFS文件系统

- 2.用户可以从HDFS文件系统下载文档到本地文件系统

- 3.用户可以通过挂载点直接流化数据。支持文件附加,但是不支持随机写

- NFS 网关支持NFSv3和允许HDFS 作为客户端文件系统的一部分被挂载


• 特性与注意事项

- 不支持随机写

- 在非安全模式,运行网关的用户是代理用户

- 在安全模式时,Kerberos keytab中的用户是代理用户

- AIX NFS有一些知道的问题,不能让默认的HDFS NFS网关正常工作,如果想在 AIX 访问 NFS 网关需要配置下面的参数

nfs.aix.compatibility.mode.enabled

true

• 特性与注意事项

- HDFS超级用户是与NameNode进程本身具有相同标识的用户,超级用户可以执行任何操作,因为权限检查永远不会为超级用户失败。

nfs.superuser

the_name_of_hdfs_superuser

- 如果客户端安装允许访问时间更新,在某些Unix系统上,用户可以通过使用"noatime"安装来禁用访问时间更新

dfs.namenode.accesstime.precision

0

- nfs.dump.dir

- 用户需要更新文件转储目录参数。NFS客户端经常重新安排写操作,顺序的写操作会以随机到达NFS网关。这个目录常用于临时存储无序的写操作。对于每个文件,无序的写操作会在他们积累在内存中超过一定阈值(如。1 mb)被转储。需要确保有足够的空间的目录。例如,如果应用上传10个100M,那么这个转储目录推荐有1GB左右的空间,以便每个文件都发生最坏的情况。只有NFS网关需要在设置该属性后重启。

- nfs.exports.allowed.hosts

- 默认情况下,export可以被任何客户端挂载。为了更好的控制访问,可以设置属性。值字符串为机器名和访问策略,通过空格来分割。机器名的格式可以是单一的主机,Java的正则表达式或者IPv4地址。访问权限使用rw或ro来指定导出目录的读/写或机器只读访问。如果访问策略没被提供,默认为只读的。每个条目使用";"来分割。


• 调试与日志排错

- 在配置 NFS 网关过程中经常会碰到各种各样的错误,如果出现了错误,打开调试日志是一个不错的选择

• log4j.property

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

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


• core-site.xml

- hadoop.proxyuser.{nfsuser}.groups

- hadoop.proxyuser.{nfsuser}.hosts

- 这里的 nfsuser 是你机器上真实运行 nfsgw 的用户

- 在非安全模式,运行nfs网关的用户为代理用户

- groups 为挂载点用户所使用的组

- hosts 为挂载点主机地址

• hdfs-site.xml

- nfs.exports.allowed.hosts

- 设置允许访问 NFS 主机列与权限,默认 "ro"

nfs.exports.allowed.hosts

* rw

- dfs.namenode.accesstime.precision

- 关闭 access time

dfs.namenode.accesstime.precision

3600000

- nfs.dump.dir

- 设置转储目录

nfs.dump.dir

/tmp/.hdfs-nfs

- nfs.rtmax & nfs.wtmax

- 用户可以像访问本地文件系统的一部分一样访问HDFS,但硬链接和随机写还不支持。对于大文件I/O的优化,可以在mount的时候增加NFS传输的大小(rsize和wsize)。在默认情况下,NFS网关支持1MB作为最大的传输大小。更大的数据传输大小,需要在hdfs-site.xml中设置"nfs.rtmax" 和"nfs.wtmax"

- nfs.rtmax & nfs.wtmax

nfs.rtmax

4194304

nfs.wtmax

1048576

- nfs.port.monitoring.disabled

- 允许从没有权限的客户端挂载 nfs

nfs.port.monitoring.disabled

false

• nfs.map

- 系统管理员必须确保在NFS客户端的用户和在HDFS网关主机上的用户有相同的名称和UID。不同主机上创建的用户需要修改UID(例如使用"usermod -u 123myusername"),在NFS客户端或者NFS网关主机来进行。如果客户端的用户和NFS网关的用户 uid 不能保持一致需要我们配置 nfs.map 的静态映射关系





实验环境准备参考 https://blog.51cto.com/13558754/2066708

配置 NFS 网关

# cd /usr/local/hadoop/

# ./sbin/stop-all.sh

# jps

6598 Jps

# vim /etc/hosts

192.168.4.1 master

192.168.4.2 node1

192.168.4.3 node2

192.168.4.4 node3

192.168.4.5 nfsgw //添加新的主机

# for i in {1..5}

> do

> rsync -a /etc/hosts 192.168.4.${i}:/etc/hosts

> done

# scp /etc/yum.repos.d/yum.repo nfsgw:/etc/yum.repos.d/

yum.repo 100% 61 0.1KB/s 00:00

# ssh nfsgw

Last login: Wed Jan 31 08:20:55 2018 from master

# sed -ri "s/^(SELINUX=).*/\1disabled/" /etc/selinux/config ; yum -y remove firewalld

# reboot



// 添加用户

[root@nfsgw ~]# adduser -g 10 -u 1001 nfsuser

[root@nfsgw ~]# id nfsuser

uid=1001(nfsuser) gid=10(wheel) 组=10(wheel)

[root@master ~]# adduser -g 10 -u 1001 nfsuser

[root@master ~]# id nfsuser

[root@master ~]# cd /usr/local/hadoop/

[root@master hadoop]# cd etc/hadoop/

[root@master hadoop]# vim core-site.xml

hadoop.proxyuser.nfsuser.groups

*

hadoop.proxyuser.nfsuser.hosts

*

[root@master hadoop]# for i in node{1..3}

> do

> rsync -a /usr/local/hadoop/etc/hadoop/ ${i}:/usr/local/hadoop/etc/hadoop/ -e "ssh"

> done


[root@master ~]# ssh nfsgw

[root@nfsgw ~]# yum -y install java-1.8.0-openjdk-devel.x86_64

[root@nfsgw ~]# cd /usr/local/

[root@nfsgw ~]# rsync -azSH --delete master:/usr/local/hadoop ./ -e "ssh" //同步hadoop

[root@nfsgw ~]# yum -y remove rpcbind nfs-util


[root@master ~]# cd /usr/local/hadoop/

[root@master hadoop]# ./sbin/start-dfs.sh //启动集群

[root@master hadoop]# jps

6755 NameNode

7062 Jps

6953 SecondaryNameNode

[root@master hadoop]# ./bin/hdfs dfsadmin -report //检查节点


[root@master hadoop]# ssh nfsgw

Last login: Wed Jan 31 08:26:48 2018 from master

[root@nfsgw ~]# cd /usr/local/hadoop/

[root@nfsgw hadoop]# cd etc/hadoop/

[root@nfsgw hadoop]# vim hdfs-site.xml

...

nfs.exports.allowed.hosts

* rw //允许那些主机访问权限

dfs.namenode.accesstime.precision

3600000 //accesstime 更新时间

nfs.dump.dir

/var/nfstemp //转储目录

nfs.rtmax

4194304 // 读文件 传输大小

nfs.wtmax

1048576 //写文件 传输大小

nfs.port.monitoring.disabled

false // 允许客户端挂载

...

[root@nfsgw ~]# mkdir /var/nfstemp

[root@nfsgw ~]# chown 1001.10 /var/nfstemp/

[root@nfsgw ~]# setfacl -m u:nfsuser:rwx /usr/local/hadoop/logs/

[root@nfsgw ~]# cd /usr/local/hadoop/

- 启动 portmap 服务

[root@nfsgw hadoop]# ./sbin/hadoop-daemon.sh --script ./bin/hdfs start portmap

starting portmap, logging to /usr/local/hadoop/logs/hadoop-root-portmap-nfsgw.out

[root@nfsgw hadoop]# su nfsuser

- 启动 nfs3

[nfsuser@nfsgw hadoop]$ ./sbin/hadoop-daemon.sh --script ./bin/hdfs start nfs3

starting nfs3, logging to /usr/local/hadoop/logs/hadoop-nfsuser-nfs3-nfsgw.out

[nfsuser@nfsgw hadoop]$ jps

2728 Jps

2671 Nfs3

[nfsuser@nfsgw hadoop]$ exit

exit

[root@nfsgw hadoop]# jps

2738 Jps

2588 Portmap

2671 -- process information unavailable

- 这里要特别注意:

- 启动 portmap 需要使用 root 用户

- 启动 nfs3 需要使用 core-site 里面设置的用户


挂载 nfs

- 目前NFS v3仅使用TCP作为传输协议。 不支持NLM,因此需要安装选项"nolock"。 强烈建议使用安装选项"sync",因为它可以最小化或避免重新排序写入,这将导致更可预测的吞吐量。 未指定同步选项可能会导致上传大文件时出现不可靠的行为

- 如果必须使用软安装,用户应该给它一个相对较长的超时(至少不小于主机上的默认超时)


# mount -t nfs -o vers=3,proto=tcp,nolock,sync,noatime,noacl 192.168.4.5:/ /mnt/

# ls /mnt/

input output tmp




用户 网关 文件 客户 主机 客户端 系统 目录 支持 传输 配置 大小 权限 机器 更新 安全 可以通过 情况 时间 模式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全专业擅长的专长 大数据项目服务器资源 长宁区网络技术开发费用是多少 吉林市2020年网络安全宣传周 数据库可以有几个主码 自己做远程服务器 哈尔滨奇配网络技术服务 软件工程学涉及软件开发技术 软件开发提前测试的好处 象山计算机软件开发工程 请简述客户机服务器的工作模式 软件开发合同简洁 深圳电脑软件开发服务费 软件开发需求分析怎么做 软件开发很难嘛 2021年春秋杯网络安全联赛秋季赛 服务器两路电源都在供电吗 日产东盟网络安全 远程服务器怎样下载软件 黄埔专业网络安全服务 硬件与软件学什么软件开发 关于网络安全的画一年级 正常的软件开发流程 美国网络安全战略 荒野行动日服怎么连接不到服务器 网络安全法演讲征文 网络技术反制和舆情反制 法院网络安全宣传周活动总结 搭建京东云服务器 游戏内测服务器
0