安装nfs软件

说明nfs基本工作原理和权限机制

注:其实实际上NFS并不是严格控制的服务器客户端的模式而是自己开启了nfs服务后可以配置自己共享的目录,通过参数配置可以让其他的机器挂载共享,这可以让机器无密钥共享一些数据,管理集群是非常好用的

  1. 选择第一台虚拟机169.254.19.8,下载redhat6的iso镜像,用iso搭建yum源,具体参见文档 Linux的搭建yum源学习.doc本台机器作为服务器

  2. 安装如下软件:

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来安装


  1. 配置nfs服务器共享的目录和参数: 先创建共享目录;

    配置共享目录;

    一些配置参数意义(可以根据需求配置参数);

ro 该主机对该共享目录有只读权限

rw 该主机对该共享目录有读写权限

root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户

no_root_squash 客户机用root访问该共享文件夹时,不映射root用户

all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户

anonuid 将客户机上的用户映射成指定的本地用户ID的用户

anongid 将客户机上的用户映射成属于指定的本地用户组ID

sync 资料同步写入到内存与硬盘中

async 资料会先暂存于内存中,而非直接写入硬盘

insecure 允许从这台机器过来的非授权访问

  1. 重启服务使配置生效:

  2. 当nfs正在启动时,不停掉nfs服务器修改配置文件的方式: /usr/sbin/exportfs -rv 全部重新 export 一次 /usr/sbin/exportfs -au 全部卸载,通过 showmount -e IP来查看共享目录的配置:


  3. 在客户端机器上分别按照前面所述步骤安装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 来启动服务

  1. 这里的/nfsdir需要先通过mkdir /nfsdir来创建,这个/nfsdir 目录就能获得服务器的所有数据

  2. 测试nfs是否安装成功:服务器端新建nfs,txt文件

在客户端查看有新加的文件即nfs安装成功了

  1. 主机和客户端都配置卡机启动服务:

  2. 客户端配置开机自动挂载:

至此为止NFS的配置算是完成了

通过nfs配置ssh无秘钥登陆,达到管理hadoop的目的

  1. 在各个客户端配置好ssh服务并配置好hadoop集群,详见文档: hadoop完全分布式搭建详细说明及常见错误解决办法.doc

  2. 在nfs服务器端,通过ssh命令来将各个客户端的公钥拷贝到服务器端的authorized_keys文件中

下图所示公钥追加完成:

  1. 在各个客户端将原有的authorized_keys删掉,建一个软连接到共享的authorized_keys文件,这个文件时nfs所有,以后添加hadoop集群节点时是需要往nfs服务器的该共享文件添加公钥各个hadoop节点就都有了,就不用分发了,注意这时建立软链接时需要切换到hadoop用户(hadoop集群统一用的hadoop用户)公钥文件也都是hadoop用户的:

  2. 上述步骤依次给每个客户端建立软链接然后就能互相无密钥通信了,现在可以启动hadoop集群了

nfs管理hadoop集群完成