CentOS7.3下安裝Cloudera Manager5.11.1

CentOS7.3下安裝Cloudera Manager5.11.1
  • 概述
  • 準備條件
  • 系統環境配置
  • 安裝Java
  • 安裝MySQL
  • 安裝CM
  • CM配置
  • Q&A
  • 參考

概述

最近公司需要研究大資料方向的內容,經初步討論,決定使用CDH版本
的Hadoop,使用Cloudera生態下的Cloudera Manager平臺。CDH(Cloudera’s Distribution,
including Apache Hadoop),是Hadoop分支中的一種,由Cloudera
維護,基於穩定版本的Apache hadoop構建,並繼承了許多補丁,可以直接用於生產環境。

Cloudera Manager則是為了便於在叢集中進行Hadoop等大資料處理相關
的服務安裝和監控管理的元件,對叢集中主機、Hadoop、Hive、Spark等服務的安裝配置管理做了極大
簡化。

準備條件

本文環境是在虛擬機器上搭建的分散式環境。
– 硬體:
– 主節點 Intel Core i5-4200H,12G,80G 從節點Intel Core i5-5200u,12G,40G*2
– 軟體:
– 作業系統 : CentOS7.3 GNOME DESTOP development tools組包
– java : 這裡使用的是jdk-8u131-linux-x64.rpm
– mysql : 這裡使用的是mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar以及mysql-connector-java-5.1.42-bin.jar
– Cloudera Manager
– 下載地址 : https://archive.cloudera.com/cm5/cm/5/
– 這裡下載的是 : https://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz
– CDH安裝包
– 下載地址 : http://archive.cloudera.com/cdh5/parcels
– 這裡用的是 :CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel和CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha1

注意對應的版本號,CentOS7對應的是el7

系統環境配置

  • 首先修改各臺機器上的主機名,如本人設定為linuxvnode0,linuxvnode1,linuxvnode2。
# hostnamectl set-hostname linuxvnode0
  • 修改主機名與IP的對應關係,向所有伺服器配置/etc/hosts檔案,向其中新增行
# vim /etc/hosts
192.168.8.96 linuxvnode0
192.168.8.97 linuxvnode1
192.168.8.98 linuxvnode2
  • 配置SSH無祕鑰登入服務,注意每臺機器上都要配置
# ssh-keygen -t rsa
# ssh-copy-id linuxvnode0
# ssh-copy-id linuxvnode1
# ssh-copy-id linuxvnode2
  • 所有伺服器均建立安裝使用者:cloudera
# groupadd cloudera
# useradd -g cloudera cloudera
# echo "*********" | passwd --stdin cloudera
  • 所有伺服器為cloudera使用者配置sudo許可權
# chmod u w /etc/sudoers
# echo "cloudera ALL=(root)NOPASSWD:ALL" >> /etc/sudoers
# chmod u-w /etc/sudoers
  • 所有伺服器關閉防火牆和Selinux服務
關閉防火牆
# systemctl mask firewalld.service
關閉Selinux
# sed -i '/SELINUX=enforcing/d' /etc/selinux/config
# sed -i '/SELINUX=disabled/d' /etc/selinux/config
# echo "SELINUX=disabled" >> /etc/selinux/config
重啟後生效。
  • 所有伺服器設定檔案開啟數量及最大程序數
cp /etc/security/limits.conf /etc/security/limits.conf.bak
# echo "* soft nproc 32000" >>/etc/security/limits.conf
# echo "* hard nproc 32000" >>/etc/security/limits.conf
# echo "* soft nofile 65535" >>/etc/security/limits.conf
# echo "* hard nofile 65535" >>/etc/security/limits.conf
  • 配置叢集時間同步服務:通過ntp服務配置
ntp主節點配置:
# cp /etc/ntp.conf /etc/ntp.conf.bak
# cp /etc/sysconfig/ntpd /etc/sysconfig/ntpd.bak
# echo "restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap" >> /etc/ntp.conf
# echo "SYNC_HWCLOCK=yes" >> /etc/sysconfig/ntpd
# service ntpd restart
ntp從節點配置
建立shell指令碼內容如下:
# vim /opt/scripts/sync_time.sh
# /sbin/service ntpd stop
# /usr/sbin/ntpdate linuxvnode0
# /sbin/service ntpd start
賦權
# chmod 777 sync_time.sh
建立定時任務
# crontab -e
輸入如下一行內容,儲存退出:
0-59/10 * * * * /opt/scripts/sync_time.sh

安裝Java

每臺伺服器需要安裝相同版本的Java。這裡採用的是rpm方式安裝Java.

  • CentOS7自帶了OpenJDK,但並不適用Cloudera Manager,所以首先檢查安裝的Java,解除安裝自帶的OpenJDK。
[[email protected] ~]# rpm -qa | grep java
[[email protected] ~]# rpm -qa | grep java
tzdata-java-2014i-1.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.71 -2.5.3.1 .el7_0.x86_64
java-1.7.0-openjdk-1.7.0.71 -2.5.3.1 .el7_0.x86_64
java-1.8.0-openjdk-headless-1.7.0.71 -2.5.3.1 .el7_0.x86_64
java-1.8.0-openjdk-1.7.0.71 -2.5.3.1 .el7_0.x86_64
刪除上面的java包
# rpm -e --nodeps $PACKGENAME
  • 安裝Oracle JDK
# rpm -ivh jdk-8u131-linux-x64.rpm  Java預設安裝在/usr/java/目錄下
  • 配置Java環境變數,在/etc/profile後新增:
# vim /etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_131
JRE_HOME=/usr/java/jdk1.8.0_131/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
  • 使環境變數生效
# source /etc/profile

建議手動指定一下java的使用版本,避免在安裝Spark元件時報錯
alternatives –config java

