1. 程式人生 > >CDH5.12.1版本搭建記錄

CDH5.12.1版本搭建記錄

Cloudera簡介

為了構建一個以資料為驅動的業務場景,我們需要一個強大的管理工具去統一併安全地管理我們的業務資料,所以Cloudera做為一個強大的資料中心管理工具為此孕育而生。Cloudera不光提供了自己衍化重新封裝的市場領先並100%開源的商業化Apache Hadoop發行版本(CDH, Cloudera’s Distribution including Apache Hadoop)和相關的元件,其中包括了各類安全高效的企業級資料管理工具,如Hive, HBase,Oozie, Zookeeper等。 Hadoop是Apache(開源web伺服器軟體基金會)下的大資料開源專案,許多商業公司會在Apache Hadoop的基礎上重新開發成商業版本,Cloudera公司就是其中之一,最近在維護的兩個Hadoop版本分別是CDH4和CDH5。Hadoop使用分散式的思想儲存,計算和分析資料,它允許多個數據分析計算任務同時作用在同一個資料塊上並在叢集上進行分散式計算,以此來進行超大規模資料的處理。Hadoop是大資料處理框架的鼻祖之一,同時Cloudera公司的Hadoop版本CDH也是目前使用最廣泛的Hadoop商業版本。從廣泛意義來說,CDH是Cloudera釋出的一個自己封裝的商業版軟體發行包,裡面不僅包含了Cloudera的商業版Hadoop,同時CDH中也包含了各類常用的開源資料處理儲存框架,如Spark,Hive,HBase等。
Cloudera作為一個強大的商業版資料中心管理工具,提供了各種能夠快速穩定執行的資料計算框架,如Apache Spark;使用Apache Impala做為對HDFS,HBase的高效能SQL查詢引擎;也帶了Hive資料倉庫工具幫助使用者分析資料; 使用者也能用Cloudera管理安裝HBase分散式列式NoSQL資料庫;Cloudera還包含了原生的Hadoop搜尋引擎以及Cloudera Navigator Optimizer去對Hadoop上的計算任務進行一個視覺化的協調優化,提高執行效率;同時Cloudera中提供的各種元件能讓使用者在一個視覺化的UI介面中方便地管理,配置和監控Hadoop以及其它所有相關元件,並有一定的容錯容災處理;Cloudera作為一個廣泛使用的商業版資料中心管理工具更是對資料的安全決不妥協!
Cloudera Manager產品則是著重於幫助大家管理自己的CDH叢集,通過Cloudera Manager統一的UI介面來快速地自動配置和部署CDH和其相關元件,同時Cloudera Manager還提供了各種豐富的可自定義化的監視診斷和報告功能,叢集上統一的日誌管理功能,統一的叢集配置管理和實時配置變更功能,多租戶功能,高可用容災部署功能和自動恢復功能等, 方便企業統一管理和維護自己的資料中心。Cloudera Manager產品也是我們主要的安裝內容和介紹物件。它細分為免費的Express版本和功能完全並提供眾多增值服務的收費版本Enterprise。

Cloudera Manager架構

這裡寫圖片描述
由上面的結構圖可知,Cloudera Manager的核心是Cloudera Manager Server。CM Server集成了Admin Console Web Server,提供了統一的UI和API方便使用者和叢集上的CDH以及其它服務進行互動,並實施監控和診斷等;CM Server還負責安裝配置CDH和其相關的服務軟體,啟動停止服務,維護叢集中各個節點伺服器以及上面執行的程序。
CM Server主要由下面幾個元件組成:
Cloudera Manager Agent,安裝在叢集的所有節點上,負責啟動和殺死各個CM管理的服務程序,解壓和安裝CM管理的服務,自動配置,通過心跳機制監視叢集伺服器狀態(預設每15秒Agent傳送心跳給CM Server)等;
Management Service,主要是負責叢集中各種服務的監視,通知,報告等功能;
Database,內建資料庫或者使用使用者自定義的外部資料庫儲存CM的配置資訊和監控資訊;
Cloudera Repository;
Clients,web-based的UI介面方便使用者和CM Server進行互動,同時還提供了API供使用者自定義Cloudera Manager程式;
Agent,就是大資料叢集的叢集,由CM統一管理。

環境交代

安裝前環境準備

網路配置

修改主機名hostname,hostnamectl set-hostname cdh1. 修改/etc/hosts檔案裡面ip和主機名的對應關係.

設定SSH免密碼登入

每臺機器之間都要設定免祕鑰登陸
cdh1執行:
    ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa
    生成無密碼金鑰對
    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    然後將公鑰新增到其他節點的authorized_keys上:
    scp/.

