阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop学习笔记之-NFS配置

92次阅读
没有评论

共计 11998 个字符,预计需要花费 30 分钟才能阅读完成。

一、实验环境:

系统版本:

Red Hat Enterprise Linux Server release 5.6

主机名

别名

IP

系统版本

共享目录 / 挂载点

hotel01

hotel01.licz.com

192.168.2.111

OEL5.6

共享目录/home/grid

hotel02

hotel02.licz.com

192.168.2.112

OEL5.6

挂载点/nfs_share

hotel03

hotel03.licz.com

192.168.2.113

OEL5.6

挂载点/nfs_share

…..

    

 

共享目录:

NFS 的目录放在了 hotel01 主机上

 

 

二、安装 nfs 和 rpcbind 或 portmap

1. 软件简介:

NFS 是 Network File System 的简写, 即网络文件系统. 网络文件系统是 FreeBSD 支持的文件系统中的一种,也被称为 NFS. NFS 允许一个系统在网络上与他人共享目录和文件。通过使用 NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。

RPC 即 Remote Procedure Call Protocol(远程过程调用协议).

RPCBIND 用于取代旧版本中的 portmap 组件。简单说,RPCBIND 就是为了将不同服务与对应的端口进行绑定,以便支持机器间的互操作。

portmap 进程的主要功能是把 RPC 程序号转化为 Internet 的端口号。在使用 RPC 调用时它必须运行。

 

说明:由于我使用的 linux 版本不存在 rpcbind 组件,所以需要安装 portmap 组件进行实验。

 

2. 检查安装下面的 nfs 和 portmap rpm 包。

– 如果缺少可以在安装盘上查找并安装

[root@hotel01 bind]# rpm -qa|grep nfs

nfs-utils-1.0.9-50.el5

nfs4-acl-tools-0.3.3-1.el5

nfs-utils-lib-1.0.8-7.6.el5

 

[root@hotel01 ~]# rpm -qa|grep portmap

portmap-4.0-65.2.2.1

 

3. 检查并启动 NFS 和 portmap 服务

[root@hotel01 named]# service nfs status

rpc.mountd 已停

nfsd 已停

rpc.rquotad 已停

 

[root@hotel01 named]# rpm -qa|grep rpc

[root@hotel01 named]# service rpcbind status

rpcbind: 未被识别的服务

 

[root@hotel01 ~]# service portmap status

portmap 已停

 

[root@hotel01 ~]# service portmap start

启动 portmap:[确定]

 

[root@hotel01 ~]# service nfs start

启动 NFS 服务:[确定]

关掉 NFS 配额:[确定]

启动 NFS 守护进程:[确定]

启动 NFS mountd:[确定]

 

4. 配置服务开机启动

[root@hotel01 ~]# chkconfig nfs on

[root@hotel01 ~]# chkconfig portmap on

 

5. 设置为共享目录 /home/grid/

[root@hotel01 ~]# vi /etc/exports

/home/grid *(sync,rw) #添加此内容

 

说明:

/home/grid  是 NFS 要共享的目录

*  代表所有 ip 地址

rw 为读写,ro 为只读

Sync 为立刻写入硬盘,rsync 为优先写入缓存

No_root_squas root 用户具有根目录的完全管理访问权限(这个如果不配置会造成远程 root 用户只读)

 

6. 重启 portmap 和 nfs 服务

[root@hotel01 ~]# service portmap restart

停止 portmap:[确定]

启动 portmap:[确定]

[root@hotel01 ~]# service nfs restart

关闭 NFS mountd:[确定]

关闭 NFS 守护进程:[确定]

关闭 NFS quotas:[确定]

关闭 NFS 服务:[失败]

启动 NFS 服务:[确定]

关掉 NFS 配额:[确定]

启动 NFS 守护进程:[确定]

启动 NFS mountd:[确定]

 

– 注意关闭防火墙

 

7. 输出本地挂载点,即 hotel01(master)上的共享目录

[root@hotel01 ~]# showmount -e localhost

Export list for localhost:

/home/grid *

 

8. 在客户端上配置挂载目录

[root@hotel02 ~]# mkdir /nfs_share 

[root@hotel02 ~]# mount -t nfs 192.168.2.111:/home/grid /nfs_share/

