RPC:端口映射器故障 - 无法接收:errno 113(没有到主机的路由)

Bha*_*ain 6 ubuntu nfs mount apt hadoop

我正在尝试通过以下链接使用 nfs 在我的本地计算机(ubuntu)上安装 hdfs:--

https://www.cloudera.com/documentation/enterprise/5-2-x/topics/cdh_ig_nfsv3_gateway_configure.html#xd_583c10bfdbd326ba--6eed2fb8-14349d04bee--7ef4
Run Code Online (Sandbox Code Playgroud)

因此,在我的机器上,我使用以下方法安装了 nfs-common:-

sudo apt-get install nfs-common
Run Code Online (Sandbox Code Playgroud)

然后,在安装之前我已经运行了这些命令:-

rpcinfo -p 192.168.170.52
program vers proto   port  service
100000    4   tcp    111  portmapper
100000    3   tcp    111  portmapper
100000    2   tcp    111  portmapper
100000    4   udp    111  portmapper
100000    3   udp    111  portmapper
100000    2   udp    111  portmapper
100024    1   udp  48435  status
100024    1   tcp  54261  status
100005    1   udp   4242  mountd
100005    2   udp   4242  mountd
100005    3   udp   4242  mountd
100005    1   tcp   4242  mountd
100005    2   tcp   4242  mountd
100005    3   tcp   4242  mountd
100003    3   tcp   2049  nfs

showmount -e 192.168.170.52
Export list for 192.168.170.52:
/ *
Run Code Online (Sandbox Code Playgroud)

之后,我尝试使用以下方法安装 hdfs:--

sudo mount -t nfs  -o vers=3,proto=tcp,nolock 192.168.170.52:/ /mnt/hdfs_mount/
Run Code Online (Sandbox Code Playgroud)

但我收到了这个错误:---

mount.nfs: mount system call failed
Run Code Online (Sandbox Code Playgroud)

然后我用谷歌搜索了这个问题并安装了 nfs-kernel-server,portmap 使用

sudo apt-get install nfs-kernel-server portmap
Run Code Online (Sandbox Code Playgroud)

执行上述命令后,输出为:---

rpcinfo -p 192.168.170.52
Run Code Online (Sandbox Code Playgroud)

是: -

192.168.170.52: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
Run Code Online (Sandbox Code Playgroud)

并为

showmount -e 192.168.170.52
Run Code Online (Sandbox Code Playgroud)

是: - -

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
Run Code Online (Sandbox Code Playgroud)

还有输出:--

sudo service nfs start
Run Code Online (Sandbox Code Playgroud)

出来是:--

Failed to start nfs.service: Unit nfs.service not found.
Run Code Online (Sandbox Code Playgroud)

请帮我解决一下这个。

小智 21

我在CentOS 7上测试这个问题,遇到这样的问题就得深挖了。

问题:

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
Run Code Online (Sandbox Code Playgroud)

跟防火墙有关。该命令showmount -e IP_server显示服务器上可用的所有挂载。这个命令工作正常,但你必须小心打开哪个端口。如果只2049打开了端口,它就不能通过防火墙。如果 NFS 服务器上的防火墙已配置为允许 NFS 流量进入,它仍将阻止该showmount命令。要测试您是否在服务器上禁用防火墙,您应该摆脱这个问题。

所以这些端口应该在服务器上打开:

firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-port=2049/tcp
firewall-cmd --permanent --add-port=2049/udp
firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)

额外测试 2049/NFS 端口的可用性。

  • semanage port -l | grep 2049 - 返回 SELinux 上下文和服务名称
  • netstat -tulpen | grep 2049