美文网首页
通过NFS将HDFS映射到本地文件系统

通过NFS将HDFS映射到本地文件系统

作者: 鹅鹅鹅_ | 来源:发表于2019-01-01 11:42 被阅读0次
  • hdfs是分布式文件系统,要想访问hdfs上的文件,可以用java api或者hadoop shell等工具,如果想操作hdfs文件系统就像操作本地文件系统一样的便捷,可以将hdfs文件系统挂载到本地的一个目录上,可以通过nfs挂载--apache hadoop2.x以后的版本中自带了一个nfs3的插件服务,下面将详细讲解nfs挂载的方式。

  • 官方介绍

    http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HdfsNfsGateway.html
    
  • 配置core-site.xml

    <property>
        <name>hadoop.proxyuser.nfsserver.groups</name>
        <value>*</value>
        <description>允许所有用户组用户代理</description>
    </property>
    <property>
        <name>hadoop.proxyuser.nfsserver.hosts</name>
        <value>localhost</value>
        <description>允许挂载的主机域名</description>
    </property>
    </property>
    
  • 修改hdfs-site.xml

    <property>
        <name>nfs.dump.dir</name>
        <value>/tmp/.hdfs-nfs</value>
    </property>
    <property>
        <name>nfs.rtmax</name>
        <value>1048576</value>
        <description>This is the maximum size in bytes of a READ request supported by the NFS gateway. If you change this, make sure you also update the nfs mount's rsize(add rsize= # of bytes to the mount directive).</description>
    </property>
    <property>
        <name>nfs.wtmax</name>
        <value>65536</value>
        <description>This is the maximum size in bytes of a WRITE request supported by the NFS gateway. If you change this, make sure you also update the nfs mount's wsize(add wsize= # of bytes to the mount directive).</description>
    </property>
    <property>
        <name>nfs.exports.allowed.hosts</name>
        <value>* rw</value>
        <description>允许所有主机对文件有rw权限</description>
    </property>
    
  • 重启hadoop集群服务

  • 关闭本机的nfs以及rpcbind服务

  • 启动hadoop portmap和nfs3,需要root权限

    [root@master ~]# /home/hadoop/hadoop-2.7.3/sbin/hadoop-daemon.sh start portmap
    [root@master ~]# /home/hadoop/hadoop-2.7.3/sbin/hadoop-daemon.sh start nfs3
    
  • 查看本机挂载状况

    [root@master ~]# showmount -e localhost
    Export list for localhost:
    / *
    
    
  • 可以在其他未安装HDFS的机器上通过nfs挂载hdfs目录

    # mount -t nfs -o vers=3,proto=tcp 10.10.18.229:/ /mnt
    # ls /mnt/user
    hadoop  hive  spark
    
  • 测试速度
    大概每秒40M,感觉不理想

    [root@localhost brute_force]# time cp /mnt/shegong.txt .
    
    real    6m23.823s
    user    0m0.014s
    sys 0m23.255s
    [root@localhost brute_force]# du -msh /mnt/shegong.txt 
    15G /mnt/shegong.txt
    [root@localhost brute_force]# du -msh /mnt/shegong.txt ./shegong.txt 
    15G /mnt/shegong.txt
    15G ./shegong.txt
    
    

相关文章

网友评论

      本文标题:通过NFS将HDFS映射到本地文件系统

      本文链接:https://www.haomeiwen.com/subject/dylnlqtx.html