[root@hotel02 ~]# cd /nfs_share/

-bash: cd: /nfs_share/: 权限不够

[root@hotel02 /]# su – grid

[grid@hotel02 ~]$ cd /nfs_share/

 

– 在共享目录创建测试文件

[root@hotel01 home]# cd grid

[root@hotel01 grid]# touch aaa.txt

 

– 在客户端查看

[grid@hotel02 .ssh]$ cd /nfs_share/

[grid@hotel02 nfs_share]$ ll

总计 0

-rw-r–r– 1 root  root  0 03-05 09:10 aaa.txt

 

说明:用同样的方法在其它客户端(hotel03)操作

 

9. 设置开机后自动挂载 nfs 共享目录

– 修改客户端 /etc/fstab 文件,添加下面的内容

[root@hotel02 ~]# vi /etc/fstab

192.168.2.111:/home/grid  /nfs_share            nfs    defaults        1 1

 

[root@hotel03 ~]# vi /etc/fstab

192.168.2.111:/home/grid  /nfs_share            nfs    defaults        1 1

 

[root@hotel03 ~]# cat /etc/fstab

LABEL=/                /                      ext3    defaults        1 1

LABEL=/boot            /boot                  ext3    defaults        1 2

tmpfs                  /dev/shm                tmpfs  defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                  /sys                    sysfs  defaults        0 0

proc                    /proc                  proc    defaults        0 0

LABEL=SWAP-sda3        swap                    swap    defaults        0 0

192.168.2.111:/home/grid  /nfs_share            nfs    defaults        1 1

 

相关阅读

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

三、使用 NFS 做 ssh 免密码连接配置

概述:

当使用 NFS 做 ssh 免密码连接配置时,我们的主要步骤就是把每个节点生成的 RSA 密钥对中的公钥整合一个共享目录的 authorized_keys 文件中,

然后创建连接,把各节点公钥文件指向共享的 authorized_keys。这种 ssh 免密码连接方法优点在于,当我们有新的节点接入时,不再需要分别向其它节点各自添加自己公钥信息,

只需要把公钥信息追加到共享的 authorized_keys 公钥当中,其它节点就直接指向最新的公钥文件。

但是在有许多台服务器做初始配置 ssh 时,仍需要在每个节点进行生成 RSA 密钥对的操作,即下面的第一、二步。相对之前传统的 ssh 的配置,只是省去了向各节点 copy 公钥的步骤,工作量仍是不小的。

 

 

1. 在各节点操作生成一个 RSA 密钥对

[grid@hotel01 .ssh]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/grid/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/grid/.ssh/id_rsa.

Your public key has been saved in /home/grid/.ssh/id_rsa.pub.

The key fingerprint is:

91:99:a9:d5:01:6c:6c:4d:a8:2b:37:a4:4e:5e:25:7f grid@hotel01

 

2. 整合 authorized_keys 密钥

– 把各个节点的 authorized_keys 的内容整合到共享目录文件(hotel01:/home/grid/.ssh/authorized_keys)

– 在一个节点上操作即可,下面是在 hotel01 机器执行本步的。

