0724-6.2.0-CM接管rpm方式安裝的無CM的CDH集群

  • 2019 年 11 月 6 日
  • 筆記

文檔編寫目的

在之前的文檔中介紹了如何用CM接管無CM以rpm方式安裝的CDH5.10.0,本文檔同樣會介紹如何使用Cloudera Manager來接管一個無Cloudera Manager管理的CDH集群,只不過這次的版本是CDH6.2.0。

測試環境:

  • CM和CDH版本為6.2.0
  • 作業系統版本為RedHat7.2
  • 使用root用戶進行操作
  • 集群一共三個節點

CDH集群以rpm方式已經安裝的組件如下:

  • Zookeeper
  • HDFS
  • Yarn
  • Spark
  • Hive
  • Oozie
  • Impala
  • Hue

前置準備

在安裝前需要做一些前置準備,如下:

1.修改hosts文件以及hostname

2.禁用SELinux

3.關閉防火牆

4.設置交換分區swappiness為1

5.關閉透明大頁面

6.ntp時鐘同步

7.在MySQL元資料庫中創建好Cloudera Manager所需的資料庫和用戶,因為其他服務已經以rpm的方式安裝,資料庫和用戶也已經創建,所以此處只創建Cloudera Manager相關的庫和用戶

create database cm default character set utf8;  CREATE USER 'cm'@'%' IDENTIFIED BY 'password';  GRANT ALL PRIVILEGES ON cm.* TO 'cm'@'%';  FLUSH PRIVILEGES;  create database am default character set utf8;  CREATE USER 'am'@'%' IDENTIFIED BY 'password';  GRANT ALL PRIVILEGES ON am.* TO 'am'@'%';  FLUSH PRIVILEGES;  create database rm default character set utf8;  CREATE USER 'rm'@'%' IDENTIFIED BY 'password';  GRANT ALL PRIVILEGES ON rm.* TO 'rm'@'%';  FLUSH PRIVILEGES;  

8.在CM節點安裝httpd服務並啟動

9.下載好CDH6.2.0的parcel包以及CM6.2.0的rpm包

10.準備好cm的yum源

11.為rpm方式安裝的服務設置chkconfig off

Where

Command

NameNode

$ sudo chkconfig hadoop-hdfs-namenode off

ResourceManager

$ sudo chkconfig hadoop-yarn-resourcemanager off

Secondary NameNode (if used)

$ sudo chkconfig hadoop-hdfs-secondarynamenode off

NodeManager

$ sudo chkconfig hadoop-yarn-nodemanager off

DataNode

$ sudo chkconfig hadoop-hdfs-datanode off

MapReduce JobHistory node

$ sudo chkconfig hadoop-mapreduce-historyserver off

Hue server

$ sudo chkconfig hue off

Oozie server

$ sudo chkconfig oozie off

Hive Metastore server

$ sudo chkconfig hive-metastore off

HiveServer2

$ sudo chkconfig hive-server2 off

Zookeeper server

$ sudo chkconfig zookeeper-server off

Spark

$ sudo chkconfig spark-history-server off

Impala server

$ sudo chkconfig impala-server off

Impala Catalog

$ sudo chkconfig impala-catalog off

Impala State Store

$ sudo chkconfig impala-state-store off

12.備份配置文件

13.在安裝CM前,在HDFS和Hive中準備一些數據,用作接管完成後進行對比

  • 上傳三個文件到HDFS上用作測試數據
  • 在Hive中創建兩個庫,每個庫創建一張表,並分別向兩張表中導入數據

創建庫c6_test1、c6_test2

在c6_test1中創建表web_returns

向web_returns導入數據

查看web_returns中的數據

在c6_test2中創建分區表test_partition

向表test_partition中導入數據

查看test_partition中的數據

安裝Cloudera Manager

1.安裝cloudera-manager-server

yum -y install cloudera-manager-server

2.為CM初始化資料庫

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cm cm password  

3.啟動Cloudera Manager Server

systemctl start cloudera-scm-server  

4.訪問Cloudera Manager UI,用戶名密碼均為admin

5.歡迎頁面

6.同意許可條款

7.選擇60天試用版

8.安裝歡迎頁

9.輸入集群名稱

10.添加三個節點的主機

11.選擇存儲庫

12.安裝jdk

13.輸入伺服器的密碼

14.安裝cloudera-scm-agent

15.分發parcel

16.檢查主機正確性

出現的警告是由於使用rpm的方式安裝了CDH集群,並不影響

17.安裝服務頁面,在此處不選擇添加任何服務,在後面再進行服務的添加

18.點擊左上角,回到CM主頁

19.點擊右上角的「添加 Cloudera Management Service」,輸入創建的資料庫資訊

20.啟動Cloudera Management Service

21.Cloudera Management Service添加成功

服務狀態檢查

1.執行HDFS fsck來檢查HDFS狀態,確保HDFS服務是正常的

  • Under-replicated blocks應該為0
  • Mis-replicated blocks應該為0
  • Corrupt blocks應該為0
sudo -u hdfs hadoop fsck /  

2.運行MR示常式序以及Spark來確保Yarn和Spark服務正常

運行MR示常式序

訪問Spark服務

