一環境html
Linux ISO:CentOS-6.0-i386-bin-DVD.iso 32位node
JDK version:"1.6.0_25-ea" for linuxlinux
Hadoop software version:hadoop-0.20.205.0.tar.gz for linuxweb
VMware® Workstation Version: 7.0.0 build-203739vim
個人linux虛擬機配置 master slave1 slave2 信息以下緩存
主機名ruby |
IPbash |
節點名服務器 |
備註網絡 |
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文件來解析主機名,如今能夠不使用了直接刪除便可,我呢直接更名吧,這樣留着備用
[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.zone和2.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
h1(master)
[root@h1 named]# vim /etc/resolv.conf
nameserver 192.168.2.102 在最後面追加此條便可,就是個人master機器ip說明咱們是把master機器做爲DNS域名解析服務器,
h2(slave)
[root@h2 sysconfig]# vim /etc/resolv.conf
nameserver 192.168.2.102
h4(slave)
[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 |
namenode和jobtracker |
h2 |
192.168.2.103 |
slave1 |
datanode和tasktracker |
H4 |
192.168.2.105 |
slave2 |
datanode和tasktracker |
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.重啓rpcbind和nfs服務
[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 – 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上的,注意區分
咱們用h1的authorized_keys文件來建立h2上authorized_keys文件軟連接
注意若是原來h2上就有/home/grid/.ssh/authorized_keys文件須要先刪除在建立
rm -rf /home/grid/.ssh/authorized_keys
咱們在h2上看一下h1的authorized_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 – 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 查看軟連接文件內容
小結:經過對比咱們知道h1的authorized_keys受權文件和h2 h4上的軟連接文件內容都是如出一轍的,到此咱們就能夠免密碼連入了