一 。CDH簡介html
CDH (Cloudera’s Distribution, including Apache Hadoop),是Hadoop衆多分支中的一種,由Cloudera維護,基於穩定版本的Apache Hadoop構建,並集成了不少補丁,可直接用於生產環境。
Cloudera Manager則是爲了便於在集羣中進行Hadoop等大數據處理相關的服務安裝和監控管理的組件,對集羣中主機、Hadoop、Hive、Spark等服務的安裝配置管理作了極大簡化
java
具體 關於Cloudera Manager(簡稱:cm)的用法 參考 (https://www.cloudera.com/documentation/manager/5-1-x/Cloudera-Manager-Introduction/cm5i_primer.html)node
》》相關術語mysql
如下圖示表示相關術語的關係 具體描述參考:
linux
》》CDH組件web
CDH管理着跨組件版本,並提供一個穩定的平臺供許多包一塊兒運行:
HDFS—自我修復的分佈式文件系統
MapReduce—強大的並行數據處理框架
Hadoop Common—一組支持Hadoop子項目的工具
HBase—支持隨機讀/寫訪問的Hadoop數據庫
Hive—在大數據集合上的類SQL查詢和表
Pig—數據流語言和編譯器
Oozie—針對互相依賴的Hadoop做業的工做流
Sqoop—利用集成到Hadoop的數據庫和數據倉庫
Flume—高可靠、可配置的數據流集合
Zookeeper—面向分佈式應用的協調服務
Hue—可視化Hadoop應用的用戶接口框架和SDKsql
》》Cloudera Manager架構
shell
Cloudera管理器的核心是Cloudera管理器服務器。服務器承載管理控制檯Web服務器和應用程序邏輯。它負責安裝軟件、配置、啓動和中止服務,以及管理運行服務的集羣。
數據庫
Cloudera管理器服務器與其餘幾個組件一塊兒工做:
json
二 。CDH安裝
Cloudera管理器能夠幫助咱們安裝內嵌的hadoop套件 須要有個一個管理服務器 和若干個agent代理服務器 多個代理服務器能夠位於同一個rack(host分組)中
》》系統環境準備
192.168.58.133 cdh1 cmserver mysql-server 192.168.58.144 cdh2 cmagent 192.168.58.145 cdh3 cmagent 192.168.58.132 chd4 cmagent系統使用 centos7 (cat /etc/centos-release)
[root@cdh1 ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime [root@cdh1 ~]# ntpdate time1.aliyun.com關閉防火牆
[root@bogon ~]# systemctl disable firewalld [root@bogon ~]# iptables --flush修改主機名
192.168.58.133 執行 hostnamectl set-hostname cdh1 192.168.58.144 執行 hostnamectl set-hostname cdh2 192.168.58.145 執行 hostnamectl set-hostname cdh3 192.168.58.132 執行 hostnamectl set-hostname cdh4 logout從新登陸分別查看是否修改爲功
[root@cdh3 ~]# more /etc/hostname cdh3修改133 etc/hosts 追加內容
192.168.58.133 cdh1 192.168.58.144 cdh2 192.168.58.145 cdh3 192.168.58.132 cdh4發送到其餘機器
scp /etc/hosts root@192.168.58.144:/etc/ scp /etc/hosts root@192.168.58.145:/etc/ scp /etc/hosts root@192.168.58.132:/etc/cm安裝要求server服務器能免密登陸其餘agent 133上生成密鑰對:
ssh-keygen -t rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh localhost 測試不須要輸入密碼公鑰拷貝到144 145添加到認證文件
scp ~/.ssh/id_rsa.pub root@cdh2:~/.ssh/ scp ~/.ssh/id_rsa.pub root@cdh3:~/.ssh/ scp ~/.ssh/id_rsa.pub root@cdh4:~/.ssh/ 兩臺機器執行 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys [root@cdh1 ~]# ssh cdh2 Last login: Fri Apr 20 09:50:00 2018 from 192.168.58.1 [root@cdh2 ~]# exit logout Connection to cdh2 closed. [root@cdh1 ~]# ssh cdh3 Last login: Thu Apr 19 18:50:19 2018 from 192.168.58.1 [root@cdh3 ~]# exit logout Connection to cdh3 closed. 免密登陸成功登陸cdh2和cdh3》》離線下載依賴工具準備(yum安裝的mysql就沒有列出)
》》安裝過程(過程參考https://www.cloudera.com/documentation/manager/5-1-x/Cloudera-Manager-Installation-Guide/cm5ig_install_path_C.html)
1 》安裝jdk
上傳到linux後安裝
rpm -ivh jdk-7u79-linux-x64.rpm
2》安裝mysql服務器
Cloudera管理器使用數據庫存儲有關Cloudera管理器配置(loudera Manager Server, Cloudera Management Service, 和 Hive的元數據)的信息,以及系統或任務進度等信息。爲了方便快速完成簡單安裝,Cloudera管理器能夠安裝和配置嵌入式PostgreSQL數據庫 這裏不使用內嵌的PostgreSQL 而使用外部數據庫mysql(mariadb) 參考
(https://www.cloudera.com/documentation/manager/5-1-x/Cloudera-Manager-Installation-Guide/cm5ig_installing_configuring_dbs.html#cmig_topic_5)
Preparing an Cloudera Manager Server External Database章節
133機器上安裝 centos7不能直接使用yum安裝 mysql-server 我這裏使用mariadb替代
yum -y install epel-release.noarch mariadb-server mariadb啓動並登錄測試
service mariadb start && mysql -uroot -prootcm5須要經過java遠程鏈接mysql因此須要將java的驅動包放在某個特定的目錄(/usr/share/java)名字必須是mysql-connector-java.jar
mkdir -p /usr/share/java/ cp /soft/mysql-connector-java-5.1.26-bin.jar /usr/share/java/mysql-connector-java.jar3》安裝cm5
mkdir -p /opt/cloudera-manager tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
建立cm運行的用戶(home目錄cm版本目錄對應上)全部3臺主機都要建立
useradd --system --home=/opt/cloudera-manager/cm-5.5.6/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm其餘兩臺機器拷貝 cm 執行如下命令
scp -r /opt/cloudera-manager root@cdh2:/opt/cloudera-manager scp -r /opt/cloudera-manager root@cdh3:/opt/cloudera-manager修改兩臺agent機器(144和145) 配置server
vi /opt/cloudera-manager/cloudera-manager/cm-5.5.6/etc/cloudera-scm-agent/config.ini修改server_host爲 cdh1或者ip地址:192.168.58.133 server_port使用默認7182【沒有修改過服務器的】
/opt/cloudera-manager/cm-5.5.6/share/cmf/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm scm scm成功結果:
root@cdh1 cm-5.5.6]# /opt/cloudera-manager/cm-5.5.6/share/cmf/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm scm scm JAVA_HOME=/usr/java/jdk1.7.0_79 Verifying that we can write to /opt/cloudera-manager/cm-5.5.6/etc/cloudera-scm-server Creating SCM configuration file in /opt/cloudera-manager/cm-5.5.6/etc/cloudera-scm-server Executing: /usr/java/jdk1.7.0_79/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cloudera-manager/cm-5.5.6/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cloudera-manager/cm-5.5.6/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db. [ main] DbCommandExecutor INFO Successfully connected to database. All done, your SCM database is configured correctly!查看 /opt/cloudera-manager/cm-5.5.6/etc/cloudera-scm-server目錄/db.properties
# Auto-generated by scm_prepare_database.sh on Fri Apr 20 12:24:11 CST 2018 # # For information describing how to configure the Cloudera Manager Server # to connect to databases, see the "Cloudera Manager Installation Guide." # com.cloudera.cmf.db.type=mysql com.cloudera.cmf.db.host=localhost com.cloudera.cmf.db.name=scm com.cloudera.cmf.db.user=scm com.cloudera.cmf.db.password=scm動將數據庫信息寫入了該配置文件 mysql下建立了一個數據庫scm 建立了一個用戶scm 密碼scm 服務器是localhost
CDH-5.5.6-1.cdh5.5.6.p0.2-el7.parcel CDH-5.5.6-1.cdh5.5.6.p0.2-el7.parcel.sha1 manifest.json將三個文件 放入/opt/cloudera/parcel-repo目錄
mkdir -p /opt/cloudera/parcel-repo chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo啓動server
/opt/cloudera-manager/cm-5.5.6/etc/init.d/cloudera-scm-server start [root@cdh1 init.d]# netstat -nlp | grep java tcp 0 0 0.0.0.0:7180 0.0.0.0:* LISTEN 5390/java tcp 0 0 0.0.0.0:7182 0.0.0.0:* LISTEN 5390/java7180是web管理界面
/opt/cloudera-manager/cm-5.5.6/etc/init.d/cloudera-scm-agent start瀏覽器訪問 http://192.168.58.133:7180/ 輸入用戶名密碼都是admin 注意 瀏覽器語言設置爲簡體中文 顯示中文版
三 。CDH刪除重裝
1> 刪除Agent節點的UUID
# rm -rf /opt/cloudera-manager/cm-5.5.6/lib/cloudera-scm-agent/*
2> 清空主節點CM數據庫進入主節點的Mysql數據庫,而後drop database scm;3> 刪除Agent節點namenode和datanode節點信息
# rm -rf /opt/dfs/nn/* # rm -rf /opt/dfs/dn/*4> 在主節點上從新初始化CM數據庫
/opt/cloudera-manager/cm-5.5.6/share/cmf/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm scm scm5> 執行啓動腳本
/opt/cloudera-manager/cm-5.5.6/etc/init.d/cloudera-scm-server start啓動agent
/opt/cloudera-manager/cm-5.5.6/etc/init.d/cloudera-scm-agent start