3.列出所有節點rpm安裝的CDH服務的角色

  • cdh1.hadoop.com ZooKeeper Server、NameNode、SecondaryNameNode、DataNode、JobHistory Server、ResourceManager、NodeManager、History Server、Hive Metastore Server、HiveServer2、Oozie Server、Impala Catalog Server、Impala StateStore、Impala Daemon、Hue Server
  • cdh2.hadoop.com、cdh3.hadoop.com ZooKeeper Server、DataNode、NodeManager、HiveServer2、Impala Daemon

停止所有服務並進行備份

1.進入HDFS的安全模式

sudo -u hdfs hadoop dfsadmin -safemode enter  

2.保存HDFS名稱空間

sudo -u hdfs hadoop dfsadmin -saveNamespace  

3.查看HDFS當前的目錄,記錄HDFS的當前的數據資訊

hadoop fs -ls /  hadoop fs -ls /user  
sudo -u hdfs hadoop fsck /  

Total Size

2818152345 B

Total dirs

63

Total files

1766

Total blocks

1775

4.停止HDFS服務

5.停止Zookeeper服務

6.在停止HDFS服務後確保in_use.lock文件已經被移除

7.備份HDFS的數據

8.備份CDH服務的元資料庫

在Cloudera Manager上添加CDH服務

逐個添加所有服務,需要注意的是服務之間有依賴關係,推薦按照下列順序進行服務的添加:

1)Zookeeper

2)HDFS

3)Yarn

4)Spark

5)Hive

6)Impala

7)Oozie

8)Hue

一般來說添加服務的步驟幾乎是相同的:

1)在Cloudera Manager上添加服務

2)角色的分配與之前保持一致

3)應用所有配置文件

4)啟動服務

6.1 添加Zookeeper

1.從CM添加Zookeeper服務

2.選擇Zookeeper服務

3.選擇ZK Server,與之前安裝時一致

4.設置與之前相同的目錄

5.不點擊繼續,直接點擊左上角回到CM主頁,進入Zookeeper的配置

6.應用之前的配置,保持與之前一致

Server ID保持與之前安裝時設置的一致

修改/var/lib/zookeeper/version-2的屬主為zookeeper

設置堆棧大小

保證設置的ZK log目錄和Heap Dump目錄空間足夠,如果默認的目錄空間不夠,則進行修改

7.啟動Zookeeper

6.2 添加HDFS

1.從CM上添加HDFS

2.選擇角色,保持與之前的安裝一致

3.保持目錄與之前一致

4.刪除/data0/dfs/nn目錄下NN的元數據,啟動HDFS

5.將之前備份的NameNode元數據拷貝回/data0/dfs/nn目錄

6.驗證HDFS的數據與之前是否一致

列出HDFS的目錄,與之前一致,能夠看到最開始上傳用作測試的三個文件

使用fsck命令查看,數據與之前一致

6.3 添加Yarn

1.在CM上添加Yarn服務

2.選擇角色,保持與安裝的一致

3.設置Yarn的目錄與之前安裝的一致

4.啟動Yarn

5.Yarn啟動成功

6.運行MR示常式序進行測試,示常式序運行成功

6.4 添加Spark

1.從CM上添加Spark

2.保持角色與之前一致,Gateway選擇所有節點

3.啟動Spark

4.Spark安裝成功

重啟相關的服務

重新部署客戶端配置

重啟成功

6.5 添加Hive

1.在CM上添加Hive服務

2.為Hive選擇依賴關係

3.選擇角色,與之前的安裝保持一致

4.設置資料庫

5.Hive的目錄,確保與之前安裝配置的一致

6.啟動Hive

7.Hive安裝成功

8.驗證Hive的數據與之前是否一致

查看庫,可以看到之前創建的兩個庫成c6_test1、c6_test2

查看庫c6_test1,可以看到之前創建的表web_returns

查看錶web_returns的數據,與之前一致

查看庫c6_test2,可以看到之前創建的表test_partition

查看錶test_partition的數據,與之前一致

6.6 添加Impala

1.在CM上添加Impala

2.為Impala選擇角色,與之前的安裝保持一致

3.為Impala指定目錄

4.創建Impala用戶目錄

5.Impala安裝成功

6.啟動Impala

7.測試Impala使用

6.7 添加Oozie

1.在CM上添加Oozie服務

2.為Oozie服務選擇依賴關係

3.選擇角色,保持與之前一致

4.設置資料庫

5.指定Oozie共享庫目錄和數據目錄,與之前的安裝保持一致

6.啟動Oozie服務

7.Oozie服務安裝成功

6.8 添加Hue

1.在CM上添加Hue

2.為Hue選擇依賴關係

3.選擇角色,與之前安裝時一致

4.設置資料庫

5.啟動Hue

6.Hue服務添加成功

7.訪問Hue

8.測試Hue的使用

使用Hive

使用Impala

至此CM接管完成,CM主頁如下圖所示:

總結

1.在接管的兩個文檔中,針對CDH5.10.0和CDH6.2.0兩個版本做了接管,在這個過程中,思路與步驟都是一致的,只是可能其中有些細節的地方有區別,大體上接管的步驟是沒有區別的。

2.在做接管時,需要對配置文件以及元數據等做備份,在接管過程中可能會需要使用,以及出現錯誤可以通過備份的數據進行還原。

3.使用CM接管原集群後,能夠通過CM更好的監控集群服務的狀態以及使用情況,方便更好的對集群進行管理。