生产环境下Hadoop大集群安装与配置+DNS+NFS

一环境

Linux ISOCentOS-6.0-i386-bin-DVD.iso     32

JDK version"1.6.0_25-ea"   for  linux

Hadoop software versionhadoop-0.20.205.0.tar.gz   for  linux

VMware® Workstation   Version 7.0.0 build-203739

我的linux虚拟机配置   master   slave1   slave2    信息如下

主机名

IP

节点名

备注

h1

192.168.2.102

master

namenodejobtracker

h2

192.168.2.103

slave1

datanodetasktracker

H4

192.168.2.105

slave2

datanodetasktracker

DNS服务器安装与配置参考链接,感谢yanggw8071   mikeliu   chizeng

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

2.http://f.dataguru.cn/thread-52579-1-1.html

3.http://f.dataguru.cn/thread-56022-1-3.html

Bind安装DNS服务器并成功解析主机名

1.说明一下,我把DNS服务器安装到h1节点(master上)然后对h1 h2 h4 节点的主机名进行解析

2.需要h1节点可以上网,因为我们需要使用yum方式安装DNSrpm包,上网方式如下

CentOS需要能连入网络,这个比较简单,可以参考《NOSQL系列-memcached安装管理与repcached高可用性》,这篇文章在一开始就介绍了虚拟机如何连接上网

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

3.原来我们使用的hosts文件来解析主机名,现在可以不使用了直接删除即可,我呢直接改名吧,这样留着备用

[root@h1 etc]# mv /etc/hosts /etc/hosts_20130126

4.有的筒子使用了webmin软件GUI方式配置了DNS服务器,这种方式是挺方便的界面化人性化,但我用惯了命令行(码农的归宿)所以直接使用rpm方式来安装DNS

5.检查一下bind包有没有,这也是采用chroot机制

[root@h1 ~]# rpm -q bind

package bind is not installed

[root@h1 ~]# rpm -q bind-chroot

package bind-chroot is not installed

这里显示还没有安装,那么我们就需要yum方式安装啦

6.现在使用yum安装bind bind-chroot 软件包

[root@h1 ~]# yum -y install bind bind-chroot

省略。。。。。。

到此bind bind-chroot包安装完成

[root@h1 ~]# rpm -q bind

bind-9.8.2-0.10.rc1.el6_3.6.i686

[root@h1 ~]# rpm -q bind-chroot

bind-chroot-9.8.2-0.10.rc1.el6_3.6.i686

哈哈现在都已经安装好了

7. yum install bind*还有三个包需要安装

[root@h1 etc]# yum install bind*

现在都安装完毕了

8.修改named.conf文件,目录/etc/named.conf

[root@h1 etc]# vim /etc/named.conf        修改2处,标红显示

options {

       listen-on port 53 { any; };       //127.0.0.1 修改成 any

       listen-on-v6 port 53 { ::1; };

       directory       "/var/named";

       dump-file       "/var/named/data/cache_dump.db";

       statistics-file "/var/named/data/named_stats.txt";

       memstatistics-file "/var/named/data/named_mem_stats.txt";

       allow-query     { any; };      //localhost 修改成 any

       recursion yes;

       dnssec-enable yes;

       dnssec-validation yes;

       dnssec-lookaside auto;

       /* Path to ISC DLV key */

       bindkeys-file "/etc/named.iscdlv.key";

       managed-keys-directory "/var/named/dynamic";

};

logging {

       channel default_debug {

               file "data/named.run";

               severity dynamic;

       };

};

zone "." IN {

       type hint;

       file "named.ca";

};

include "/etc/named.rfc1912.zones";

include "/etc/named.root.key";

9. 修改named.rfc1912.zones文件,目录/etc/named.rfc1912.zones

配置正向反向配置文件

[root@h1 etc]# vim /etc/named.rfc1912.zones     在这个文件末尾添加如下内容,红色是注意的地方

zone "leonarding.com" IN {

       type master;

       file "leonarding.com.zone";       注意这是你自己设置的域名,要牢牢记住

       allow-update { none; };

};

zone "2.168.192.in-addr.arpa" IN {

       type master;

       file "2.168.192.in-addr.zone";      这是反向配置文件

       allow-update { none; };

};

10.创建leonarding.com.zone2.168.192.in-addr.zon 文件

[root@h1 etc]# cd /var/named          进入这个目录

[root@h1 named]# cp -p named.localhost leonarding.com.zone

[root@h1 named]# cp -p named.localhost 2.168.192.in-addr.zone

对这2个文件进行修改,修改成新的文件,这2个文件就是区域文件,一定要写对了,否则会报错

添加正向文件并且配置

[root@h1 named]# vim leonarding.com.zone

$TTL 86400

@    IN    SOA  h1.leonarding.com. chizk.www.leonarding.com. (

    0 ; serial (d. adams)

    1D ; refresh

    1H ; retry

    1W ; expiry

    3H ) ; minimum

@    IN    NS  h1.leonarding.com.

h1.leonarding.com. IN A 192.168.2.102

h2.leonarding.com. IN A 192.168.2.103

h4.leonarding.com. IN A 192.168.2.105

添加反向文件并且配置

[root@h1 named]# vim 2.168.192.in-addr.zone

$TTL 86400

@    IN    SOA  h1.leonarding.com. chizk.www.leonarding.com. (

    0 ; serial (d. adams)

    1D ; refresh

    1H ; retry

    1W ; expiry

    3H ) ; minimum

@    IN    NS  h1.leonarding.com.

102 IN PTR h1.leonarding.com.

103 IN PTR h2.leonarding.com.

105 IN PTR h4.leonarding.com.

修改正向文件和反向文件属组,使用chgrp即可

[root@h1 named]# chgrp named leonarding.com.zone

[root@h1 named]# chgrp named leonarding.com.rev

11.修改/etc/resolv.conf 添加DNS域名服务器ip

h1master

[root@h1 named]# vim /etc/resolv.conf

nameserver 192.168.2.102          在最后面追加此条即可,就是我的master机器ip说明我们是把master机器作为DNS域名解析服务器,

h2slave

[root@h2 sysconfig]# vim /etc/resolv.conf

nameserver 192.168.2.102

h4slave

[root@h4 .ssh]# vim /etc/resolv.conf

nameserver 192.168.2.102

添加DNS域名服务器ip,当有域名或主机名解析的时候,就知道去哪台机器上进行映射了

12.启动DNS服务器

[root@h1 named]# service named start

启动  named:【确定】

13.使用nslookup命令测试域名解析

测试之前关闭防火墙

[root@h1 named]# service iptables status

Iptables:未运行防火墙

正向解析域名->IP

[root@h1 named]# nslookup h1.leonarding.com

Server:          192.168.2.102                    指域名服务器ip地址

Address:       192.168.2.102#53                     ip+端口号,DNS默认53端口

Name:   h1.leonarding.com                    域名解析

Address: 192.168.2.102                       映射ip

[root@h1 named]# nslookup h2.leonarding.com

Server:          192.168.2.102                    指域名服务器ip地址

Address:       192.168.2.102#53                     ip+端口号,DNS默认53端口

Name:   h2.leonarding.com                    域名解析

Address: 192.168.2.103                       映射ip

[root@h1 named]# nslookup h4.leonarding.com

Server:          192.168.2.102                    指域名服务器ip地址

Address:       192.168.2.102#53                    ip+端口号,DNS默认53端口

Name:   h4.leonarding.com                    域名解析

Address: 192.168.2.105                       映射ip

反向解析IP->域名

[root@h1 named]# nslookup 192.168.2.102

Server:          192.168.2.102

Address:       192.168.2.102#5

102.2.168.192.in-addr.arpa     name = h1.leonarding.com.

[root@h1 named]# nslookup 192.168.2.103

