安装nfs软件
说明nfs基本工作原理和权限机制
注:其实实际上NFS并不是严格控制的服务器客户端的模式而是自己开启了nfs服务后可以配置自己共享的目录,通过参数配置可以让其他的机器挂载共享,这可以让机器无密钥共享一些数据,管理集群是非常好用的
选择第一台虚拟机169.254.19.8,下载redhat6的iso镜像,用iso搭建yum源,具体参见文档 Linux的搭建yum源学习.doc , 本台机器作为服务器
- 安装如下软件:
rpcbind-0.2.0-8.el6.i686
nfs4-acl-tools-0.3.3-5.el6.i686
nfs-utils-lib-1.1.5-4.el6.i686
nfs-utils-1.2.3-15.el6.i686
可以通过rpm -qa | grep rpcbind 和rpm -qa | grep nfs 来查询是否安装了必要软件包,如果没有可以通过yum install rpcbind yum install nfs-utils yum install nfs-utils-lib yum install nfs4-acl-tools来安装
配置nfs服务器共享的目录和参数: 先创建共享目录;
配置共享目录;
一些配置参数意义(可以根据需求配置参数);
ro 该主机对该共享目录有只读权限
rw 该主机对该共享目录有读写权限
root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
no_root_squash 客户机用root访问该共享文件夹时,不映射root用户
all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户
anonuid 将客户机上的用户映射成指定的本地用户ID的用户
anongid 将客户机上的用户映射成属于指定的本地用户组ID
sync 资料同步写入到内存与硬盘中
async 资料会先暂存于内存中,而非直接写入硬盘
insecure 允许从这台机器过来的非授权访问
重启服务使配置生效:
当nfs正在启动时,不停掉nfs服务器修改配置文件的方式: /usr/sbin/exportfs -rv 全部重新 export 一次 /usr/sbin/exportfs -au 全部卸载,通过 showmount -e IP来查看共享目录的配置:
在客户端机器上分别按照前面所述步骤安装nfs相关的4个软件包,然而和服务器不同的是,客户端不用配置共享文件,实验中本人剩下4台机器作为客户端,已经配置好hadoop并安装好ssh无秘钥登陆:
169.254.19.4 master
169.254.19.5 slave
169.254.19.6 slave
169.254.19.7 slave
这几台机器都依次安装上述nfs相关的4个包,并执行service rpcbind restart 和service nfs restart 来启动服务
这里的/nfsdir需要先通过mkdir /nfsdir来创建,这个/nfsdir 目录就能获得服务器的所有数据
测试nfs是否安装成功:服务器端新建nfs,txt文件
在客户端查看有新加的文件即nfs安装成功了
主机和客户端都配置卡机启动服务:
客户端配置开机自动挂载:
至此为止NFS的配置算是完成了
通过nfs配置ssh无秘钥登陆,达到管理hadoop的目的
在各个客户端配置好ssh服务并配置好hadoop集群,详见文档: hadoop完全分布式搭建详细说明及常见错误解决办法.doc
- 在nfs服务器端,通过ssh命令来将各个客户端的公钥拷贝到服务器端的authorized_keys文件中
下图所示公钥追加完成:
在各个客户端将原有的authorized_keys删掉,建一个软连接到共享的authorized_keys文件,这个文件时nfs所有,以后添加hadoop集群节点时是需要往nfs服务器的该共享文件添加公钥各个hadoop节点就都有了,就不用分发了,注意这时建立软链接时需要切换到hadoop用户(hadoop集群统一用的hadoop用户)公钥文件也都是hadoop用户的:
- 上述步骤依次给每个客户端建立软链接然后就能互相无密钥通信了,现在可以启动hadoop集群了
nfs管理hadoop集群完成