生产环境下Hadoop大集群安装与配置+DNS+NFS-DavideyLee
一环境Linux ISO:CentOS-6.0-i386-bin-DVD.iso 32位
JDK version:"1.6.0_25-ea" forlinux
Hadoop software version:hadoop-0.20.205.0.tar.gz forlinux
VMware® Workstation Version: 7.0.0 build-203739
我的linux虚拟机配置 master slave1 slave2 信息如下
主机名
IP
节点名
备注
h1
192.168.2.102
master
namenode和jobtracker
h2
192.168.2.103
slave1
datanode和tasktracker
H4
192.168.2.105
slave2
datanode和tasktracker
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方式安装DNS的rpm包,上网方式如下
CentOS需要能连入网络,这个比较简单,可以参考《NOSQL系列-memcached安装管理与repcached高可用性》,这篇文章在一开始就介绍了虚拟机如何连接上网
http://f.dataguru.cn/thread-46905-1-1.html
3.原来我们使用的hosts文件来解析主机名,现在可以不使用了直接删除即可,我呢直接改名吧,这样留着备用
# mv /etc/hosts /etc/hosts_20130126
4.有的筒子使用了webmin软件GUI方式配置了DNS服务器,这种方式是挺方便的界面化人性化,但我用惯了命令行(码农的归宿)所以直接使用rpm方式来安装DNS了
5.检查一下bind包有没有,这也是采用chroot机制
# rpm -q bind
package bind is not installed
# rpm -q bind-chroot
package bind-chroot is not installed
这里显示还没有安装,那么我们就需要yum方式安装啦
6.现在使用yum安装bind 和 bind-chroot 软件包
# yum -y install bind bind-chroot
省略。。。。。。
到此bind 和 bind-chroot包安装完成
# rpm -q bind
bind-9.8.2-0.10.rc1.el6_3.6.i686
# rpm -q bind-chroot
bind-chroot-9.8.2-0.10.rc1.el6_3.6.i686
哈哈现在都已经安装好了
7. yum install bind*还有三个包需要安装
# yum install bind*
现在都安装完毕了
8.修改named.conf文件,目录/etc/named.conf
# 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
配置正向反向配置文件
# 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.zone和2.168.192.in-addr.zon 文件
# cd /var/named 进入这个目录
# cp -p named.localhost leonarding.com.zone
# cp -p named.localhost 2.168.192.in-addr.zone
对这2个文件进行修改,修改成新的文件,这2个文件就是区域文件,一定要写对了,否则会报错
添加正向文件并且配置
# vim leonarding.com.zone
$TTL 86400
@ IN SOAh1.leonarding.com. chizk.www.leonarding.com. (
0 ; serial (d. adams)
1D ; refresh
1H ; retry
1W ; expiry
3H ) ; minimum
@ IN NSh1.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
添加反向文件并且配置
# vim 2.168.192.in-addr.zone
$TTL 86400
@ IN SOAh1.leonarding.com. chizk.www.leonarding.com. (
0 ; serial (d. adams)
1D ; refresh
1H ; retry
1W ; expiry
3H ) ; minimum
@ IN NSh1.leonarding.com.
102 IN PTR h1.leonarding.com.
103 IN PTR h2.leonarding.com.
105 IN PTR h4.leonarding.com.
修改正向文件和反向文件属组,使用chgrp即可
# chgrp named leonarding.com.zone
# chgrp named leonarding.com.rev
11.修改/etc/resolv.conf 添加DNS域名服务器ip
h1(master)
# vim /etc/resolv.conf
nameserver 192.168.2.102 在最后面追加此条即可,就是我的master机器ip说明我们是把master机器作为DNS域名解析服务器,
h2(slave)
# vim /etc/resolv.conf
nameserver 192.168.2.102
h4(slave)
# vim /etc/resolv.conf
nameserver 192.168.2.102
添加DNS域名服务器ip,当有域名或主机名解析的时候,就知道去哪台机器上进行映射了
12.启动DNS服务器
# service named start
启动named:【确定】
13.使用nslookup命令测试域名解析
测试之前关闭防火墙
# service iptables status
Iptables:未运行防火墙
正向解析域名->IP
# 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
# 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
# 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->域名
# 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.
# 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.
# 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命令做解析测试
# host h2.leonarding.com
h2.leonarding.com has address 192.168.2.103
# 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
namenode和jobtracker
h2
192.168.2.103
slave1
datanode和tasktracker
H4
192.168.2.105
slave2
datanode和tasktracker
4.我们开始做实验啦
检查NFS包是否已经安装
# 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包是否已经安装
# rpm -qa | grep rpcbind
rpcbind-0.2.0-8.el6.i686
现在都已经安装到系统中了
如果你的系统显示没有安装,可以使用yum install nfs-utils rpcbind进行安装,然后配置
5.我们查看一下NFS服务和rpcbind服务是否启动
# service nfs status
rcp.svcgssd已停
rpc.mountd已停
nfsd 已停
rpc.rquotad已停 nfs已经停止了,我们现在应该启动nfs服务
# service rpcbind status
rpcbind (pid1431)正在运行…….
6.启动服务
# service nfs start
启动NFS服务【确定】
关掉NFS配额【确定】
启动FNS守护进程【确定】
启动NFS mountd 【确定】
设置开机启动
# chkconfig nfs on
# chkconfig rpcbind on
7.把/home/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用户只读)
# cat /etc/exports
/home/grid *(sync,rw)
8.重启rpcbind和nfs服务
# service rpcbind restart
停止 rpcbind:【确定】
正在启动rpcbind 【确定】
# service nfs restart
全部启动
注意这里也要关闭防火墙设置
9.输出本地挂载点(即master上的共享目录)
# showmount -e localhost
Export list for localhost:
/home/grid *
解释:
/home/grid 是NFS要共享的目录
星号代表所有ip地址
10.客户端h2 h4上配置
登陆h2
# mkdir /nfs_share 在根目标下创建挂载点
# mount -t nfs 192.168.2.102:/home/grid /nfs_share/
在h2上访问h1把/home/grid目录挂载到/ nfs_share/目录下
drwx------.38 grid hadoop4096 12月 15 15:00 nfs_share
切换到grid用户进入共享目录查看
$ cd /nfs_share/
-bash: cd: nfs_share/:权限不够
报错啦,权限不够,这是为什么呢,经过了激烈的测试,发现是h1中/home/grid目录权限问题
# chmod -R 777 grid 为了方便我直接给了全部权限,在h1上操作
# mount 192.168.2.102:/home/grid/ /nfs_share/ 在h2上重新挂载目录
# su – grid 切换用户
$ cd nfs_share/ ok我们现在可以畅通无阻了
$ cd .ssh 没有问题进来啦,成功
11.小测试
测试什么呢,我们不是设置了共享目录嘛,我在h1的共享目录上创建一个11111111.txt文件,然后登陆h2的挂载点,看看能不能查询到
h1 服务端
# touch 11111111.txt
# ll | grep 11111111.txt
h2 客户端
$ ll | grep 11111111.txt
-rw-r--r--.1 root root 0 1月 27 14:27 11111111.txt
12.设置开机后自动挂载nfs共享目录
修改fstab文件,这个文件描述了开机后应该挂载哪些挂载点
# vim /etc/fstab 在最后添加这行命令
192.168.2.102:/home/grid/nfs_share nfs defaults 1 1
# cat /etc/fstab
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devptsgid=5,mode=6200 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 客户端
$ pwd
/nfs_share/.ssh
$ ln -s authorized_keys /home/grid/.ssh/authorized_keys
这种方式可能会导致软链接文件符号链接的层次过多,创建失败,但会有文件名注意文件名是红色的,这是不正常的,避免的方法是都使用绝对路径
还有另一种方法
$ cd ~/.ssh/
$ ln -s /nfs_share/.ssh/authorized_keys authorized_keys
authorized_keys -> /nfs_share/.ssh/authorized_keys
第一个authorized_keys指的是h2上的,第二个authorized_keys指的是h1上的,注意区分
我们用h1的authorized_keys文件来创建h2上authorized_keys文件软链接
注意如果原来h2上就有/home/grid/.ssh/authorized_keys文件需要先删除在创建
rm -rf /home/grid/.ssh/authorized_keys
我们在h2上看一下h1的authorized_keys文件内容
$ cat /nfs_share/.ssh/authorized_keys
我们在看看h2的软链接文件内容是不是已经链过去了
$ cat authorized_keys
看一模一样
在H4节点上共享密钥文件
h4
# mkdir /nfs_share 在根目标下创建挂载点
# mount -t nfs 192.168.2.102:/home/grid /nfs_share/
在h4上访问h1把/home/grid目录挂载到/ nfs_share/目录下
# su – grid 切换到grid用户
$ cd nfs_share/.ssh/ 我们可以成功进入共享目录来访问h1中的文件
修改fstab文件,这个文件描述了开机后应该挂载哪些挂载点
# vim /etc/fstab
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devptsgid=5,mode=6200 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共享目录
$ cd ~/.ssh/ 进入h4的.ssh目录
$ rm -rf authorized_keys 发现原来存在authorized_keys文件顾删除
$ ln -s /nfs_share/.ssh/authorized_keys ~/.ssh/authorized_keys
authorized_keys -> /nfs_share/.ssh/authorized_keys软链接文件已经生成
$ cat authorized_keys 查看软链接文件内容
小结:通过对比我们知道h1的authorized_keys授权文件和h2 h4上的软链接文件内容都是一模一样的,到此我们就可以免密码连入了
页:
[1]