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
  • 1
  • 修改主機名與IP的對應關係,向所有服務器配置/etc/hosts文件,向其中添加行
# vim /etc/hosts
192.168.8.96 linuxvnode0
192.168.8.97 linuxvnode1
192.168.8.98 linuxvnode2
  • 1
  • 2
  • 3
  • 4
  • 配置SSH無祕鑰登錄服務,注意每臺機器上都要配置
# ssh-keygen -t rsa
# ssh-copy-id linuxvnode0
# ssh-copy-id linuxvnode1
# ssh-copy-id linuxvnode2
  • 1
  • 2
  • 3
  • 4
  • 所有服務器均創建安裝用戶:cloudera
# groupadd cloudera
# useradd -g cloudera cloudera
# echo "*********" | passwd --stdin cloudera
  • 1
  • 2
  • 3
  • 所有服務器爲cloudera用戶配置sudo權限
# chmod u+w /etc/sudoers
# echo "cloudera ALL=(root)NOPASSWD:ALL" >> /etc/sudoers
# chmod u-w /etc/sudoers
  • 1
  • 2
  • 3
  • 所有服務器關閉防火牆和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
重啓後生效。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 所有服務器設置文件打開數量及最大進程數
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 配置集羣時間同步服務:通過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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

安裝Java

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

  • CentOS7自帶了OpenJDK,但並不適用Cloudera Manager,所以首先檢查安裝的Java,卸載自帶的OpenJDK。
[root@localhost ~]# rpm -qa | grep java
[root@localhost ~]# 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 安裝Oracle JDK
# rpm -ivh jdk-8u131-linux-x64.rpm  Java默認安裝在/usr/java/目錄下
  • 1
  • 配置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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 使環境變量生效
# source /etc/profile
  • 1


建議手動指定一下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 如果有的話請先卸載
  • 1

然後再依次安裝上述的rpm文件,因爲它們存在相互依賴。 
2. 安裝完畢後啓用mysql服務。

# systemctl start mysqld
# systemctl status mysqld
  • 1
  • 2


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

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


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


4. 設置root授權訪問以上所有的數據庫,因爲CM安裝時會創建數據庫,這裏設置後安裝CM時可以設置數據庫的host爲linuxvnode0

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


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

#爲hive建庫hive
mysql>create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  • 1
  • 2


個人感覺此處必須得新建一個庫與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/
  • 1


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
  • 1
  • 2
  • 3


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
  • 1


5. 將Agent同步到其他節點

# scp -r /opt/cm-5.11.1 linuxvnode1:/opt
# scp -r /opt/cm-5.11.1 linuxvnode2:/opt
  • 1
  • 2


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
  • 1
  • 2
  • 3
  • 4


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寫的,略酸爽。

版權聲明:轉載請註明作者。 https://blog.csdn.net/rj08zhou/article/details/76116596
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章