[grid@hotel01 .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  由于是本机不需要远程 copy

[grid@hotel01 .ssh]$ ssh hotel02.licz.com cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

The authenticity of host ‘hotel02.licz.com (192.168.2.112)’ can’t be established.

RSA key fingerprint is cc:25:05:5f:7f:80:82:6e:3e:c3:7e:db:5c:31:a9:bd.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ‘hotel02.licz.com’ (RSA) to the list of known hosts.

grid@hotel02.licz.com’s password:

[grid@hotel01 .ssh]$ ssh hotel03.licz.com cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

The authenticity of host ‘hotel03.licz.com (192.168.2.113)’ can’t be established.

RSA key fingerprint is 17:e0:53:55:8e:4c:8c:bf:77:4f:e7:94:66:a1:e5:e4.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ‘hotel03.licz.com,192.168.2.113’ (RSA) to the list of known hosts.

grid@hotel03.licz.com’s password:

 

– 查看整合后的文件

[grid@hotel01 .ssh]$ cat authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvpKuxCcT38nR5ZzlGMMJ7ZTY1CyadUNtWQgVY6j49f40RALVCf4OtG1avVML4SBGbbJ2WQloaxmlqrb4fMe2EVTSsNsbk8nS+ASZDl1RvtrghyurJlE23CkXf3cQyAMnaFerlRHJiiV73U8K5eICxi63jZ42G6d+tealdYuSeVDDeoisR9Z2vGmgsEofD1mezs2aVMedZX9rcir6iOFTQHtcPoMj1QZE5jwxkIskgen5/FmHmHJnsg5spwMQxjbsf8Zk1EUhVCpMWqmWNaqMncucxehzf8WcZKQYcbSE/THG1P6WGNENMDRJ5GZeHJ1zbzADKgvsAYwzZGaPg5tmGQ== grid@hotel01

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzDHM7glDYU/wpNxrKTZE1GaAqHhRkTnLaiGOCztwF9hE7LsT9xCfRrU/SGpyMwpWsxw751J+eh5lMK8HK1QAVB4d1HMteFHc3pc3am5j61T60+zmr05yoqq027vGKoGF4P4UQ0cNbyk38lqSZ7+Ad6oyyAOGJP5Lrqkudfqk1FX5YJGl9z9u00ozXpuJLttfoSxgO/3kWnTNEZVidu8uLzhNlyFpT/tHSkxBSvDJL1W6TPgcBdZbsv+vHqjU4LVdf63NgJundxjyfgLzEn0RAUZRaTHmLfRJHF6g7RiNcVO9B3nM0hwTeGCtF3kFJsmAc/lAuhBopuArltIhdXjraQ== grid@hotel02

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuDGEalsoFDtDVVYiFjJodUQwP7tsmP8W+xNzsc8C0GxCFL7p8vDdJnZs2/V0cECCDuabC8kzvy66b4a2WGnX4olQh1/fRB0k1HjPPJHEPucv/In/3St1wlV8z0CcLy1oe4BNbjRpXZLIcG67KWQPwWYa0h2ahNYcLclj3Zg+tB0tY0Bffypdbnr4/srePq2vcErEJQJ9Aiw87Uyl0sTjHVD9S8bXARsdkvkZD0jVTooeDbWDZfrxlUJLLGd5JuaQvaJ9JU/W5hShRME2CasE9ZIX0ao8tbUkQdtYCunR2cB3GlyaQA2ySPEHLuSSyhmrXN1Fa/GU404vFqV+lz3HZQ== grid@hotel03

 

3. 在各节点创建共享目录文件 authorized_keys 的软连接

– 在 hotel02 节点

[grid@hotel02 ~]$ ln -s /nfs_share/.ssh/authorized_keys ~/.ssh/authorized_keys

[grid@hotel02 ~]$ cd .ssh

[grid@hotel02 .ssh]$ ll

总计 8

lrwxrwxrwx 1 grid Hadoop  31 03-06 07:00 authorized_keys -> /nfs_share/.ssh/authorized_keys

-rw——- 1 grid hadoop 1671 03-06 06:41 id_rsa

-rw-r–r– 1 grid hadoop  394 03-06 06:41 id_rsa.pub

 

– 查看软连接到 hotel01 的 authorized_keys 内容

[grid@hotel02 .ssh]$ cat authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvpKuxCcT38nR5ZzlGMMJ7ZTY1CyadUNtWQgVY6j49f40RALVCf4OtG1avVML4SBGbbJ2WQloaxmlqrb4fMe2EVTSsNsbk8nS+ASZDl1RvtrghyurJlE23CkXf3cQyAMnaFerlRHJiiV73U8K5eICxi63jZ42G6d+tealdYuSeVDDeoisR9Z2vGmgsEofD1mezs2aVMedZX9rcir6iOFTQHtcPoMj1QZE5jwxkIskgen5/FmHmHJnsg5spwMQxjbsf8Zk1EUhVCpMWqmWNaqMncucxehzf8WcZKQYcbSE/THG1P6WGNENMDRJ5GZeHJ1zbzADKgvsAYwzZGaPg5tmGQ== grid@hotel01

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzDHM7glDYU/wpNxrKTZE1GaAqHhRkTnLaiGOCztwF9hE7LsT9xCfRrU/SGpyMwpWsxw751J+eh5lMK8HK1QAVB4d1HMteFHc3pc3am5j61T60+zmr05yoqq027vGKoGF4P4UQ0cNbyk38lqSZ7+Ad6oyyAOGJP5Lrqkudfqk1FX5YJGl9z9u00ozXpuJLttfoSxgO/3kWnTNEZVidu8uLzhNlyFpT/tHSkxBSvDJL1W6TPgcBdZbsv+vHqjU4LVdf63NgJundxjyfgLzEn0RAUZRaTHmLfRJHF6g7RiNcVO9B3nM0hwTeGCtF3kFJsmAc/lAuhBopuArltIhdXjraQ== grid@hotel02

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuDGEalsoFDtDVVYiFjJodUQwP7tsmP8W+xNzsc8C0GxCFL7p8vDdJnZs2/V0cECCDuabC8kzvy66b4a2WGnX4olQh1/fRB0k1HjPPJHEPucv/In/3St1wlV8z0CcLy1oe4BNbjRpXZLIcG67KWQPwWYa0h2ahNYcLclj3Zg+tB0tY0Bffypdbnr4/srePq2vcErEJQJ9Aiw87Uyl0sTjHVD9S8bXARsdkvkZD0jVTooeDbWDZfrxlUJLLGd5JuaQvaJ9JU/W5hShRME2CasE9ZIX0ao8tbUkQdtYCunR2cB3GlyaQA2ySPEHLuSSyhmrXN1Fa/GU404vFqV+lz3HZQ== grid@hotel03

 

– 同样在 hotel03 上创建软连接

[grid@hotel03 ~]$ ln -s /nfs_share/.ssh/authorized_keys ~/.ssh/authorized_keys

 

4. 测试 ssh 免密码连接

[grid@hotel01 ~]$ ssh hotel03.licz.com date

2013 年 03 月 06 日星期三 13:26:34 CST

[grid@hotel01 ~]$ ssh hotel02.licz.com date

2013 年 03 月 06 日星期三 09:22:20 CST

一、实验环境:

系统版本:

Red Hat Enterprise Linux Server release 5.6

主机名

别名

IP

系统版本

共享目录 / 挂载点

hotel01

hotel01.licz.com

192.168.2.111

OEL5.6

共享目录/home/grid

hotel02

hotel02.licz.com

192.168.2.112

OEL5.6

挂载点/nfs_share

hotel03

hotel03.licz.com

192.168.2.113

OEL5.6

挂载点/nfs_share

…..

    

 

共享目录:

NFS 的目录放在了 hotel01 主机上

 

 

二、安装 nfs 和 rpcbind 或 portmap

1. 软件简介:

NFS 是 Network File System 的简写, 即网络文件系统. 网络文件系统是 FreeBSD 支持的文件系统中的一种,也被称为 NFS. NFS 允许一个系统在网络上与他人共享目录和文件。通过使用 NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。

RPC 即 Remote Procedure Call Protocol(远程过程调用协议).

RPCBIND 用于取代旧版本中的 portmap 组件。简单说,RPCBIND 就是为了将不同服务与对应的端口进行绑定,以便支持机器间的互操作。

portmap 进程的主要功能是把 RPC 程序号转化为 Internet 的端口号。在使用 RPC 调用时它必须运行。

 

说明:由于我使用的 linux 版本不存在 rpcbind 组件,所以需要安装 portmap 组件进行实验。

 

2. 检查安装下面的 nfs 和 portmap rpm 包。

– 如果缺少可以在安装盘上查找并安装

[root@hotel01 bind]# rpm -qa|grep nfs

nfs-utils-1.0.9-50.el5

nfs4-acl-tools-0.3.3-1.el5

nfs-utils-lib-1.0.8-7.6.el5

 

[root@hotel01 ~]# rpm -qa|grep portmap

portmap-4.0-65.2.2.1

 

3. 检查并启动 NFS 和 portmap 服务

[root@hotel01 named]# service nfs status

rpc.mountd 已停

nfsd 已停

rpc.rquotad 已停

 

[root@hotel01 named]# rpm -qa|grep rpc

[root@hotel01 named]# service rpcbind status

rpcbind: 未被识别的服务

 

[root@hotel01 ~]# service portmap status

portmap 已停

 

[root@hotel01 ~]# service portmap start

启动 portmap:[确定]

 

[root@hotel01 ~]# service nfs start

启动 NFS 服务:[确定]

关掉 NFS 配额:[确定]

启动 NFS 守护进程:[确定]

启动 NFS mountd:[确定]

 

4. 配置服务开机启动

[root@hotel01 ~]# chkconfig nfs on

[root@hotel01 ~]# chkconfig portmap on

 

5. 设置为共享目录 /home/grid/

[root@hotel01 ~]# vi /etc/exports

/home/grid *(sync,rw) #添加此内容

 

说明:

/home/grid  是 NFS 要共享的目录

*  代表所有 ip 地址

rw 为读写,ro 为只读

Sync 为立刻写入硬盘,rsync 为优先写入缓存

No_root_squas root 用户具有根目录的完全管理访问权限(这个如果不配置会造成远程 root 用户只读)

 

6. 重启 portmap 和 nfs 服务

[root@hotel01 ~]# service portmap restart

停止 portmap:[确定]

启动 portmap:[确定]

[root@hotel01 ~]# service nfs restart

关闭 NFS mountd:[确定]

关闭 NFS 守护进程:[确定]

关闭 NFS quotas:[确定]

关闭 NFS 服务:[失败]

启动 NFS 服务:[确定]

关掉 NFS 配额:[确定]

启动 NFS 守护进程:[确定]

启动 NFS mountd:[确定]

 

– 注意关闭防火墙

 

7. 输出本地挂载点,即 hotel01(master)上的共享目录

[root@hotel01 ~]# showmount -e localhost

Export list for localhost:

/home/grid *

 

8. 在客户端上配置挂载目录

[root@hotel02 ~]# mkdir /nfs_share 

[root@hotel02 ~]# mount -t nfs 192.168.2.111:/home/grid /nfs_share/

[root@hotel02 ~]# cd /nfs_share/

-bash: cd: /nfs_share/: 权限不够

[root@hotel02 /]# su – grid

[grid@hotel02 ~]$ cd /nfs_share/

 

– 在共享目录创建测试文件

[root@hotel01 home]# cd grid

[root@hotel01 grid]# touch aaa.txt

 

– 在客户端查看

[grid@hotel02 .ssh]$ cd /nfs_share/

[grid@hotel02 nfs_share]$ ll

总计 0

-rw-r–r– 1 root  root  0 03-05 09:10 aaa.txt

 

说明:用同样的方法在其它客户端(hotel03)操作

 

9. 设置开机后自动挂载 nfs 共享目录

– 修改客户端 /etc/fstab 文件,添加下面的内容

[root@hotel02 ~]# vi /etc/fstab

192.168.2.111:/home/grid  /nfs_share            nfs    defaults        1 1

 

[root@hotel03 ~]# vi /etc/fstab

192.168.2.111:/home/grid  /nfs_share            nfs    defaults        1 1

 

[root@hotel03 ~]# cat /etc/fstab

LABEL=/                /                      ext3    defaults        1 1

LABEL=/boot            /boot                  ext3    defaults        1 2

tmpfs                  /dev/shm                tmpfs  defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                  /sys                    sysfs  defaults        0 0

proc                    /proc                  proc    defaults        0 0

LABEL=SWAP-sda3        swap                    swap    defaults        0 0

192.168.2.111:/home/grid  /nfs_share            nfs    defaults        1 1

 

相关阅读

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

四、遇到的问题:

1. 挂载共享目录时出现 Program not registered

现象:

[root@hotel02 ~]# mkdir /nfs_share

[root@hotel02 ~]# mount -t nfs 192.168.2.112:/home/grid /home/grid

mount: mount to NFS server ‘192.168.2.112’ failed: RPC Error: Program not registered.

 

解决:

目录名或是 IP(主机名)写错,应为

[root@hotel02 ~]# mount -t nfs 192.168.2.111:/home/grid /home/grid

2. 权限问题
下载 authorized_keys 文件后到 grid 用户 home 目录的.ssh 文件夹下;在此特别要注意的是权限问题,否则有 authorized_keys 文件也会提醒要求输入 ssh 登录密码,注意的权限如下:

(1) /home/Hadoop 这目录的权限应该是 700

(2) /home/hadoop/.ssh 这个目录的权限也应该是 700

(3) /home/hadoop/.ssh/ authorized_keys 这个文件的权限是 644

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计11998字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中