ssh/iddsa.pubroot@cdh2:/tmp scp ~/.ssh/id_dsa.pub [email protected]:/tmp
    #然後分別登入這兩臺機器,將公鑰追加到公鑰中
    $ cat /opt/id_dsa.pub >> ~/.ssh/authorized_keys
cdh2和cdh3也要做相對於另外所有機器的免祕鑰登陸.

安裝JDK

本文采用 RPM 包安裝…….執行:
rpm -ivh jdk-7u67-linux-x64.rpm
每臺機器都要安裝JDK,測試叢集中安裝的版本是:1.7.0_67

安裝配置MySQL

CentOS7 已經不支援mysql,因為收費了你懂得,所以內部集成了mariadb,而安裝mysql的話會和mariadb的檔案衝突,所以需要先解除安裝掉mariadb,以下為解除安裝mariadb,安裝mysql的步驟。

強制解除安裝,因為沒有–nodeps

rpm -e –nodeps mariadb-libs-5.5.37-1.el7_0.x86_64

安裝mysql依賴

CentOS7的yum源中預設好像是沒有mysql的。為了解決這個問題,我們要先下載mysql的repo源。
下載mysql的repo源:
yum install vim libaio net-tools
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

安裝mysql-community-release-el7-5.noarch.rpm包
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安裝這個包後,會獲得兩個mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。

安裝mysql,建議安裝5.6版本,如果是5.7版本會對密碼校驗有比較高的要求,CM連線資料庫的時候會出現很多許可權的問題有待解決.
$ sudo yum install mysql-server
根據步驟安裝就可以了,不過安裝完成後,沒有密碼,需要重置密碼。

安裝mysql服務,service mysqld start啟動mysql服務,並設定開機啟動.

設定root授權訪問所有的資料庫: 連線mysql後:use mysql show tables; select host, user from user;
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123’ WITH GRANT OPTION;
delete from user where host != ‘%’;
flush privileges;
mysql -u root -p

檢視一下Linux系統有沒有安裝perl,沒有安裝的話,yum install perl,然後perl –v檢視版本,可以檢視到版本的話就證明安裝perl成功了.

每臺機器關閉防火牆和SelLinux

所有節點配置NTP服務

開始安裝

解壓安裝 (所有節點)

cloudera manager的目錄預設位置在/opt下,將包匯入/tmp/cm目錄並解壓:
tar zxvf cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz -C /opt

建立cloudera-scm使用者(所有節點):
useradd –system –home=/opt/cm-5.12.1/run/cloudera-scm-server/ –no-create-home –shell=/bin/false –comment “Cloudera SCM User” cloudera-scm

為Cloudera Manager 5建立資料庫 並初始化(主節點):
先將JDBC驅動 mysql-connector-java-5.1.43-bin.jar,放到/opt/cm-5.12.1/share/cmf/lib/目錄中,將mysql-connector-java-5.1.43-bin.jar 改名為mysql-connector-java.jar 放到/usr/share/java/中。

初始化:
進入mysql執行:grant all on . to ‘temp’@’%’ identified by ‘temp’ with grant option;
flush privileges;
exit;

新增scm使用者:
/opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123 –scm-host localhost scm scm scm
格式:資料庫型別、資料庫、資料庫伺服器、使用者名稱、密碼、cm server伺服器

修改agent配置檔案(所有節點)

修改/opt/cm-5.12.1/etc/cloudera-scm-agent/config.ini中的server_host為主節點的主機名。

準備Parcels,用以安裝CDH5

將CHD5相關的Parcel包放到Server點的/opt/cloudera/parcel-repo/目錄中。相關的檔案如下:
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1
manifest.json
然後需將CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1重新命名為CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha

啟動指令碼

通過/opt/cm-5.12.1/etc/init.d/cloudera-scm-server start啟動服務端。
通過/opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start啟動Agent服務。
當server端和agent端的啟動命名執行後都成功提示OK後,在目錄/opt/cm-5.12.1/log/cloudera-scm-server下檢視日誌檔案cloudera-scm-server.log,如果日誌檔案有列印Started Jetty Server,則說明Cloudera Manager Server真正啟動成功了.
停止服務是stop,重啟服務是restart。

Cloudera Manager Server和Agent都啟動以後,就可以進行CDH5的安裝配置了。
這時可以通過瀏覽器訪問主節點的7180埠測試一下了(由於CM Server的啟動需要花點時間,這裡可能要等待一會才能訪問),預設的使用者名稱和密碼均為admin。

遇到的問題

這裡寫圖片描述
這時hue是連不上的,會報錯:Unexpected error. Unable to verify database connection.
這是因為我是Centos最小安裝,缺了個東西:yum install -y python-lxml
這個坑了我很久,還是在http://www.cnblogs.com/jasondan/p/4011153.html下面的回覆裡找到的解決方案。感謝那位小夥伴.

附解除安裝文件