HDFS进阶应用 配置 NFS 网关

简介:

HDFS进阶应用 配置NFS 网关

• NFS 网关用途

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

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

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

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


• 特性与注意事项

    – 不支持随机写

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

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

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

    <property>

        <name>nfs.aix.compatibility.mode.enabled</name>

        <value>true</value>

    </property>

• 特性与注意事项

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

    <property>

        <name>nfs.superuser</name>

        <value>the_name_of_hdfs_superuser</value>

    </property>

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

<property>

    <name>dfs.namenode.accesstime.precision</name>

    <value>0</value>

</property>

– 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”

    <property>

        <name>nfs.exports.allowed.hosts</name>

        <value>* rw</value>

    </property>

– dfs.namenode.accesstime.precision

– 关闭 access time

    <property>

        <name>dfs.namenode.accesstime.precision</name>

        <value>3600000</value>

    </property>

– nfs.dump.dir

– 设置转储目录

<property>

    <name>nfs.dump.dir</name>

    <value>/tmp/.hdfs-nfs</value>

</property>

– nfs.rtmax & nfs.wtmax

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

– nfs.rtmax & nfs.wtmax

    <property>

        <name>nfs.rtmax</name>

        <value>4194304</value>

    </property>

    <property>

        <name>nfs.wtmax</name>

        <value>1048576</value>

    </property>

– nfs.port.monitoring.disabled

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

    <property>

        <name>nfs.port.monitoring.disabled</name>

        <value>false</value>

    </property>

• nfs.map

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





实验环境准备参考 http://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

  <property>

    <name>hadoop.proxyuser.nfsuser.groups</name>

    <value>*</value>

  </property>

  <property>

    <name>hadoop.proxyuser.nfsuser.hosts</name>

    <value>*</value>

  </property>

[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 

...

  <property>

    <name>nfs.exports.allowed.hosts</name>            

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

  </property>

  <property>

    <name>dfs.namenode.accesstime.precision</name>

    <value>3600000</value>        //accesstime 更新时间

  </property>

  <property>

    <name>nfs.dump.dir</name>    

    <value>/var/nfstemp</value>            //转储目录

  </property>

  <property>

    <name>nfs.rtmax</name>

    <value>4194304</value>               // 读文件 传输大小

  </property>

  <property>

    <name>nfs.wtmax</name>

    <value>1048576</value>            //写文件 传输大小

  </property>

  <property>

    <name>nfs.port.monitoring.disabled</name>

    <value>false</value>            // 允许客户端挂载

  </property>

...

[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










本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2067893,如需转载请自行联系原作者
相关文章
帮你整理好了,AI 网关的 8 个常见应用场景
通过 SLS 还可以汇总 Actiontrail 事件、云产品可观测日志、LLM 网关明细日志、详细对话明细日志、Prompt Trace 和推理实时调用明细等数据汇总,从而建设完整统一的可观测方案。
124 12
|
1月前
|
工业物联网关应用:PLC数据通过智能网关上传阿里云实战
本文介绍如何使用智能网关将工厂PLC数据传输至阿里云平台,适合中小企业远程监控设备状态。硬件准备包括三菱FX3U PLC、4G智能网关和24V电源。接线步骤涵盖PLC编程口与网关连接、运行状态检测及天线电源接入。配置过程涉及通讯参数、阿里云对接和数据点映射。PLC程序关键点包括数据上传触发和温度值处理。阿里云平台操作包含实时数据查看、数据可视化和规则引擎设置。最后提供常见故障排查表和安全建议,确保系统稳定运行。
149 1
工业智能网关实现北向自定义报文配置流程
北向接口是设备连接物联网云平台的接口,允许云平台统一监管各厂商设备的运行与报警状态。为解决不同公司报文格式差异导致的数据解析问题,工业智能网关支持北向自定义报文功能,用户可配置不同的报文格式,确保数据准确传输。配置流程包括网关中心、IOT数据云平台和配置工具的设置,最终通过日志或MQTTfx验证上报情况。
66 4
应用网关的演进历程和分类
唯一不变的是变化,在现代复杂的商业环境中,企业的业务形态与规模往往处于不断变化和扩大之中。这种动态发展对企业的信息系统提出了更高的要求,特别是在软件架构方面。为了应对不断变化的市场需求和业务扩展,软件架构必须进行相应的演进和优化。网关作为互联网流量的入口,其形态也在跟随软件架构持续演进迭代中。我们下面就聊一聊网关的演进历程以及在时下火热的 AI 浪潮下,网关又会迸发怎样新的形态。
529 63
每一个大模型应用都需要一个 AI 网关|场景和能力
本次分享的主题是每一个大模型应用都需要一个 AI 网关|场景和能力。由 API 网关产品经理张裕(子丑)进行分享。主要分为三个部分: 1. 企业应用 AI 场景面临的挑战 2. AI 网关的产品方案 3. AI 网关的场景演示
460 1
|
4月前
|
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
547 7
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
1300 35
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
311 5
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
343 4
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
197 4