您的位置:首页 > 运维架构

hadoop学习笔记之-NFS配置

2014-01-21 09:58 393 查看
分类:
hadoop
linux系统 2013-03-07 13:48
406人阅读 评论(0)
收藏
举报

一、实验环境:

系统版本:

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

三、使用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

四、遇到的问题:

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

http://f.dataguru.cn/thread-72885-1-1.html

参考:
http://www.dataguru.cn/blog-303-852.html http://f.dataguru.cn/thread-56101-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: