目的:通过挂载的方式,能够相似訪问本地磁盘的方式一样的訪问Hadoop文件。简单、方便、快捷。

0.系统版本号&hadoop版本号

1)系统版本号

[root@WEB-W031 sbin]# cat /etc/issue
CentOS release 5.8 (Final)

2)Hadoop版本号

[root@WEB-W031 /]# hadoop version
Hadoop 2.7.2
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r b165c4fe8a74265c792ce23f546c64604acf0e41
Compiled by jenkins on 2016-01-26T00:08Z
Compiled with protoc 2.5.0
From source with checksum d0fda26633fa762bff87ec759ebe689c
This command was run using /home/hadoop/hadoop/share/hadoop/common/hadoop-common-2.7.2.jar
You have new mail in /var/spool/mail/root

1、配置Core-site.xml文件

<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
<description>
The 'nfsserver' user is allowed to proxy all members of the 'users-group1' and
'users-group2' groups. Note that in most cases you will need to include the
group "root" because the user "root" (which usually belonges to "root" group) will
generally be the user that initially executes the mount on the NFS client system.
Set this to '*' to allow nfsserver user to proxy any group.
</description>
</property> <property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
<description>
This is the host where the nfs gateway is running. Set this to '*' to allow
requests from any hosts to be proxied.
</description> </property>

含义解读:

1)hadoop.proxyuser.hadoop.groups:第二个和运行Hadoop的username一致,本測试用的名称为Hadoop。

2)hadoop.proxyuser.hadoop.hosts:第二个和运行Hadoop的username一致。本測试用的名称为Hadoop。

2、配置hdfs-site.xml文件

     <property>
<name>dfs.namenode.accesstime.precision</name>
<value>3600000</value>
<description>The access time for HDFS file is precise upto this value.
The default value is 1 hour. Setting a value of 0 disables
access times for HDFS.
</description>
</property> <property>
<name>nfs.dump.dir</name>
<value>/tmp/.hdfs-nfs</value>
</property> <property>
<name>nfs.exports.allowed.hosts</name>
<value>* rw</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>

3、配置*/etc/hadoop/log4j.properties

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

4、root用户下停止portmap(Centos 5.X系统)。停止nfs


[root@WEB-W031 etc]# service portmap stop
Stopping portmap: [ OK ]
[root@WEB-W031 hadoop]# service nfs stop

注意:5.X的portmap 等价于 6.X上的rpcbind

并通过:service nfs status 验证是否已经结束。

并通过:service portmap status 验证是否已经结束。

5、开启Hadoop的Portmap服务(须要root权限)

[root]> /sbin/hadoop-daemon.sh –script /bin/hdfs start portmap

6、开启Hadoop的Nfs3服务(须要运行Hadoop的用户权限,本系统为Hadoop)

[hadoop]$ /sbin/hadoop-daemon.sh –script /bin/hdfs start nfs3

7、开启Hadoop并验证(须要运行Hadoop的用户权限,本系统为Hadoop)

[root@WEB-W031 sbin]# ./start-dfs.sh
[root@WEB-W031 sbin]# jps
14728 ResourceManager
27478 Jps
5228 Portmap
14104 NameNode
14373 SecondaryNameNode
16762 org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
13512 Nfs3

8、验证NFS相关服务是否启动成功

1)验证各服务是否成功运行

[root@WEB-W031 hadoop]# rpcinfo -p $nfs_server_ip
program vers proto port
100005 2 tcp 4242 mountd
100000 2 udp 111 portmapper
100000 2 tcp 111 portmapper
100005 1 tcp 4242 mountd
100003 3 tcp 2049 nfs
100005 1 udp 4242 mountd
100005 3 udp 4242 mountd
100005 3 tcp 4242 mountd

2)显示挂载路径

[root@WEB-W031 hadoop]# showmount -e $nfs_server_ip
Export list for WEB-W031:
/ *

9、实施挂载

 [root]>mount -t nfs -o vers=3,proto=tcp,nolock,noacl,sync $10.0.1.31:/  /hdfsnew

