【乾貨】離線安裝Cloudera Manager 5和CDH5(最新版5.13.0)詳細過程

—— 原文發佈於本人的微信公衆號「大數據與人工智能Lab」(BigdataAILab),歡迎關注。html

 

Cloudera是Hadoop生態系統中,規模最大、知名度最高的公司。Cloudera對Hadoop進行了封裝,簡化安裝過程,使用Cloudera能夠快速、簡單地部署集羣,安裝所須要的組件,並能夠實現對集羣的管理和監控。java

Cloudera Manager主要提供了四大功能:(1)對集羣進行管理,如添加、刪除節點等操做;(2)監控集羣的健康狀況,對各類指標和系統運行狀況進行全面監控;(3)對集羣出現的問題進行診斷,並給出建議解決方案;(4)對Hadoop的多組件進行整合、集成。mysql

CDH (Cloudera's Distribution, including Apache Hadoop),是由Cloudera維護的Hadoop分支,基於穩定版本的Apache Hadoop構建的,集成了不少補丁,可直接用於生產環境。linux

更多詳細的介紹,請見 Cloudera 官網sql

 

在公司內部機房,因爲受網絡訪問控制的緣由,服務器沒法直接鏈接互聯網在線安裝Cloudera Manager 5和CDH5。下面介紹本地離線安裝Cloudera Manager 5和CDH5的過程shell

1、集羣概況數據庫

節點 IP 主機名 操做系統
管理節點 172.17.0.1 hd1.hdsite CentOS 6.9 x86_64
工做節點 172.17.0.2 hd2.hdsite CentOS 6.9 x86_64
工做節點 172.17.0.3 hd3.hdsite CentOS 6.9 x86_64
工做節點 172.17.0.4 hd4.hdsite CentOS 6.9 x86_64

2、基礎環境配置json

一、配置主機IP映射關係瀏覽器

vi /etc/hosts

172.17.0.1	hd1.hdsite	hd1
172.17.0.2  hd2.hdsite	hd2
172.17.0.3  hd3.hdsite	hd3
172.17.0.4	hd4.hdsite	hd4

二、關閉防火牆bash

service iptables stop
chkconfig iptables off

三、關閉SELinux,重啓

vi /etc/selinux/config

SELINUX=disabled  # 將SELINUX=enforcing改成SELINUX=disabled

reboot

四、下載安裝JDK 1.7,注意CDH5.13.0版本在官網中建議使用JDK1.7,未充分測試過JDK1.8及以上的版本

mkdir /usr/java
cd /usr/java
tar -zxvf jdk-7u75-linux-x64.gz

#在 /etc/profile 中配置環境變量
vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.7.0_75
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

五、安裝mysql數據庫

(1)到MySQL官網打開MySQL 社區版下載頁面,而後下載如下的MySQL rpm安裝包

(2)MySQL官網有介紹MySQL rpm包的安裝方法,通常須要安裝 mysql-community-server, mysql-community-client, mysql-community-libs, mysql-community-common, and mysql-community-libs-compat 這些包。在MySQL服務端至少安裝 mysql-community-{server,client,common,libs}-* 軟件 包,在MySQL客戶端至少安裝 mysql-community-{client,common,libs}-* 軟件包

在安裝以前,先查看一下,系統以前是否有安裝過mysql相關的包,若是有,則卸載掉,輸入指令查詢

rpm -qa|grep mysql

接下來,按順序安裝mysql 的 rpm包,因爲這幾個rpm包有依賴關係,所以,安裝時按如下順序逐個安裝

rpm -ivh mysql-community-common-5.7.18-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.18-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.18-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.18-1.el6.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.18-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.18-1.el6.x86_64.rpm

(3)所有安裝完成後,則使用 service mysqld start 啓動mysql服務,首次啓動時,mysql 數據庫還會進行初始化,並生成root的初始密碼

[root@31d48048cb1e ahadoop]# service mysqld start
Initializing MySQL database:                               [  OK  ]
Installing validate password plugin:                       [  OK  ]
Starting mysqld:                                           [  OK  ]

(4)在日誌裏面獲取root初始密碼,使用如下命令

[root@31d48048cb1e ahadoop]# grep 'temporary password' /var/log/mysqld.log
2017-06-23T04:04:40.322567Z 1 [Note] A temporary password is generated for root@localhost: g1hK=pYBo(x9

其中,最後的 g1hK=pYBo(x9 就是初始密碼(隨機產生的,每次安裝不同的哦)

使用初始密碼,登陸mysql並修改root密碼爲 Test.123

mysql -u root -p

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Test.123';

【注意】MySQL 默認會開啓強密碼驗證(MySQL's validate_password plugin is installed by default),要求密碼長度至少8個字符,包含至少1個大寫、1個小寫、1個數字、1個特殊字符。

(5)修改數據庫的字符集,查看默認的字符集

mysql> SHOW VARIABLES like 'character%';

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

能夠看出,database、server的字符集爲latin1,若是後面在建數據庫、數據表時,沒有指定utf8,輸入中文會變成亂碼。MySQL 官網有介紹了更改字符集的方法,修改 mysql 的配置文件

vi /etc/my.cnf

# 在 [mysqld] 下面加上這個配置
[mysqld]
character-set-server=utf8

# 若是 client 默認不是 utf8,要改爲 utf8 則在 [client] 中加上這個配置
[client]
default-character-set=utf8

更改好配置文件後,保存退出,重啓 mysql

service mysqld restart

再查看數據庫的字符集,已變成utf8,以下

mysql> SHOW VARIABLES like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

(6)建立用於存儲hive元數據庫的數據庫、帳號密碼

使用mysql的root帳號進入mysql後,建立數據庫和帳號

#建立相關的數據庫
#hive
create database chivedb;
#activity monitor
create database camondb;

# 建帳號
grant all privileges on chivedb.* to 'chadoop'@'localhost' identified by 'Test.123' with grant option;
grant all privileges on chivedb.* to 'chadoop'@'%' identified by 'Test.123' with grant option;
grant all privileges on camondb.* to 'chadoop'@'localhost' identified by 'Test.123' with grant option;
grant all privileges on camondb.* to 'chadoop'@'%' identified by 'Test.123' with grant option;
flush privileges;

3、下載安裝包

一、下載 Cloudera Manager 5,下載連接爲 http://archive.cloudera.com/cm5/cm/5/   根據本地操做系統(CentOS 6.9)下載 cloudera-manager-el6-cm5.13.0_x86_64.tar.gz
二、下載 CDH安裝包,下載連接爲 http://archive.cloudera.com/cdh5/parcels/5.13.0/ ,根據本地操做系統(CentOS 6.9)下載如下三個文件(注意:舊版本的CDH4還須要下載IMPALA、Cloudera Search(SOLR),而在CDH5中已將他們整合在一塊兒了)

CDH-5.13.0-1.cdh5.13.0.p0.29-el6.parcel

CDH-5.13.0-1.cdh5.13.0.p0.29-el6.parcel.sha1

manifest.json

4、安裝Cloudera Manager Server和Agent

一、主節點hd1安裝Cloudera Manager Server
Cloudera Manager的目錄默認位置爲/opt,在/opt目錄下解壓安裝文件

cd /opt
tar -zxvf cloudera-manager-el6-cm5.13.0_x86_64.tar.gz

二、初始化Cloudera Manager 5數據庫
首先在MySql的官網下載JDBC驅動,下載mysql-connector-java-5.1.45.zip,解壓後,找到mysql-connector-java-5.1.45-bin.jar,放到/opt/cm-5.13.0/share/cmf/lib/中

cp mysql-connector-java-5.1.45-bin.jar /opt/cm-5.13.0/share/cmf/lib/

在主節點hd1中初始化CM5的數據庫

sh /opt/cm-5.11.1/share/cmf/schema/scm_prepare_database.sh mysql -uroot -pTest.123 scm scm

若是執行出錯,報錯信息爲:java.sql.SQLException: Your password does not satisfy the current policy requirements這是因爲MySQL密碼複雜度設置的緣由,將MySQL的密碼複雜度修改成低等級

$ mysql -uroot -p密碼

mysql> select @@validate_password_policy;
+----------------------------+
| @@validate_password_policy |
+----------------------------+
| MEDIUM                     |
+----------------------------+
1 row in set (0.00 sec)

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye

從新執行初始化CM5的數據庫

[root@31d48048cb1e /]# sh /opt/cm-5.11.1/share/cmf/schema/scm_prepare_database.sh mysql -uroot -pTest.123 scm scm
Enter SCM password: 
JAVA_HOME=/usr/java/jdk1.7.0_75
Verifying that we can write to /opt/cm-5.11.1/etc/cloudera-scm-server
Creating SCM configuration file in /opt/cm-5.11.1/etc/cloudera-scm-server
groups: cloudera-scm: No such user
Executing:  /usr/java/jdk1.7.0_75/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cm-5.11.1/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cm-5.11.1/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
2017-08-26 13:17:50,669 [main] INFO  com.cloudera.enterprise.dbutil.DbCommandExecutor  - Successfully connected to database.
All done, your SCM database is configured correctly!

在初始化時要求輸入SCM的密碼

三、修改Agent的主節點主機

[root@31d48048cb1e /]# vi /opt/cm-5.13.0/etc/cloudera-scm-agent/config.ini 

[General]
# Hostname of the CM server.修改爲主節點的主機名
server_host=hd1

# Port that the CM server is listening on.
server_port=7182

## It should not normally be necessary to modify these.
# Port that the CM agent should listen on.
# listening_port=9000

注意,server_host那個配置項前面,不能出現空格,不然會形成cloudera-scm-server能正常啓動,但cloudera-scm-agent沒法正常啓動

四、將Agent文件同步到其它節點

[root@31d48048cb1e /]# scp -r /opt/cm-5.13.0/ root@hd2:/opt/
[root@31d48048cb1e /]# scp -r /opt/cm-5.13.0/ root@hd3:/opt/
[root@31d48048cb1e /]# scp -r /opt/cm-5.13.0/ root@hd4:/opt/

五、建立cloudera-scm用戶(全部節點)

useradd --system --home=/opt/cm-5.13.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

5、準備CDH5 Parcels文件

將下載的CHD5相關Parcels包放到主節點的/opt/cloudera/parcel-repo/目錄中(如無該目錄,則手動建立) 

[root@31d48048cb1e opt]# mv /home/chadoop/CDH-5.13.0-1.cdh5.13.0.p0.29-el6.parcel  /opt/cloudera/parcel-repo/
[root@31d48048cb1e opt]# mv /home/chadoop/CDH-5.13.0-1.cdh5.13.0.p0.29-el6.parcel.sha1  /home/chadoop/CDH-5.13.0-1.cdh5.13.0.p0.29-el6.parcel.sha
[root@31d48048cb1e opt]# mv /home/chadoop/CDH-5.13.0-1.cdh5.13.0.p0.29-el6.parcel.sha  /opt/cloudera/parcel-repo/
[root@31d48048cb1e opt]# mv /home/chadoop/manifest.json /opt/cloudera/parcel-repo/

注意,下載的文件CDH-5.13.0-1.cdh5.13.0.p0.29-el6.parcel.sha1,要從新命名爲CDH-5.13.0-1.cdh5.13.0.p0.29-el6.parcel.sha,不然在後面安裝時,系統會從新下載CDH-5.13.0-1.cdh5.13.0.p0.29-el6.parcel.sha文件

6、啓動cloudera-scm-server和cloudera-scm-agent

# hd1 啓動服務端
/opt/cm-5.11.1/etc/init.d/cloudera-scm-server start

# hd1,hd2,hd3,hd4 啓動Agent服務
/opt/cm-5.11.1/etc/init.d/cloudera-scm-agent start

若是須要中止服務則使用stop參數,重啓則是restart參數

7、啓動CDH5安裝配置頁面

在Cloudera Manager Server和Agent都成功啓動之後,就能夠進入CDH5的安裝配置頁面了,經過使用瀏覽器訪問主節點的7180端口進入 http://hd1:7180

因爲CM Server的啓動須要一些時間,可能要等待一會才能訪問,默認的用戶名和密碼均爲admin

選擇Cloudera Manager版本,這裏選擇Cloudera Express免費版本

選擇主機

安裝JDK,因爲本地已安裝,可點擊Continue直接跳過

選擇Parcels安裝模式,以直接加載本地的CDH5 Parcel文件

配置安裝的帳號和密碼

開始進行安裝

安裝完成後,而後選擇要安裝的相關服務(例如HDFS、Yarn、Hive等等),按指導一步一步地安裝配置便可,只須要在頁面上配置就行,就能輕鬆部署好一個Hadoop集羣,很是地直觀、方便

 

至此,Cloudera Manager 5和CDH5(最新版5.13.0)的本地離線安裝就已所有完成

 

歡迎關注本人的微信公衆號「大數據與人工智能Lab」(BigdataAILab),獲取更多資訊

相關文章
相關標籤/搜索