Server:          192.168.2.102

Address:       192.168.2.102#53

103.2.168.192.in-addr.arpa     name = h2.leonarding.com.

[root@h1 named]# nslookup 192.168.2.105

Server:          192.168.2.102

Address:       192.168.2.102#53

105.2.168.192.in-addr.arpa     name = h4.leonarding.com.

我们还可以使用host命令做解析测试

[root@h1 named]# host h2.leonarding.com

h2.leonarding.com has address 192.168.2.103

[root@h1 named]# host 192.168.2.103

103.2.168.192.in-addr.arpa domain name pointer h2.leonarding.com.

小结:到此我们使用Bind安装DNS服务器与配置,终于大功告成了,太不容易了,这是第一次独立完成DNS的配置和排除故障,之前也做过但一直顺风顺水,这次遇到了困难,还是应该多仔细认真反复查询测试,在此感谢ask兄的点拨!

三生产环境下hadoop大集群NFS安装与配置

1.说明一下,我还是把NFS系统安装到h1节点(master上)然后把共享目录挂载到h1 h2 h4节点,实现ssh密钥的共享

2.NFS参考链接,感谢chizeng   gaojian309

http://f.dataguru.cn/thread-56101-1-4.html

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

3.三台虚拟操作系统如下

主机名

IP

节点名

备注

h1

192.168.2.102

master

namenodejobtracker

h2

192.168.2.103

slave1

datanodetasktracker

H4

192.168.2.105

slave2

datanodetasktracker


4.我们开始做实验啦

检查NFS包是否已经安装

[root@h1 ~]# rpm -qa | grep nfs

nfs-utils-1.2.2-7.el6.i686

nfs4-acl-tools-0.3.3-5.el6.i686

nfs-utils-lib-1.1.5-1.el6.i686

现在都已经安装到系统中了

检查rpcbind包是否已经安装

[root@h1 ~]# rpm -qa | grep rpcbind

rpcbind-0.2.0-8.el6.i686

现在都已经安装到系统中了

如果你的系统显示没有安装,可以使用yum install nfs-utils rpcbind  进行安装,然后配置

5.我们查看一下NFS服务和rpcbind服务是否启动

[root@h1 ~]# service nfs status

rcp.svcgssd  已停

rpc.mountd  已停

nfsd        已停

rpc.rquotad  已停                nfs已经停止了,我们现在应该启动nfs服务

[root@h1 ~]# service rpcbind status

rpcbind (pid  1431)  正在运行…….

6.启动服务

[root@h1 ~]# service nfs start

启动NFS服务【确定】

关掉NFS配额【确定】

启动FNS守护进程【确定】

启动NFS mountd                【确定】

设置开机启动

[root@h1 ~]# chkconfig nfs on

[root@h1 ~]# chkconfig rpcbind on

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

[root@h1 grid]# vim /etc/exports            exports文件中添加/home/grid *(sync,rw)字符串

/home/grid *(sync,rw)

解释

/home/grid       NFS要共享的目录

星号代表所有ip地址

Rw为读写,ro为只读

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

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

[root@h1 grid]# cat /etc/exports

/home/grid *(sync,rw)

8.重启rpcbindnfs服务

[root@h1 grid]# service rpcbind restart

停止 rpcbind:【确定】

正在启动rpcbind                  【确定】

[root@h1 grid]# service nfs restart

全部启动

注意这里也要关闭防火墙设置

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

[root@h1 grid]# showmount -e localhost

Export list for localhost:

/home/grid *

解释:

/home/grid       NFS要共享的目录

星号代表所有ip地址

10.客户端h2 h4上配置

登陆h2

[root@h2 ~]# mkdir /nfs_share               在根目标下创建挂载点

[root@h2 ~]# mount -t nfs 192.168.2.102:/home/grid /nfs_share/  

h2上访问h1/home/grid目录挂载到/ nfs_share/目录下

drwx------.  38 grid hadoop  4096   12   15 15:00 nfs_share

切换到grid用户进入共享目录查看

[grid@h2 ~]$ cd /nfs_share/

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

报错啦,权限不够,这是为什么呢,经过了激烈的测试,发现是h1/home/grid目录权限问题

[root@h1 home]# chmod -R 777 grid     为了方便我直接给了全部权限,在h1上操作

[root@h2 /]# mount 192.168.2.102:/home/grid/ /nfs_share/    h2上重新挂载目录

[root@h2 /]# su �C grid                 切换用户

[grid@h2 /]$ cd nfs_share/             ok我们现在可以畅通无阻了

[grid@h2 nfs_share]$ cd .ssh           没有问题进来啦,成功

11.小测试

测试什么呢,我们不是设置了共享目录嘛,我在h1的共享目录上创建一个11111111.txt文件,然后登陆h2的挂载点,看看能不能查询到

h1   服务端

[root@h1 grid]# touch 11111111.txt

[root@h1 grid]# ll | grep 11111111.txt

h2   客户端

[grid@h2 nfs_share]$ ll | grep 11111111.txt

-rw-r--r--.  1 root root          0    1    27 14:27 11111111.txt

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

修改fstab文件,这个文件描述了开机后应该挂载哪些挂载点

[root@h2 ~]# vim /etc/fstab                     在最后添加这行命令

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

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

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

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

现在NFS配置成功

13.使用NFS共享密钥文件

h2   客户端

[grid@h2 .ssh]$ pwd

/nfs_share/.ssh

[grid@h2 .ssh]$ ln -s authorized_keys /home/grid/.ssh/authorized_keys  

这种方式可能会导致软链接文件符号链接的层次过多,创建失败,但会有文件名注意文件名是红色的,这是不正常的,避免的方法是都使用绝对路径

还有另一种方法

[grid@h2 .ssh]$ cd ~/.ssh/

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

authorized_keys -> /nfs_share/.ssh/authorized_keys

第一个authorized_keys指的是h2上的,第二个authorized_keys指的是h1上的,注意区分

我们用h1authorized_keys文件来创建h2authorized_keys文件软链接

注意如果原来h2上就有/home/grid/.ssh/authorized_keys文件需要先删除在创建

rm -rf /home/grid/.ssh/authorized_keys

我们在h2上看一下h1authorized_keys文件内容

[grid@h2 .ssh]$ cat /nfs_share/.ssh/authorized_keys

我们在看看h2的软链接文件内容是不是已经链过去了

[grid@h2 .ssh]$ cat authorized_keys

看一模一样

H4节点上共享密钥文件

h4

[root@h4 ~]# mkdir /nfs_share                      在根目标下创建挂载点

[root@h4 ~]# mount -t nfs 192.168.2.102:/home/grid /nfs_share/

h4上访问h1/home/grid目录挂载到/ nfs_share/目录下

[root@h4 ~]# su �C grid          切换到grid用户

[grid@h4 /]$ cd nfs_share/.ssh/   我们可以成功进入共享目录来访问h1中的文件

修改fstab文件,这个文件描述了开机后应该挂载哪些挂载点

[root@h4 ruby]# vim /etc/fstab

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

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

在最后添加红色字符串一行,这样在重启时系统就会自动挂载NFS共享目录

[grid@h4 .ssh]$ cd ~/.ssh/      进入h4.ssh目录

[grid@h4 .ssh]$ rm -rf authorized_keys    发现原来存在authorized_keys文件顾删除

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

authorized_keys -> /nfs_share/.ssh/authorized_keys  软链接文件已经生成

[grid@h4 .ssh]$ cat authorized_keys               查看软链接文件内容

小结:通过对比我们知道h1authorized_keys授权文件和h2 h4上的软链接文件内容都是一模一样的,到此我们就可以免密码连入了




你可能感兴趣的:(生产环境下Hadoop大集群安装与配置+DNS+NFS)