10、查看挂载是否成功

[root@WEB-W031 hdfsnew]# ls -al
total 10
drwxr-xr-x 5 root 2584148964 160 Mar 11 09:43 .
drwxr-xr-x 31 root root 4096 Mar 11 10:40 ..
drwxr-xr-x 3 root root 96 Mar 11 09:58 testing
drwxrwx--- 3 hadoop 2584148964 96 Mar 9 11:14 tmp
drwxr-xr-x 3 hadoop 2584148964 96 Mar 9 13:24 user
[root@WEB-W031 hdfsnew]# cd testing/
[root@WEB-W031 testing]# ls -al
total 2
drwxr-xr-x 3 root root 96 Mar 11 09:58 .
drwxr-xr-x 5 root 2584148964 160 Mar 11 09:43 ..
-rw-rw-r-- 1 hadoop hadoop 18 Mar 11 10:08 dffafdadafasdfaf
[root@WEB-W031 testing]# echo "testinglaoyang" > testlaoyang
[root@WEB-W031 testing]# ls -al
total 2
drwxr-xr-x 4 root root 128 Mar 11 18:05 .
drwxr-xr-x 5 root 2584148964 160 Mar 11 09:43 ..
-rw-rw-r-- 1 hadoop hadoop 18 Mar 11 10:08 dffafdadafasdfaf
-rw-r--r-- 1 root root 15 Mar 11 18:05 testlaoyang

11、訪问效果

12、结束服务

1)NFS3服务结束(必须和启动hadoop用户一致)

[hadoop]$ */sbin/hadoop-daemon.sh --script */bin/hdfs stop nfs3

2)PortMap服务结束(必须为root用户)

[root]> */sbin/hadoop-daemon.sh --script */bin/hdfs start portmap

3)Hadoop结束(必须和启动hadoop用户一致)

