本文從雲計算的實際項目中總結,具有很好的參考價值;
1,hadoop大集羣的設備選取:
普通pc就可以了,硬盤足夠大,多塊硬盤就可以;CPU只要四核以上;專門的存儲是不需要的;實施hadoop集羣的指導思想,我們用廉價的PC集羣來代替高大上的小型機和存儲;
2,用虛擬機部署,設備需要從下面指標考量
如果用虛擬機部署的話,內存要足夠大,如果機器有很多CPU,利用虛擬機可以充分利用CPU的效率;虛擬機最好不要共用同一個物理硬盤,共用同一個物理硬盤很容易IO衝突;多個物理硬盤可以降低IO衝突;當然,還要考慮IO通道的問題;硬盤的個數,性能(包括傳輸速度,緩存,轉速),IO通道的個數和速度都是應該考慮的指標;
3,在hadoop集羣中名字解析的考慮,使用dns或者hosts文件:
在規模較小的集羣中可以直接使用hosts文件解析;在大規模的集羣中我們採用DNS解析域名;linux下可以用bind建立DNS;安裝好bind後, 在/etc/resolve.conf中添加nameserver;
[root@rhmn ~]# cat /etc/resolv.conf
nameserver 12.1.0.1
使用nslookup測試DNS:
[root@rhmn ~]# nslookup
> www.baidu.com
Server: 12.1.0.1
Address: 12.1.0.1#53
Non-authoritative answer:
www.baidu.com canonical name =
www.a.shifen.com.
Name: www.a.shifen.com
Address: 115.239.210.27
Name: www.a.shifen.com
Address: 115.239.210.26
>
4,建立免密碼登陸;ssh 免密碼登陸;
把~/.ssh/下面的公鑰追加到對應機器的~/.ssh/authorized_keys中;
如果沒有公鑰,使用ssh-keygen生成
5,把hadoop目錄整體複製到其他節點, 命令:
scp -rp ./hadoop hadoop@vm2:/home/hadoop
如果在大規模的環境下用腳本統一把hadoop目錄拷貝到每個節點,例如向vm1-vm8的slave節點上拷貝hadoop文件夾:
創建文件包括vm1-vm8:
[root@rhmn ~]#cat slaves
vm1
vm2
vm3
vm4
vm5
vm6
vm7
vm8
生成腳本,拷貝hadoop目錄:
cat slaves|awk '{print "scp -rp ./hadoop hadoop@"$1":/home/hadoop"}' > ./test.sh
chmod 755 ./test.sh
sh ./test.sh
或者是:
for i in `cat slaves`;do scp -rp ./hadoop hadoop@$i:/home/hadoop; done
6,分佈式模式的安裝的整個過程:
配置域名解析,DNS或者/etc/hosts
建立hadoop運行賬號
java環境的搭建;
配置ssh免密碼登陸
下載並解壓hadoop安裝包
配置namenode,修改site文件
配置hadoop-env.sh文件
配置master和slaves文件
向各個節點複製hadoop文件夾
在namenode上格式化namenode
啓動hadoop
用JPS檢驗進程是否成功啓動