NFS挂载hdfs到本地
程序员文章站
2022-06-16 11:29:32
...
NFS挂载hdfs到本地
hdfs挂载: hdfs是分布式系统,要想访问hdfs上的文件,可以用java api 或者hadoop shell等工具,如果想操作hdfs文件系统就像操作本地文件系统一样的便捷,可以将hdfs文件系统挂载到本地的一个目录上,那么挂载的方式有两种:
-
fuse 挂载:需要另外安装fuse工具,详细请参考:
http://duguyiren3476.iteye.com/blog/2054506 -
nfs挂载:apache hadoop2.x以后的版本中自带了一个nfs3的插件服务,下面将详细讲解nfs挂载的方式。
测试环境
- apache hadoop 2.5.2
- jdk 1.7
- ubuntu 14.04
NFS挂载hdfs
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的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集群服务
root@localhost:/opt/hdfsnfs# /opt/work/hadoop/sbin/stop-all.sh
root@localhost:/opt/hdfsnfs# /opt/work/hadoop/sbin/stop-all.sh
以上启动,只需启动hdfs服务即可
关闭本机的nfs服务
centos关闭nfs服务
service nfs stop
service rpcbind stop
ubuntu关闭nfs服务
root@localhost:/opt/hdfsnfs# /etc/init.d/nfs-kernel-server stop
root@localhost:/opt/hdfsnfs# /etc/init.d/rpcbind stop
如果没有nfs服务则可略过
启动hadoop nfs
root@localhost:/opt/hdfsnfs# /opt/work/hadoop/sbin/hadoop-daemon.sh start portmap
root@localhost:/opt/hdfsnfs# /opt/work/hadoop/sbin/hadoop-daemon.sh start nfs3
停止服务
root@localhost:/opt/hdfsnfs# /opt/work/hadoop/sbin/hadoop-daemon.sh stop portmap
root@localhost:/opt/hdfsnfs# /opt/work/hadoop/sbin/hadoop-daemon.sh stop nfs3
查看本机挂载状况
root@localhost:/opt/hdfsnfs# showmount -e localhost
Export list for localhost:
/ *
root@localhost:/opt/hdfsnfs#
上述的localhost是指第一步的core-site.xml
中的hadoop.proxyuser.nfsserver.hosts
的值
如果出现上述的 / *
说明服务启动成功
挂载到本地制定目录
root@localhost:~# mkdir -p /opt/hdfsnfs #创建挂载的目标点
root@localhost:~# mount -t nfs -o vers=3,proto=tcp,nolock,noacl localhost:/ /opt/hdfsnfs/
root@localhost:~# ll /opt/hdfsnfs/
总用量 581
drwxr-xr-x 15 root 2584148964 480 5月 7 17:49 ./
drwxr-xr-x 24 root root 4096 5月 7 17:44 ../
drwxr-xr-x 3 root 2584148964 96 12月 25 17:10 2014/
drwxr-xr-x 3 root 2584148964 96 2月 9 16:55 2015/
drwxr-xr-x 10 root 2584148964 320 4月 22 17:53 hbase/
drwxr-xr-x 3 root 2584148964 96 4月 29 16:11 lib/
-rw-r--r-- 1 root 2584148964 583045 5月 7 18:00 lzo-2.06.tar.gz
drwxr-xr-x 4 root 2584148964 128 4月 15 10:12 merge/
drwxr-xr-x 3 root 2584148964 96 4月 15 10:26 opt/
drwxr-xr-x 4 root 2584148964 128 5月 6 18:42 out/
drwxr-xr-x 3 root 2584148964 96 4月 8 16:49 target/
drwxr-xr-x 27 root 2584148964 864 5月 7 11:20 test/
drwx------ 18 root 2584148964 576 5月 7 15:21 tmp/
drwxr-xr-x 3 root 2584148964 96 2月 9 10:46 user/
drwxr-xr-x 3 146731693 2584148964 96 3月 27 19:42 usr/
root@localhost:~#
即可在本地查看hdfs上的所有文件
总结
fuse配置起来麻烦,hdfs的nfs配置方式相对简单,依赖的插件少,配置简单,当然里面的acl控制,hdfs的安全需要根据自己的业务进行配置
上一篇: NFS简要配置
下一篇: memcached客户端源码分析