CDH (Cloudera's Distribution, including Apache Hadoop),是Cloudera 徹底開源的Hadoop 分佈式系統架構,爲了知足企業的需求而特別構建的系統。即一個開源的企業級分佈式存儲系統。html
CDH是Hadoop衆多分支中的一種,由Cloudera維護,基於穩定版本的Apache Hadoop構建,並集成了不少補丁,可直接用於生產環境。java
hadoop是一個開源項目,因此不少公司在這個基礎進行商業化,Cloudera對hadoop作了相應的封閉改變。Cloudera公司的發行版,咱們將該版本稱之爲CDH。node
Cloudera Manager則是爲了便於在集羣中進行Hadoop等大數據處理相關的服務安裝和監控管理的組件,對集羣中主機、Hadoop、Hive、Spark等服務的安裝配置管理作了極大簡化。mysql
/etc/cloudera-scm-agent/config.ini 是agent主配置文件 linux
vim /etc/cloudera-scm-agent/config.ini +3 web
server_host= 主節點IPsql
官方共給出了3中安裝方式:第一種方法必需要求全部機器都能連網,因爲最近各類國外的網站被牆的厲害,我嘗試了幾回各類超時錯誤,巨耽誤時間不說,一旦失敗,重裝很是痛苦。第二種方法下載不少包。第三種方法對系統侵入性最小,最大優勢可實現全離線安裝,並且重裝什麼的都很是方便。後期的集羣統一包升級也很是好。這也是我之因此選擇離線安裝的緣由。json
如下操做均用root用戶操做。vim
vi /etc/sysconfig/network
修改hostname:
NETWORKING=yes HOSTNAME=n1
經過service network restart
重啓網絡服務生效。
vi /etc/hosts
,修改ip與主機名的對應關係
192.168.1.106 n1 192.168.1.107 n2 192.168.1.108 n3
注意:這裏須要將每臺機器的ip及主機名對應關係都寫進去,本機的也要寫進去,不然啓動Agent的時候會提示hostname解析錯誤。
在主節點上執行
# ssh-keygen -t rsa
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@n2
測試:在主節點上ssh n2,正常狀況下,不須要密碼就能直接登錄進去了。
CentOS,自帶OpenJdk,不過運行CDH5須要使用Oracle的Jdk,須要Java 7的支持。
卸載自帶的OpenJdk,使用rpm -qa | grep java
查詢java相關的包,使用rpm -e --nodeps 包名
卸載之。
去Oracle的官網下載jdk的rpm安裝包,並使用rpm -ivh 包名
安裝之。
因爲是rpm包並不須要咱們來配置環境變量,咱們只須要配置一個全局的JAVA_HOME變量便可,執行命令:
echo "export JAVA_HOME=/usr/java/latest/" >> /etc/profile
source /etc/prfile
關閉防火牆:
service iptables stop (臨時關閉) chkconfig iptables off (重啓後生效)
關閉SELINUX :
setenforce 0 (臨時生效) 修改 /etc/selinux/config 下的 SELINUX=disabled (重啓後永久生效)
集羣中全部主機必須保持時間同步,若是時間相差較大會引發各類問題。 具體思路以下:
master節點做爲ntp服務器與外界對時中心同步時間,隨後對全部datanode節點提供時間同步服務。
全部datanode節點以master節點爲基礎同步時間。
全部節點安裝相關組件:yum install ntp
。完成後,配置開機啓動:chkconfig ntpd on
,檢查是否設置成功:chkconfig --list ntpd
其中2-5爲on狀態就表明成功。
本博客以前有過講解,在此再也不進行介紹。
mv /usr/bin/host /usr/bin/host.bak ; echo 0 > /proc/sys/vm/swappiness ; echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
並加入開機啓動:
cat >> /etc/rc.local <<EOF
echo 0 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
EOF
yum -y install mysql-server mysql-connector-java
service mysqld start
mysqladmin -u root password 'rootroot'
能夠根據須要預先建立如下數據庫:
--hive數據庫 create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci
--集羣監控數據庫 create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci
--hue數據庫 create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci
初始化CM5服務器端的mysql數據庫:
/usr/share/cmf/schema/scm_prepare_database.sh mysql scm -hlocalhost -uroot -prootroot --scm-host localhost scm scm scm
格式是: scm_prepare_database.sh 數據庫類型 數據庫 服務器 用戶名 密碼 --scm-host Cloudera_Manager_Server所在的機器 ....... scm scm scm後面三個scm未知
該初始化操做除了建立 CM server 所需的庫和表外,同時還會更新CM服務器的數據庫主配置文件 /etc/cloudera-scm-server/db.properties。
Cloudera Manager server安裝
一、下載Cloudera Manager 5.3.2所需的對應系統類型的rpm包
下載網址爲:
http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.3.2/RPMS/x86_64/
JDK官網下載地址:
http://www.oracle.com/technetwork/java/javase/overview/index.html
安裝rpm文件
將下載的rpm包直接放入文件夾/var/www/html/cm/ 下,爲下文搭建yum源時作好準備
mkdir -p /var/www/html/cm/
yum localinstall –-nogpgcheck *.rpm (注意:在使用mysql做爲數據庫時,則不須要下載和安裝 cloudera-manager-server-db-2-5.3.2-1.cm532.p0.209.el6.x86_64.rpm,此包爲postgresql數據庫的安裝包)
二、分別啓動agent服務端和cm服務端
/etc/init.d/cloudera-manager-agent start
/etc/init.d/cloudera-manager-server start
安裝完成後等待一段時間,在瀏覽器輸入localhost:7180 初次登陸 用戶名:admin 密碼:admin (此時測試能夠打開並順利登錄便可,先沒必要進行任何操做。)
#三、下載Cloudera Manager 5.3.2的主安裝文件並運行。(在用mysql數據庫時省略此步)
http://archive.cloudera.com/cm5/installer/5.3.2/cloudera-manager-installer.bin
也能夠直接從官網首頁上進行下載: http://www.cloudera.com/content/cloudera/en/downloads/cloudera_manager/cm-5-3-2.html
此bin文件便可以實如今線一鍵安裝CM和CDH,只是等待的時間有些長罷了
成功運行完畢該安裝程序後,會啓動cloudera-scm-server、cloudera-scm-agent、cloudera-scm-server-db這三個服務。
安裝完成後等待一段時間,在瀏覽器輸入localhost:7180 初次登陸 用戶名:admin 密碼:admin (此時測試能夠打開並順利登錄便可,先沒必要進行任何操做。)
Parcel的能夠從以下網址得到,下載.parcel文件和manifest.json文件:
http://archive.cloudera.com/cdh5/parcels/5.3.2/
由於這如今環境裏用的是Centos6.4,因此這裏選擇下載如下三個文件:
http://archive.cloudera.com/cdh5/parcels/5.3.2/CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel
http://archive.cloudera.com/cdh5/parcels/5.3.2/CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel.sha1
http://archive.cloudera.com/cdh5/parcels/5.3.2/manifest.json
把如下載的以上文件拷貝到/opt/cloudera/parcel-repo/文件夾下,並修改屬主。在安裝CDH5時會自動調用該parcel源
chown -R cloudera-scm:cloudera-scm /opt
而且把下載的.sha1文件重命名爲.sha ,命令以下:
mv CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel.sha1 CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel.sha
mv ./*.parcel /opt/cloudera/parcel-repo/
注意事項:
打開manifest.json文件查看CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel對應的編號,覈對與CDH-5.0.1-1.cdh5.0.1.p0.47-el6.parcel.sha文件內容是否相同,若是不一樣的話修改爲找到的編號!
如下是manifest.json中CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel對應的編號,這裏是:a1722a9c033d33ca4ed4558eaf6c10c803b06a16
{
"parcelName":"CDH-5.3.2-1.cdh5.3.2.p0.10-el6.parcel",
"components": [
{
"pkg_version": "0.7.0+cdh5.0.1+0",
"pkg_release": "1.cdh5.0.1.p0.30",
"name": "bigtop-tomcat",
"version": "6.0.37-cdh5.0.1"
},
{
"pkg_version": "0.9.0+cdh5.0.1+23",
"pkg_release":"1.cdh5.0.1.p0.25",
"name": "crunch",
"version": "0.9.0-cdh5.0.1"
},
............
{
"pkg_version": "0.9.0+cdh5.0.1+8",
"pkg_release": "1.cdh5.0.1.p0.25",
"name": "whirr",
"version": "0.9.0-cdh5.0.1"
},
{
"pkg_version": "3.4.5+cdh5.0.1+30",
"pkg_release":"1.cdh5.0.1.p0.31",
"name": "zookeeper",
"version": "3.4.5-cdh5.0.1"
}
],
"replaces": "IMPALA, SOLR, SPARK",
"hash":"a1722a9c033d33ca4ed4558eaf6c10c803b06a16"
}
datanode集羣主機比較多時,比較快捷省事的方法是在master節點搭建Yum軟件源用以安裝datanode節點的Agent(推薦)
一、yum install -y createrepo httpd ; mkdir -p /var/www/html/cm/
二、把Cloudera Manager 5.3.2所需的對應系統類型的源rpm包下載到 /var/www/html/cm/ (此步上文已經交待進行過)
這裏下載地址爲 http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.3.2/RPMS/x86_64/
三、cd /var/www/html/cm ; createrepo . (該createrepo命令執行的位置須對應 myrepo文件中的URL中的位置)
四、service httpd start
五、除在上文交待過的各節點的準備工做以外,還須要在各個datanode節點添加repo文件 vim /etc/yum.repos.d/my.repo
[myrepo]
name=My Cloudera Manager
baseurl=http://主節點IP/cm/
gpgcheck=0
cost=300
#cost權值默認爲1000,值越小優先級越高(適用於當同版本的包位於不一樣的repo中時,優先從本repo獲取)
須要注意的一點是,repo 的優先級跟 *.repo 的文件名稱無關
六、登陸CM管理頁面,一路next進行相關「添加新主機」的操做.
Cloudera Manager Server和Agent都啓動完之後,就能夠進行CDH5的安裝配置了。
這時能夠經過瀏覽器訪問主節點的7180端口測試一下了(因爲CM Server的啓動須要花點時間,這裏可能要等待一會才能訪問),默認的用戶名和密碼均爲admin:
能夠看到,免費版本的CM5已經沒有原來50個節點數量的限制了。
各個Agent節點正常啓動後,能夠在當前管理的主機列表中看到對應的節點。選擇要安裝的節點,點繼續。
接下來,出現如下包名,說明本地Parcel包配置無誤,直接點繼續就能夠了。
點擊,繼續,若是配置本地Parcel包無誤,那麼下圖中的已下載,應該是瞬間就完成了,而後就是耐心等待分配過程就好了,大約10多分鐘吧,取決於內網網速。
接下來是選擇安裝服務:
服務配置,通常狀況下保持默認就能夠了(Cloudera Manager會根據機器的配置自動進行配置,若是須要特殊調整,自行進行設置就能夠了):
接下來是數據庫的設置,檢查經過後就能夠進行下一步的操做了:
下面是集羣設置的審查頁面,我這裏都是保持默認配置的:
服務的安裝過程大約半小時內就能夠完成:
安裝完成後,就能夠進入集羣界面看一下集羣的當前情況了。
這裏可能會出現沒法發出查詢:對 Service Monitor 的請求超時
的錯誤提示,若是各個組件安裝沒有問題,通常是由於服務器比較卡致使的,過一會刷新一下頁面就行了:
注意紅色框內的部分,編輯主機模板時要勾選好具體的服務
這樣在添加新datanode主機節點時,可使用已建立的模板爲其指定角色
安裝時卡在正在獲取安裝鎖時,去agent節點 yum remove cloudera-manager-agent -y ,而後從新嘗試失敗的主機
參考文檔:
http://www.aboutyun.com/thread-9087-1-1.html
http://www.aboutyun.com/thread-9078-1-1.html