专栏首页Hadoop实操HDFS添加 NFS Gateway 角色实例启动失败问题及解决办法

HDFS添加 NFS Gateway 角色实例启动失败问题及解决办法

1.文档编写目的


本文主要讲述HDFS添加NFS Gateway 角色实例启动失败问题及解决办法。

  • 测试环境:

1.操作系统版本为Redhat7.2

2.CM和CDH版本为5.13.1

  • 文章目录结构:

1.文档编写目的

2.问题描述

3.NFS相关介绍

3.1.NFS 概念

3.2.NFS 的优点

4. 问题解决

4.1 安装 NFS 相关的依赖包

4.2 启动 NFS 相关服务

4.3 重启 NFS Gateway 角色

4.4 相关建议

5.总结

2.问题描述


昨天登录公司测试集群的时候,发现HDFS存在告警信息,查看详细信息,发现 NFS Gateway 进程退出,尝试重启该角色实例,执行重启操作后,报如下异常:

using  as SECURE_USER
using  as SECURE_GROUP
CONF_DIR=/run/cloudera-scm-agent/process/1436-hdfs-NFSGATEWAY
CMF_CONF_DIR=/etc/cloudera-scm-agent
unlimited
Cannot connect to port 111.
No portmap or rpcbind service is running on this host. Please start  portmap or rpcbind service before attempting to start the NFS Gateway role on  this host.
Wed Feb 21 01:07:02 EST 2018
JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
using /usr/java/jdk1.7.0_67-cloudera as JAVA_HOME
using 5 as CDH_VERSION
using /run/cloudera-scm-agent/process/1436-hdfs-NFSGATEWAY as CONF_DIR
using  as SECURE_USER
using  as SECURE_GROUP
CONF_DIR=/run/cloudera-scm-agent/process/1436-hdfs-NFSGATEWAY
CMF_CONF_DIR=/etc/cloudera-scm-agent
unlimited
Cannot connect to port 111.
No portmap or rpcbind service is running on this host. Please start  portmap or rpcbind service before attempting to start the NFS Gateway role on  this host.
Wed Feb 21 01:07:04 EST 2018
JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
using /usr/java/jdk1.7.0_67-cloudera as JAVA_HOME
using 5 as CDH_VERSION
using /run/cloudera-scm-agent/process/1436-hdfs-NFSGATEWAY as CONF_DIR
using  as SECURE_USER
using  as SECURE_GROUP
CONF_DIR=/run/cloudera-scm-agent/process/1436-hdfs-NFSGATEWAY
CMF_CONF_DIR=/etc/cloudera-scm-agent
unlimited
Cannot connect to port 111.
No portmap or rpcbind service is running  on this host. Please start portmap or rpcbind service before attempting to  start the NFS Gateway role on this host.
Wed Feb 21 01:07:07 EST 2018
JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
using /usr/java/jdk1.7.0_67-cloudera as JAVA_HOME
using 5 as CDH_VERSION
using /run/cloudera-scm-agent/process/1436-hdfs-NFSGATEWAY as CONF_DIR
using  as SECURE_USER
using  as SECURE_GROUP
CONF_DIR=/run/cloudera-scm-agent/process/1436-hdfs-NFSGATEWAY
CMF_CONF_DIR=/etc/cloudera-scm-agent
unlimited
Cannot connect to port 111.
No portmap or rpcbind service is running  on this host. Please start portmap or rpcbind service before attempting to  start the NFS Gateway role on this host.

上述红色字体的异常信息大致讲的是:在部署 NFS Gateway 的主机上没有运行portmap或者rpcbind服务,在尝试启动 NFS Gateway 角色实例之前,请先启动该主机上的portmap或者rpcbind服务。

定位到问题原因了,没安装portmap或者rpcbind服务。

3.NFS相关介绍

3.1.NFS概念


NFS是网络文件系统(Network File System)的简称,是分布式计算机系统的一个组成部分,它允许网络中的计算机之间通过TCP/IP网络共享资源,可实现在异构网络上共享和装配远程文件系统。NFS由SUN公司开发,目前已成为文件服务的一种标准(RFC1904,RFC1813)。其最大的功能就是可以通过网络,让不同操作系统的计算机可以共享数据,所以也可以看作是一个文件服务器。NFS是除了SAMBA之外Windows与Linux及Unix与Linux之间通信的方法。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

NFS原理图

NFS 在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

注:NFS的RPC服务,在Redhat/CentOS 5.X版本中,名称为portmap;在Redhat/CentOS 6.X及以上版本中,名称为rpcbind。

3.2.NFS的优点


1.节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。

2.用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。

3.一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。

4.问题解决

4.1.安装NFS相关的依赖包


1.安装nfs-utils

[root@cdh1 ~]# rpm -qa |grep nfs
nfs-utils-1.3.0-0.21.el7.x86_64
nfs4-acl-tools-0.3.3-14.el7.x86_64
libnfsidmap-0.25-12.el7.x86_64

2.安装rpcbind

[root@cdh1 ~]# rpm -qa |grep rpcbind
rpcbind-0.2.0-32.el7.x86_64