安裝MySQL

這裡使用的是mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar安裝,解壓縮後會有Mysql相應的rpm檔案,
我們只需要依次安裝一下幾個rpm即可。
mysql-community-common-5.7.18-1.el7.x86_64.rpm
mysql-community-libs-5.7.18-1.el7.x86_64.rpm
mysql-community-client-5.7.18-1.el7.x86_64.rpm
mysql-community-server-5.7.18-1.el7.x86_64.rpm
1. 和安裝Java一樣,首先需要檢查是否已經安裝了MySQL。

# rpm -qa|grep mysql 如果有的話請先解除安裝

然後再依次安裝上述的rpm檔案,因為它們存在相互依賴。
2. 安裝完畢後啟用mysql服務。

# systemctl start mysqld
# systemctl status mysqld

3. 這種方式完成安裝MySQL後,會自動隨機生成一個原始密碼。登入並修改密碼,否則報密碼過期錯誤。

# cat /var/log/mysqld.log | grep password
2017-05-13T05:39:44.497086Z 1 [Note] A temporary password is generated for [email protected]: sjsO:Pin<5c_
使用上述密碼登入MySQL
# mysql -uroot -p
Enter password:
登入成功後:
mysql> SET PASSWORD = PASSWORD('**********');
Query OK, 0 rows affected, 1 warning (0.00 sec)

注意此處密碼設定必須用強密碼,否則安裝CM時報密碼過期錯誤。

4. 設定root授權訪問以上所有的資料庫,因為CM安裝時會建立資料庫,這裡設定後安裝CM時可以設定資料庫的host為linuxvnode0

mysql>grant all privileges on *.* to 'root'@'linuxvnode0' identified by '****' with grant option;
mysql>flush privileges;

5. 由於本人需要安裝hive做為資料倉儲,同時使用了Mysql作為Hive的儲存方式,所以這裡單獨為hive建立一個庫。

#為hive建庫hive
mysql>create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

個人感覺此處必須得新建一個庫與CM安裝時建立的庫分開,否則啟動Hive時會報角色無法啟動的錯誤。

安裝Cloudera Manager

1. 來到了重頭戲了,首先主節點上解壓相應的檔案cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz
到/opt/目錄下。

# tar -zxvf cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz -C /opt/

2. 將mysql-connector-java-5.1.42-bin.jar放到/opt/cm-5.11.1/share/cmf/lib下並初始化資料庫

# cp mysql-connector-java-5.1.42-bin.jar /opt/cm-5.11.1/share/cmf/lib
/opt/cm-5.11.1/share/cmf/schema/scm_prepare_database.sh [-資料庫型別] [-建立的資料庫名] [-h主機名] [-u使用者名稱] [-p密碼]
# /opt/cm-5.11.1/share/cmf/schema/scm_prepare_database.sh mysql cm5111 -hlinuxvnode0 -uroot -p****** --scm-host linuxvnode0 scm scm scm

3. 配置agent:修改/opt/cm-5.11.1/etc/cloudera-scm-agent/config.ini檔案修改server_host為主節點主機名。

4. 每臺伺服器上執行命令建立scm使用者

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

5. 將Agent同步到其他節點

# scp -r /opt/cm-5.11.1 linuxvnode1:/opt
# scp -r /opt/cm-5.11.1 linuxvnode2:/opt

6. 將parcels安裝包放置到/opt/cloudera/parcel-repo目錄下。
7. 執行相應的指令碼,啟動服務。

主節點啟動 :
# /opt/cm-5.11.1/etc/init.d/cloudera-scm-server start
所有節點啟動 :
# /opt/cm-5.11.1/etc/init.d/cloudera-scm-agent start

8. 啟動成功後輸入 linuxvnode0:7180即可進入Cloudera Manager運維平臺介面,初始密碼為 admin/admin.
(可能CM啟動較久,需要一點時間才能進入) 進入後按照提示即可安裝叢集以及相應元件。

如若安裝hive元件且使用Mysql型別的資料倉儲,那麼需要為hive增加MySQL connector
cp mysql-connector-java-5.1.42-bin.jar /opt/cloudera/parcels/CDH/lib/hive/lib/mysql-connector-java-5.1.42-bin.jar

CM配置

由於機器叢集已經安裝好,下面借用了參考地址中的圖片說明CM的配置。
1. 一開始是進入登入介面,輸入admin/admin即可登入。
初始化介面
2. 選擇部署的版本。
這裡寫圖片描述
可以看到,現在的免費版本沒有節點個數的限制了。
3. 繼續下一步,選擇安裝的CM的版本。
這裡寫圖片描述
這裡寫圖片描述
4. 當各個Agent節點正常啟動後,會展示每個節點的安裝情況。耐心等待安裝完即可。
這裡寫圖片描述
5. 安裝檢查中可能提示以下問題
這裡寫圖片描述
解決方法如下:

# sysctl -w vm.swappiness=10
# echo "vm.swappiness=10" >>/etc/sysctl.conf
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
然後在每個節點中加入啟動指令碼:
# vim /etc/rc.local

6. 選擇你需要安裝的服務即可。
這裡寫圖片描述

建議第一步安裝zookeeper服務,第二步按照hdfs服務,第三步安裝yarn服務,以後可以安裝需要定製的服務(hive,hbase,spark,flume等)

Q&A

  • Hive
    1. version information not found.

介面內hive->配置中
hive.metastore.schema.verification 設定為false 去掉勾選。

參考

https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_install_path_c.html
http://www.cnblogs.com/codedevelop/p/6762555.html
http://www.cnblogs.com/wcwen1990/p/6841118.html?utm_source=itdadao&utm_medium=referral

ps:第一次用Markdown寫的,略酸爽。