系統要求
系統:CentOS 6.5
Cloudera:CM5.2.0 + CDH 5.2.0
內存:主節(jié)點4G內存以上虚吟,其他節(jié)點需要2G以上內存
Hadoop版本選擇
目前Hadoop比較流行的主要有2個版本对蒲,Apache和Cloudera版本冠句。
Apache Hadoop:維護人員比較多,更新頻率比較快阱洪,但是穩(wěn)定性比較差扰藕。
Cloudera Hadoop(CDH):CDH:Cloudera公司的發(fā)行版本,基于ApacheHadoop的二次開發(fā)嘴纺,優(yōu)化了組件兼容和交互接口、簡化安裝配置叙甸、增加Cloudera兼容特性颖医。
準備工作
以下步驟要在所有節(jié)點上執(zhí)行
- 修改hostname
vi /etc/sysconfig/network
- 關閉SELinux
查看SELinux狀態(tài)
getenforce
若SELinux沒有關閉位衩,按照下述方式關閉
vi /etc/selinux/config
修改SELinux=disabled裆蒸。重啟生效,可以等后面都設置完了重啟主機
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
- 關閉防火墻
sudo service iptables stop
sudo chkconfig iptables off
sudo chkconfig iptables --list
- 網絡配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
設置靜態(tài)ip糖驴,以及指定ip地址
DEVICE="eth0"
BOOTPROTO="static"
IPADDR=192.168.1.110
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
DNS1=8.8.8.8
DNS2=8.8.4.4
GATEWAY=192.168.1.1
- 修改hosts文件
把所有要添加到集群中的主機都要加入hosts中僚祷,格式如下:
127.0.0.1 localhost
# CDH Cluster
192.168.1.110 master
192.168.1.111 slave1
192.168.1.112 slave2
以上步驟執(zhí)行完畢后,重啟主機
reboot
重啟后再次檢查下以上幾點贮缕,確保環(huán)境配置正確辙谜。
提前下載(本教程中,CM和CDH版本均為5.2.0)
- 下載cloudera-manager.repo
修改baseurl中cm版本為實際版本感昼,本例中改成5.2.0
[cloudera-manager]
# Packages for Cloudera Manager, Version 5, on RedHat or CentOS 6 x86_64
name=Cloudera Manager
baseurl=https://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.2.0/
gpgkey =https://archive.cloudera.com/cm5/redhat/6/x86_64/cm/RPM-GPG-KEY-cloudera
gpgcheck = 1
- 下載CM installer
- 下載CM rpms装哆,目錄下全部下載出來
- 下載CDH Parcel文件,只需要下載圖中所示的3個文件
這里注意下定嗓,將.sha1文件后綴更改為.sha蜕琴,同時把內容只保留hash碼部分。(5.2.0版本sha文件內容本身就只包含hash碼宵溅,不需要修改凌简,其他版本請自行查看!)
Cloudera Manager安裝
以下步驟要在所有節(jié)點上執(zhí)行:
- 將cloudera-manager.repo文件拷貝到所有節(jié)點的/etc/yum.repos.d/文件夾下
- 驗證repo文件是否起效
yum list|grep cloudera
如果列出的不是你安裝的版本恃逻,執(zhí)行下面命令重試
yum clean all
yum list | grep cloudera - 將之前下載的rpms文件拷貝到所有節(jié)點下(任意目錄)
切換到rpms目錄下雏搂,執(zhí)行
yum -y install *.rpm - 將之前下載的Parcel那3個文件拷貝到/opt/cloudera/parcel-repo目錄下(如果沒有該目錄,請自行創(chuàng)建)
至此寇损,/opt/cloudera/parcel-repo下面有三個文件: CDH-5.2.0-1.cdh5.2.0.p0.36-el6.parcel
mainfest.json
CDH-5.2.0-1.cdh5.2.0.p0.36-el6.parcel.sha
以下步驟請只在主節(jié)點上執(zhí)行:
- 將下載好的bin文件拷貝到主節(jié)點任意目錄下
- 進入該目錄凸郑,給bin文件賦予可執(zhí)行權限
sudo chmod +x ./cloudera-manager-installer.bin - 安裝CM
./cloudera-manager-installer.bin
接下來全部next和yes就行了,因為所需要的rpm包已經提前下載下來了矛市,這個過程會進行的非耻搅ぃ快。
CDH集群安裝
- CM安裝成功后瀏覽器輸入
http://ip:7180
,ip是CM安裝的主機ip或者主機名。顯示如下界面憨愉,用戶名和密碼都輸入admin烦绳,進入web管理界面。
如果打不開改網頁配紫,請耐心等待會径密。這個服務啟動是需要一定時間的。
- 選擇部署的版本躺孝,這里我們選擇免費版的就可以了享扔。
- 點擊繼續(xù)
- 選擇添加的主機。輸入主機ip或者主機名植袍,點擊搜索惧眠。
這里如果選擇一系列主機可以輸入如下的內容:
192.168.1.[101-105]
slave[1-3].com.cn
勾選要添加的主機,繼續(xù)下一步操作于个。
- 選擇存儲庫
這里我們采用Parcel離線安裝的方式氛魁,安裝簡便、完全離線而且更便于集群的管理厅篓。
選擇我們之前上傳到服務器的CDH5.2.0版本秀存,其他全選無,下一步。
-
JDK安裝選項
這里之前已經安裝過了,所以不需要勾選错览,直接繼續(xù)。
提供SSH登陸憑據
由于CDH會自動管理所有主機間的SSH通訊澳盐,所以我們之前并沒有手動配置各個節(jié)點間的SSH免密登錄。在這里統一設置就行了令宿,設置好密碼點繼續(xù)叼耙。
- 集群安裝
因為這里所需要的軟件包我們之前都已經安裝過了,這一步會很快結束掀淘。
- 安裝Parcel到所有主機上
因為Parcel文件已經提前下載好了旬蟋,第一個進度條會直接顯示已下載,然后開始分配革娄。這個過程實際上就是將Parcel內的軟件解壓縮安裝到各個主機上的過程倾贰。耐心等待,時間會比較長拦惋,我安裝2臺主機大概是需要20分鐘時間匆浙。
安裝完畢后點繼續(xù)
- 主機檢查
檢查就可以了,建議不要跳過厕妖。檢查結果如下:
下面這2個都是誤報首尼,不需要理會。
- 安裝服務
CDH5提供了你可能需要的各種服務,需要什么啟動什么就行了软能。這里我選擇了自定義迎捺,添加HBase,HDFS查排,MapReduce和ZooKeeper凳枝,這里大家按照自己的需求選。
- 角色分配
分配各個節(jié)點的角色
- 數據庫設置
CDH默認內嵌了一個數據庫跋核,如果你需要MySQL或者Oracle請選擇使用自定義數據庫岖瑰,點擊測試連接,成功后點繼續(xù)砂代。
- 審核更改
這里全部默認就可以了蹋订,直接繼續(xù)。
- 安裝完成刻伊,初始化
到這里集群已經安裝部署完成了露戒,CDH會自動對你選擇的服務進行初始化設置,你也可以稍后自行開啟娃圆。
初始化完成后玫锋,將進入主頁面
因為我們只安裝了2臺主機蛾茉,而HDFS和ZooKeeper建議至少3個節(jié)點讼呢,所以頁面上有一些警告,這些都不影響谦炬。到此悦屏,CDH集群部署完成。
問題匯總
1键思、安裝過程中遇到以下提示
Detecting Cloudera Manager Server...
Detecting Cloudera Manager Server...
BEGIN host -t PTR 192.168.1.198
198.1.168.192.in-addr.arpa domain name pointer localhost.
END (0)
using localhost as scm server hostname
BEGIN which python
/usr/bin/python
END (0)
BEGIN python -c 'import socket; import sys; s = socket.socket(socket.AF_INET); s.settimeout(5.0); s.connect((sys.argv[1], int(sys.argv[2]))); s.close();' localhost 7182
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<string>", line 1, in connect
socket.error: [Errno 111] Connection refused
END (1)
could not contact scm server at localhost:7182, giving up
waiting for rollback request
在失敗的主機上础爬,終端執(zhí)行
mv /usr/bin/host /usr/bin/host.bak
然后重試。
2吼鳞、安裝過程一直卡在"正在獲取安裝鎖"
在卡住的主機上看蚜,刪除/tmp文件夾中的所有scm_prepare_node.開頭的文件,清空yum緩存赔桌,然后重啟主機供炎。
cd /tmp
rm -rf scm_prepare_node.*
yum clean all
reboot
3、安裝完畢后NameNode格式化失敗疾党,報一下錯誤
IncorrectVersionException: Unexpected version of storage directory /data/dfs
刪除NameNode節(jié)點的/data/dfs文件夾音诫,重新添加主機。
4雪位、如何更改節(jié)點ip
重新設置每臺主機的hosts文件竭钝,完成后進入主機界面,點擊重新運行升級向導,再走一遍之前的流程即可香罐。