一、安裝cloudera manager(下文簡稱cm) (一).環境及軟體準備: 1.環境:Ubuntu16.04 desktop x 3 台 ip分別為:10.132.226.121,10.132.226.122,10.132.226.123 用戶統一使用root用戶 ip分別為:10.132. ...
一、安裝cloudera manager(下文簡稱cm)
(一).環境及軟體準備:
1.環境:Ubuntu16.04 desktop x 3 台
-
-
- ip分別為:10.132.226.121,10.132.226.122,10.132.226.123
- 用戶統一使用root用戶
-
2.需下載安裝的軟體:
-
-
- cm壓縮包:cloudera-manager-xenial-cm5.14.2_amd64.tar.gz
- CDH離線資源包(parcels):
- cloudera-manager-daemons(主節點)
- cloudera-manager-server(主節點)
- cloudera-manager-agent(主節點和從節點)
- 註意:Ubuntu有多個版本:16.04代號為Xenial Xerus——好客的非洲地松鼠14.04代號為Trusty Tahr——值得信賴的塔爾羊12.04代號為Precise Pangolin——精準的穿山甲,因此16.04需下載xenial版本的文件,否則可能會出現不相容的問題。
- ssh服務
- ntp服務
- oracle-java
- mariadb
-
(二).主機環境配置:
- 修改hostname:
- 主節點 master:
root@master:~# vim /etc/hostname ~~~~~~~內容~~~~~~~ master ~~~~~~~內容~~~~~~~
- 從節點 slave[1-2]:
root@slave1:~# vim /etc/hostname ~~~~~~~內容~~~~~~~ slave1 ~~~~~~~內容~~~~~~~
- 主節點 master:
- 修改hosts(所有節點):
1 root@master:~# vim /etc/hosts 2 ~~~~~~~~~~~內容~~~~~~~~~~~ 3 127.0.0.1 localhost 4 10.132.226.121 master 5 10.132.226.122 slave1 6 10.132.226.123 slave2 7 8 # The following lines are desirable for IPv6 capable hosts 9 ::1 ip6-localhost ip6-loopback 10 fe00::0 ip6-localnet 11 ff00::0 ip6-mcastprefix 12 ff02::1 ip6-allnodes 13 ff02::2 ip6-allrouters 14 ~~~~~~~~~~~內容~~~~~~~~~~~
註意:部分主機含有127.0.1.1 的地址 用#註釋或刪除
- 更新軟體包(所有節點):
root@master:~# apt update
註意:如果有涉及內核的更新需要重啟一下系統
- 關閉防火牆(所有節點):
root@slave1:~# ufw disable Firewall stopped and disabled on system startup
- 重啟系統:reboot 因為更改/etc/hostname必須要重啟系統才能生效,更新軟體包,以及關閉防火牆有時也需要重啟系統來應用部分配置,因此在這步進行系統重啟。
-
ssh服務配置:
-
如果未安裝ssh服務則先進行安裝(所有節點):
root@master:~# apt install openssh-server openssh-client
- 修改/etc/ssh/sshd_config配置文件中的以下選項(所有節點):
1 root@master:~# vim /etc/ssh/sshd_config 2 ~~~~~~~~查找並修改~~~~~~~~ 3 PermitRootLogin yes 4 PasswordAuthentication yes 5 ~~~~~~~~查找並修改~~~~~~~~ 6 root@master:~# /etc/init.d/ssh restart
若有#號註釋的刪除#號並更改即可
- 配置各節點之間的免密登陸(只在主節點操作):
1 root@master:~# ssh-keygen -t rsa 2 //生成密鑰 一路回車,如果之前已有生成,提示是否重新生成時填y即可 3 root@master:~# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 4 root@master:~# chmod 600 ~/.ssh/authorized_keys 5 root@master:~# scp -r /root/.ssh root@slave1:/root/ 6 root@master:~# scp -r /root/.ssh root@slave2:/root/
註意:如果出現無法連接的 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 錯誤時 清楚~/.ssh 文件下know_hosts文件找到與登錄錯誤的IP的公鑰刪除即可
-
- 配置ntp服務:
- 安裝ntp服務(所有節點):
1 root@master:~# apt-get install ntp
- 修改/etc/ntp.conf配置文件:
- master:
1 root@master:~# vim /etc/ntp.conf 2 //用#註釋掉所有的pool和server 3 ~~~~~~~~~~~~~~~內容~~~~~~~~~~~~~~~~ 4 restrict 10.132.226.0 mask 255.255.255.0 5 server 202.120.2.101 6 server cn.pool.ntp.org 7 server 127.0.0.1 8 ~~~~~~~~~~~~~~~內容~~~~~~~~~~~~~~~~
- slave:
1 root@slave1:~# vim /etc/ntp.conf 2 //用#註釋掉所有pool與server添加一下內容 3 ~~~~~~~~~~~~~~~內容~~~~~~~~~~~~~~~ 4 server master 5 ~~~~~~~~~~~~~~~內容~~~~~~~~~~~~~~~
- master:
- 重啟ntp服務:
1 root@master:~t# service ntp restart
- 安裝ntp服務(所有節點):
- 修改hostname:
- 安裝配置JAVA(所有節點):
- 安裝java:
1 root@master:~# add-apt-repository ppa:webupd8team/java 2 //因為cm需要安裝oracle的java,二ubuntu的源中預設只有openjdk所以需要添加源 3 root@master:~# apt-get update 4 root@master:~# apt-get install oracle-java8-installer
- 修改/etc/profile文件添加JAVA_HOME:
1 root@master:~# vim /etc/profile 2 ~~~~~~~~~~~~~~~~~~~~~~文末添加~~~~~~~~~~~~~~~~~~~~~~ 3 export JAVA_HOME=/usr/lib/jvm/java-8-oracle 4 export JRE_HOME=${JAVA_HOME}/jre 5 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 6 export PATH=$PATH:${JAVA_HOME}/bin:{JRE_HOME}/bin:$PATH 7 ~~~~~~~~~~~~~~~~~~~~~~文末添加~~~~~~~~~~~~~~~~~~~~~~
若不知道java的位置可通過update-alternatives --config java 來查看java信息
1 root@master:~# update-alternatives --config java 2 有 4 個候選項可用於替換 java (提供 /usr/bin/java)。 3 4 選擇 路徑 優先順序 狀態 5 ------------------------------------------------------------ 6 0 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 自動模式 7 1 /usr/java/jdk1.8.0_121/bin/java 300 手動模式 8 2 /usr/lib/jvm/j2sdk1.6-oracle/jre/bin/java 315 手動模式 9 3 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 手動模式 10 * 4 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 手動模式 11 12 要維持當前值[*]請按<回車鍵>,或者鍵入選擇的編號:
- 安裝java:
- 安裝配置Mariadb(主節點):
- 安裝Mariadb:
root@master:/home/jy# apt-get install mariadb-server
- 修改/etc/mysql/mariadb.conf.d/50-server.cnf配置文件使資料庫可遠程訪問:
1 root@master:~# vim /etc/mysql/mariadb.conf.d/50-server.cnf 2 3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~內容~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4 [mysqld] 5 6 # 7 # * Basic Settings 8 # 9 user = mysql 10 pid-file = /var/run/mysqld/mysqld.pid 11 socket = /var/run/mysqld/mysqld.sock 12 port = 3306 13 basedir = /usr 14 datadir = /var/lib/mysql 15 tmpdir = /tmp 16 lc-messages-dir = /usr/share/mysql 17 skip-external-locking 18 19 # Instead of skip-networking the default is now to listen only on 20 # localhost which is more compatible and is not less secure. 21 bind-address = 0.0.0.0 #修改此項,可用#註釋,或改成本實例內容 22 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~內容~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 使用mysql_secure_installation進行資料庫初始化設置:
1 root@master:~# mysql_secure_installation 2 ~~~~省略部分內容~~~~ 3 Enter current password for root (enter for none): //此處直接回車,預設root密碼為空 4 OK, successfully used password, moving on... 5 6 Setting the root password ensures that nobody can log into the MariaDB 7 root user without the proper authorisation. 8 9 Set root password? [Y/n] y //選擇y更改root密碼 10 New password: 11 Re-enter new password: 12 Password updated successfully! 13 Reloading privilege tables.. 14 ... Success! 15 ~~~~省略部分內容~~~~ 16 Remove anonymous users? [Y/n] n 17 ... skipping. 18 ~~~~省略部分內容~~~~ 19 Disallow root login remotely? [Y/n] n //選 n 為允許root用戶遠程登錄 20 ... skipping. 21 ~~~~省略部分內容~~~~ 22 Remove test database and access to it? [Y/n] y 23 ~~~~省略部分內容~~~~ 24 Reload privilege tables now? [Y/n] y 25 ... Success! 26 27 Cleaning up... 28 29 All done! If you've completed all of the above steps, your MariaDB 30 installation should now be secure. 31 32 Thanks for using MariaDB!
- 增加可遠程訪問的root用戶:
1 root@master:~# mysql -u root -p 2 Enter password: 3 MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123' WITH GRANT OPTION; 4 Query OK, 0 rows affected (0.00 sec 5 MariaDB [(none)]> flush privileges;
- 創建需要的資料庫:
1 MariaDB [(none)]> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 2 MariaDB [(none)]> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 3 MariaDB [(none)]> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 4 MariaDB [(none)]> create database manager DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 5 MariaDB [(none)]> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 6 //後續其他選中的服務需要資料庫可以自己再次創建
- 安裝JDBC:
root@master:~# apt install libmysql-java
- 安裝Mariadb:
- 安裝配置JAVA(所有節點):
(三).配置與安裝cm:
1.配置本地源:
- 解壓下載的cm包到指定目錄:
1 root@master:~# mkdir /opt/cloudera-manager //所有節點創建 2 root@master:~# tar -xzvf cloudera-manager-xenial-cm5.14.2_amd64.tar.gz -C /opt/cloudera-manager
- 修改/opt/cloudera-manager/cm-5.14.2/etc/cloudera-scm-agent/config.ini文件:
1 root@master:~# vim /opt/cloudera-manager/cm-5.14.2/etc/cloudera-scm-agent/config.ini 2 ~~~~~~~~~~~~~~內容~~~~~~~~~~~~~~ 3 [General] 4 # Hostname of the CM server. 5 server_host=master 6 7 # Port that the CM server is listening on. 8 server_port=7182 9 ~~~~~~~~~~~~~~內容~~~~~~~~~~~~~~ 10 //server_host 更改為主節點的ip或者host名 11 //server_port 預設為7182 若埠被占,則改成其他
- 把主節點的cloudera-manager文件夾拷貝到其他節點:
1 root@master:~# scp -r /opt/cloudera-manager root@slave1:/opt/cloudera-manager/ 2 root@master:~# scp -r /opt/cloudera-manager root@slave2:/opt/cloudera-manager/
- 創建parcle-repo本地CDH源(主節點):
1 root@master:~# mkdir -p /opt/cloudera/parcel-repo //在所有節點創建 2 //將sha1更名為sha否則無法識別,並將資源包拷貝到/opt/cloudera/parcel-repo 3 root@master:~# mv CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel.sha1 CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel.sha 4 root@master:~# cp CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel.sha manifest.json /opt/cloudera/parcel-repo
- 創建parcels目錄(所有節點):
1 root@master:~# mkdir -p /opt/cloudera/parcels
- 創建cloudera-scm用戶(所有節點):
root@master:~# useradd --system --home=/opt/cloudera-manager/cm-5.14.2/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
- 更改文件夾所有用戶與用戶組(所有節點):
1 root@master:~# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels 2 root@master:~# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo 3 root@master:~# chown -R cloudera-scm:cloudera-scm /opt/cloudera-manager
- 解壓下載的cm包到指定目錄:
2.安裝cloudera manager*
- 添加cloudera倉庫:從 Cloudera Manager Version and Download Information 找到適合當前操作系統版本的cloudera包文件,如本例的包文件地址為:https://archive.cloudera.com/cm5/ubuntu/xenial/amd64/cm/cloudera.list,將文件中的內容複製到/etc/apt/sources.list.d/cloudera-manager.list中(沒有則新建)
1 root@master:/etc/apt/sources.list.d# vim /etc/apt/sources.list.d/cloudera-manager.list 2 ~~~~~~~~~~~~~~~~~~~~添加內容~~~~~~~~~~~~~~~~~~~~ 3 # Packages for Cloudera Manager, Version 5, on Ubuntu 16.04 amd64 4 deb [arch=amd64] http://archive.cloudera.com/cm5/ubuntu/xenial/amd64/cm xenial-cm5 contrib 5 deb-src http://archive.cloudera.com/cm5/ubuntu/xenial/amd64/cm xenial-cm5 contrib 6 ~~~~~~~~~~~~~~~~~~~~添加內容~~~~~~~~~~~~~~~~~~~~
-
安裝cloudera-manager-daemons(主節點) cloudera-manager-server(主節點) coudera-manager-agent(主節點和從節點):
1 root@master:~# apt-get install cloudera-manager-daemons cloudera-manager-server 2 root@master:~# apt-get install cloudera-manager-agent
- 修改/opt/cloudera-manager/cm-5.14.2/etc/cloudera-scm-agent/config.ini文件:
1 root@master:~# vim /etc/cloudera-scm-agent/config.ini 2 ~~~~~~~~~~~~~~內容~~~~~~~~~~~~~~ 3 [General] 4 # Hostname of the CM server. 5 server_host=master 6 7 # Port that the CM server is listening on. 8 server_port=7182 9 ~~~~~~~~~~~~~~內容~~~~~~~~~~~~~~ 10 //server_host 更改為主節點的ip或者host名 11 //server_port 預設為7182 若埠被占,則改成其他
- 添加cloudera倉庫:從 Cloudera Manager Version and Download Information 找到適合當前操作系統版本的cloudera包文件,如本例的包文件地址為:https://archive.cloudera.com/cm5/ubuntu/xenial/amd64/cm/cloudera.list,將文件中的內容複製到/etc/apt/sources.list.d/cloudera-manager.list中(沒有則新建)
3.配置cm資料庫賬戶:
- 創建scm賬戶:
1 root@master:~# mysql -uroot -p 2 Enter password: 3 MariaDB [(none)]> grant all on *.* to 'scm'@'%' identified by 'scm' with grant option; 4 MariaDB [(none)]> flush privileges;
- 通過scm_prepare_database.sh 創建資料庫及資料庫用戶:
1 root@master:~# /usr/share/cmf/schema/scm_prepare_database.sh mysql -hmaster -uroot -p --scm-host master scm scm scm 2 JAVA_HOME=/usr/lib/jvm/java-8-oracle 3 Verifying that we can write to /etc/cloudera-scm-server 4 log4j:ERROR Could not find value for key log4j.appender.A 5 log4j:ERROR Could not instantiate appender named "A". 6 Creating SCM configuration file in /etc/cloudera-scm-server 7 Executing: /usr/lib/jvm/java-8-oracle/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db. 8 log4j:ERROR Could not find value for key log4j.appender.A 9 log4j:ERROR Could not instantiate appender named "A". 10 [2018-05-20 02:19:36,840] INFO 0[main] - com.cloudera.enterprise.dbutil.DbCommandExecutor.testDbConnection(DbCommandExecutor.java) - Successfully connected to database. 11 All done, your SCM database is configured correctly! 12 //這裡出現的ERROR暫時沒發現影響後面的操作,可以忽略
說明:
腳本用來創建和配置CMS需要的資料庫。各參數是指:
mysql:資料庫用的是mysql,如果安裝過程中用的oracle,那麼該參數就應該改為oracle。
-uroot:root身份運行mysql。-proot:mysql的root密碼是root。
--scm-host localhost :CMS的主機,一般是和mysql安裝的主機是在同一個主機上。
最後三個參數是:資料庫名,資料庫用戶名,資料庫密碼。
- 創建scm賬戶:
4.啟動cloudera manager服務:
- 主節點啟動:cloudera-scm-server:
1 root@master:~# service cloudera-scm-server start
這步啟動時間有點長,可以查看日誌來看服務是否啟動完成:
root@master:/# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
- 所有節點啟動 cloudera-scm-agent:
1 root@master:~# service cloudera-scm-agent start
- 主節點啟動:cloudera-scm-server:
(二)安裝CDH5:
- 進入CMS管理界面: 通過http:主節點ip:7180 進入 用戶名和密碼均為admin
- 選擇版本:
- 選擇安裝的主機:如果沒有啟動cloudera-scm-agent服務會出現部分節點不在以管理的主機中,啟動再刷新就可以了
- 選擇cdh的版本,選擇自己下載在parcels-repo包中的cdh版本,這裡應該選CDH-5.14.2-cdh5.14.2p0.3
- 進行集群安裝,剛開始可能會出現connect refused 再等待一會應該就會重新進行分配
- 集群安裝檢查主機正確性,確保所有驗證都為綠色。
註意:Cloudera 建議將 /proc/sys/vm/swappiness 設置為 10。當前設置為 60。使用 sysctl 命令在運行時更改該設置並編輯 /etc/sysctl.conf 以在重啟後保存該設置。
解決方法 在出現問題的節點上運行:echo 10 > /proc/sys/vm/swappiness
echo後面的10 為需要的設置的值。 - 選擇自己需要的服務
- 資料庫設置:
資料庫名為之前創建的資料庫名,若沒有創建你需要的服務所需的資料庫,可自行再進行創建,用戶名這裡使用root。也可自己創建新的用戶
-
之後 一直繼續即可
-
完成安裝部署:
-
進入cms管理界面: