HDFS NFS Gateway

NFS网关支持NFSv3,并允许将HDFS作为客户端本地文件系统进行挂载。目前,NFS Gateway支持并启用以下使用模式:

  • 用户可以通过NFSv3客户端兼容操作系统上的本地文件系统浏览HDFS文件系统。
  • 用户可以将文件从HDFS文件系统下载到其本地文件系统。
  • 用户可以将文件从本地文件系统直接上传到HDFS文件系统。
  • 用户可以通过挂载点将数据直接传输到HDFS。支持文件追加,但不支持随机写入。

 

CDH部署NFS Gateway

可以在data01.bigdata-heboan.com(192.168.48.129)上验证服务是否启动

rpcinfo -p $nfs_server_ip

 

现在找一台客户端机器(192.168.48.130)

安装nfs

yum install rpcbind nfs-utils  -y

验证 HDFS命名空间是否已导入并可以挂载

showmount -e $ nfs_server_ip

 挂载导出"/"

目前NFS v3仅使用TCP作为传输协议。不支持NLM,因此需要mount选项“nolock”。强烈建议使用挂载选项“sync”,因为它可以最小化或避免重新排序的写入,从而产生更可预测的吞吐量。
上载大文件时,不指定sync选项可能会导致不可靠的行为。建议使用硬装。这是因为,即使在客户端将所有数据发送到NFS网关之后,当NFS客户端内核重新排序写入时,可能需要额外的时间将NFS网关传输到HDFS。
如果必须使用软安装,用户应该给它一个相对较长的超时(至少不低于主机上的默认超时)。

用户可以挂载HDFS命名空间,如下所示

mount -t nfs -o vers=3,proto=tcp,nolock,noacl,sync $server:/  $mount_point

 

经过测试使用,  挂载到本地读写不受kerberos认证影响, 但是需注意用户权限。

比如使用heboan用户对挂载的目录进行上传文件, 操作步骤如下:

  • 在hdfs 集群主机,ndfs客户端创建用户heboan(最好使用ldap,如 freeipa管理,这样可以确保uid一致,否则手动创建可能uid不一样,这个要注意)
  • 然后使用hdfs 创建/user/heboan   (hdfs dfs -mkdir /user/heboan     hdfs dfs -chown heboan:heboan /user/heboan)
  • 最后使用用户heboan登录nfs客户端,就可以对/data/user/heboan目录进行读写了
posted @ 2019-08-20 10:38  sellsa  阅读(1783)  评论(0编辑  收藏  举报