4.2.启动NFS相关服务


1.启动rpcbind服务

[root@cdh1 ~]# systemctl start portmap
Failed to start portmap.service: Unit portmap.service failed to load: No  such file or directory.
[root@cdh1 ~]# systemctl start rpc.bind
Failed to start rpc.bind.service: Unit rpc.bind.service failed to load:  No such file or directory.
[root@cdh1 ~]# systemctl start rpcbind
[root@cdh1 ~]# systemctl status rpcbind
● rpcbind.service  - RPC bind service
   Loaded: loaded  (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)
   Active: active (running) since  Wed 2018-02-21 01:24:23 EST; 7s ago
  Process: 2575  ExecStart=/sbin/rpcbind -w ${RPCBIND_ARGS} (code=exited, status=0/SUCCESS)
 Main PID: 2576 (rpcbind)
   CGroup:  /system.slice/rpcbind.service
           └─2576 /sbin/rpcbind -w
Feb 21 01:24:23 cdh1.macro.com systemd[1]: Starting RPC bind service...
Feb 21 01:24:23 cdh1.macro.com systemd[1]: Started RPC bind service.

2.启动nfs服务

[root@cdh1 ~]# systemctl start nfs
[root@cdh1 ~]# systemctl status nfs
●  nfs-server.service - NFS server and services
   Loaded: loaded  (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset:  disabled)
   Active: active (exited) since  Thu 2018-02-22 04:29:54 EST; 4s ago
  Process: 20489  ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 20487  ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 20489 (code=exited,  status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service
Feb 22 04:29:54 cdh1.macro.com systemd[1]: Starting NFS server and  services...
Feb 22 04:29:54 cdh1.macro.com rpc.nfsd[20489]: rpc.nfsd: unable to bind  inet TCP socket: errno 98 (Address already in use)
Feb 22 04:29:54 cdh1.macro.com systemd[1]: Started NFS server and  services.

4.3.重启NFS Gateway角色


登录CM管理界面,重启 NFS Gateway

4.4.相关建议


建议在部署NFS Gateway角色实例之前,先检查相关依赖的服务是否已启动。除此之外,建议将其依赖的服务设为开机自启,防止服务器重启后导致 NFS Gateway 启动失败。

5.总结


1.NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

2.NFS 在文件传送或信息传送过程中依赖于RPC协议,也就意味着,在部署 NFS Gateway 的主机上,必须安装相关的依赖包,并启动相关服务,否则,即使部署了 NFS Gateway 角色实例,也无法正常启动/使用其功能。

3.如果要查阅如何配置NFS服务器,可以查看文末的参考文章。

参考文章:

https://www.cnblogs.com/alonones/p/6105586.html


When your talent can’t support your ambition,

You should calm down and learn. When your ability cannot realize you dreams, You should practice with all your heart. Ask yourself, What kind of life you pursue.

本文分享自微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 0829-5.15.1-Hive锁表导致CM无法启动异常分析

    本文描述了一次CDH集群中,Hive锁表导致集群元数据MySQL的Hive MetaStore锁表,从而引起CM服务中断并且无法重启的异常分析。

    Fayson
  • CENTOS7.2安装CDH5.10和Kudu1.2(二)

    CDH从5.10开始,打包集成Kudu1.2,并且Cloudera正式提供支持。这个版本开始Kudu的安装较之前要简单很多,省去了Impala_Kudu,安装完...

    Fayson
  • 0506-如何将Hue4.0版本中默认执行引擎设置为Hive而非Impala

    在登录Hue后默认加载的为Impala执行引擎,对于那些不使用Impala或者喜欢在Hue中使用Hive进行查询的人,还需要进行切换比较麻烦。本篇文章Fayso...

    Fayson
  • 001.NFS简介

    NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让...

    木二
  • 在越狱的iPhone/iPad上安装自开发环境

    自开发跟自编译意思一样,后者表示一个开发语言的开发能力成熟度;前者则表示一个开发平台的开发能力成熟度。 iPhone跟iPad面世这么多年,一直无法摆脱“...

    俺踏月色而来
  • 【优化】356- 你必须懂的前端性能优化

    对于 DNS 解析和 TCP 连接两个步骤,我们前端可以做的努力非常有限。相比之下,HTTP 连接这一层面的优化才是我们网络优化的核心。

    pingan8787
  • 用 Python 实现一个大数据搜索引擎

    搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让...

    程序员宝库
  • 用Python实现一个大数据搜索引擎

    搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大...

    刀刀老高
  • NLP自然语言处理中的hanlp分词实例

    本篇分享的依然是关于hanlp的分词使用,文章内容分享自 gladosAI 的博客,本篇文章中提出了一个问题,hanlp分词影响了实验判断结果。为何会如此,不妨...

    IT小白龙
  • SQL注入基础-基于Sqli-lab平台实战

    有关SQL注入的各种定义阐述已经很多,大家可自行使用搜索引擎搜索即可,小东不再赘述。

    V站CEO-西顾

扫码关注云+社区

领取腾讯云代金券