“`

[hadoop@WEB-W031 sbin]# ./stop-dfs.sh

13、常见问题

java 进程 占用了111 端口

[root@WEB-W031 etc]# lsof -i:111

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

java 31206 root 474u IPv4 93384812 0t0 TCP *:sunrpc (LISTEN)

java 31206 root 476u IPv4 93384815 0t0 UDP *:sunrpc



解决方式:kill -9 31206

错误明细

[root@xx sbin]# mount -t nfs -o vers=3,proto=tcp,nolock,noacl,sync localhost:/ /hdfs_y

mount.nfs: Input/output error

注意:一定要注意配置文件的细节含义。

解决方式:

http://stackoverflow.com/questions/35910751/hdfs-nfs-gateway-mount-nfs-input-output-error/35935229#35935229

參考:

https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/HdfsNfsGateway.html#Allow_mounts_from_unprivileged_clients

http://tianxingzhe.blog.51cto.com/3390077/1650182

作者:铭毅天下

转载请标明出处,原文地址:http://blog.csdn.net/laoyang360/article/details/50865025

假设感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力。谢谢!

Hadoop HDFS NFS GateWay部署深入具体解释的更多相关文章

  1. HDFS NFS Gateway

    NFS网关支持NFSv3,并允许将HDFS作为客户端本地文件系统进行挂载.目前,NFS Gateway支持并启用以下使用模式: 用户可以通过NFSv3客户端兼容操作系统上的本地文件系统浏览HDFS文件 ...

  2. Hadoop HDFS 单节点部署方案

    初学者,再次记录一下. 确保Java 和 Hadoop已安装完毕(每个人的不一定一样,但肯定都有数据,仅供参考) [root@jans hadoop-2.9.0]# pwd /usr/local/ha ...

  3. [测试] 试用Hadoop 2.2中的HDFS NFS

    Hadoop 2.2中正式启用了hdfs nfs功能,使得hdfs的通用性迈进了一大步.在公司让小朋友搭建了一下,然后我自己进行了一点简单的试验,有一点收获,记录在此. 理论 使用hdfs nfs功能 ...

  4. Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS、YARN、MR)安装

    虽然我已经装了个Cloudera的CDH集群(教程详见:http://www.cnblogs.com/pojishou/p/6267616.html),但实在太吃内存了,而且给定的组件版本是不可选的, ...

  5. Hadoop 2.7.4 HDFS+YRAN HA部署

    实验环境 主机名称 IP地址 角色 统一安装目录 统一安装用户 sht-sgmhadoopnn-01 172.16.101.55 namenode,resourcemanager /usr/local ...

  6. Hadoop实战:Hadoop分布式集群部署(一)

    一.系统参数优化配置 1.1 系统内核参数优化配置 修改文件/etc/sysctl.conf,使用sysctl -p命令即时生效.   1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  7. 【转帖】Hadoop — HDFS的概念、原理及基本操作

    Hadoop — HDFS的概念.原理及基本操作 https://www.cnblogs.com/swordfall/p/8709025.html 分类: Hadoop undefined 1. HD ...

  8. [大数据] hadoop高可用(HA)部署(未完)

    一.HA部署架构 如上图所示,我们可以将其分为三个部分: 1.NN和DN组成Hadoop业务组件.浅绿色部分. 2.中间深蓝色部分,为Journal Node,其为一个集群,用于提供高可用的共享文件存 ...

  9. Hadoop HDFS (3) JAVA訪问HDFS

    如今我们来深入了解一下Hadoop的FileSystem类. 这个类是用来跟Hadoop的文件系统进行交互的.尽管我们这里主要是针对HDFS.可是我们还是应该让我们的代码仅仅使用抽象类FileSyst ...

随机推荐

  1. ubuntu命令行使用ftp客户端

    转载 本篇文章主要介绍在Ubuntu 8.10下如何使用功能强大的FTP客户端软件NcFTP. Ubuntu的源里为我们提供了FTP客户端软件NcFTP,可这款工具对新手来说不是很方便.本文介绍的是一 ...

  2. System.Web.Optimization找不到引用怎么办

    新建Bootstap for MVC5出现的问题, 通过打开VS 工具->NUGET程序包管理器->控制台 输入以下命令进行完成,一切完成 Install-Package Microsof ...

  3. python学习(day2)

    1.常用数据类型及内置方法 1.列表(list) 定义:在中括号[]内存放任意多个值,用逗号隔开. 具体函数和内置方法如下: #定义学生列表,可存放多个学生 students=['a','b','c' ...

  4. 【JavaScript从入门到精通】第二课

    第二课 初探JavaScript魅力-02 变量 说起变量,我们不得不提起我们有一部比较古老的电视剧叫<包青天>.包青天有一把非常厉害的宝剑叫“尚方宝剑”,见到尚方宝剑有如见到皇帝.某种程 ...

  5. SQLServer锁的概述

    SQLServer锁的概述   锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了 ...

  6. JAVA基础——生产者消费者问题

    1.生产者消费者问题:经典案例 生产者和消费者问题是操作系统的经典问题,在实际工作中也常会用到,主要的难点在于协调生产者和消费者,因为生产者的个数和消费者的个数不确定,而生产者的生成速度与消费者的消费 ...

  7. 时间戳显示为多少分钟前,多少天前的JS处理

    /* ** 时间戳显示为多少分钟前,多少天前的处理 ** eg. ** console.log(dateDiff(1411111111111)); // 2014年09月19日 ** console. ...

  8. 神经网络(NN)+反向传播算法(Backpropagation/BP)+交叉熵+softmax原理分析

    神经网络如何利用反向传播算法进行参数更新,加入交叉熵和softmax又会如何变化? 其中的数学原理分析:请点击这里.

  9. stark组件之处理函数动态url构造(五)

    在这个组件中有内置的4个处理函数,它们都有自己对应的url,那么它们的url是怎么构造的呢? ... urlpatterns = [ re_path('list/$', self.wrapper(se ...

  10. I - DFS(依然是漫水填充)

    Description There is a rectangular room, covered with square tiles. Each tile is colored either red ...