大家都知道,Apache Hadoop的配置很繁瑣,而且很零散,為此Cloudera公司提供了Clouder Manager工具,而且還封裝了Apache Hadoop,flume,spark,hive,hbase等大數據產品形成自己特色的CDH產品,再使用CM進行安裝,很大程度上方便了集群的搭建,並提供了集群的監控功能。
一、環境:
1.三台VMware虛擬機(一個做為主節點,兩個做為從節點)
hserver1n(主節點) | hserver2n(從節點) | hserver3n(從節點) |
CM Server | ||
CM Agent | CM Agent | CM Agent |
NameNode | DateNode | DateNode |
Mysql |
2.操作系統:Centos7
3.Cloudera Manager:5.14.1
4.CDH:5.14.0
5.JDK1.8
二、軟件下載地址
2.CDH
3.JDK和MySQL自行搜索
三、系統環境設置:
以下步驟都使用root用戶操作
1.設置靜態IP
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE="Ethernet" BOOTPROTO="static" DEFROUTE="yes" PEERDNS="yes" PEERROUTES="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="edcb54db-f59d-4893-bd8e-8ae60d0ba6f9" DEVICE="ens33" ONBOOT="yes" GATEWAY=192.168.124.2 IPADDR=192.168.124.136 NETMASK=255.255.255.0 DNS1=202.96.128.86 DNS2=223.5.5.5
還需要設置虛擬網絡:
(1) 點擊虛擬網絡編輯器
(2)子網,子網掩碼,以及NAT設置
(3)虛擬機網絡選擇剛設置的VMnet8
(4)重啟網絡
[root@localhost ~]# systemctl restart network
2.關閉防火牆和SELINUX
[root@localhost ~]# vim /etc/selinux/config .config/
將selinux=enforcing改成selinux=disabled
重啟虛擬機
3.安裝JDK
CentOS7默認安裝的是OpenJDK,所以需要先卸載,然后安裝Oracle JDK.
4.設置主機名(CentOS7與CentOS6主機名設置不同,請參考此博文)
(1)vim /etc/hostname
hserver1n
(2)hostname hserver1n
單台虛擬機設置好后,再復制兩台虛擬機,修改HostName、IP、UUID即可。
5.配置三台虛擬機的Host文件
192.168.124.136 hserver1n
192.168.124.137 hserver2n
192.168.124.138 hserver3n
6.打通主節點SSH訪問兩個從節點
7.配置所有節點NTP時間同步服務
兩個從節點同步主節點的時間
四、安裝MySQL
- mysql只需在主節點安裝
- mysql5.6開始mysql服務啟動時會為root用戶生成一個臨時密碼,通過grep 'password' /var/log/mysqld.log命令獲取
- 配置密碼驗證策略,我選擇的是不使用密碼驗證策略,以便創建簡單密碼
- 配置數據庫字符集,我配置默認的字符集是utf8。
五、安裝Clouder Manager及CDH
所有節點操作:
1.新建目錄
$ sudo mkdir /opt/cloudera-manager
2.將下載的Clouder Manager解壓到此目錄下
$ sudo tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
3.創建用戶cloudera-scm
由於Cloudera Manager和Managed Services默認使用cloudera-scm,所以需要創建此用戶
$ sudo useradd --system --home=/opt/cloudera-manager/cm-5.14.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
4.主節點創建Cloudera Manager服務本地數據存儲目錄
$ sudo mkdir /var/lib/cloudera-scm-server
$ sudo chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server
5.配置Agent
配置所有節點的Agent,路徑:/opt/cloudera-manager/cm-5.14.1/etc/cloudera-scm-agent/config.ini,將server_host修改成主節點的主機名,如果主節點端口沒有自定義,則不用修改。
6.下載mysql-connector-java.jar,並保存到所有主機的/usr/share/java目錄下
7.配置mysql,可以參考這里
7.1 mysql安裝在主節點上,使用mysql命令登錄
7.2 新建一個scm用戶,並賦予所有權限,密碼是scm
mysql> grant all on *.* to 'scm'@'localhost' identified by 'temp' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
7.3 創建數據庫scm
7.4 初始化cloudera manager
[root@hserver1n ~]# /opt/cloudera-manager/cm-5.14.1/share/cmf/schema/scm_prepare_database.sh mysql scm scm scm
JAVA_HOME=/usr/java/jdk1.7.0_80
Verifying that we can write to /opt/cloudera-manager/cm-5.14.1/etc/cloudera-scm-server
Creating SCM configuration file in /opt/cloudera-manager/cm-5.14.1/etc/cloudera-scm-server
Executing: /usr/java/jdk1.7.0_80/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cloudera-manager/cm-5.14.1/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cloudera-manager/cm-5.14.1/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
Wed Mar 21 14:09:40 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
[ main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!
當看最后一句話,就說明初始化成功了
注意scm賬戶不能刪除,因為cm以后還需要使用此賬戶,若想創建臨時用戶,則需要讓CM創建用戶和數據庫,此時可以刪除創建的臨時用戶。
可以使用命令:
/opt/cloudera-manager/cm-5.14.1/share/cmf/schema/scm_prepare_database.sh mysql -utemp -ptemp scm scm scm
8.將CDH安裝包移動主節點的/opt/cloudera/parcel-repo目錄下
移動的文件有:
將CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1名稱改成CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha
9.啟動主節點的CM Server和所有節點的Agent
路徑為:/opt/cloudera-manager/cm-5.14.1/etc/init.d
[root@hserver1n init.d]# ./cloudera-scm-server start
Starting cloudera-scm-server: [ OK ]
[root@hserver1n init.d]# ./cloudera-scm-agent start
Starting cloudera-scm-agent: [ OK ]
10.打開CM管理頁面,網址為:http://hserver1n:7180,
用戶名和密碼都是admin
11.選擇Cloudera Express
12.選擇主機
13.群集安裝
14.安裝完成后,檢查主機正確性
其中有兩項需要修改,一個是修改swapping閥值,從30修改成10,已最大限度使用內存,第二項是關閉透明大頁面壓縮功能,提高性能。
15.選擇要安裝的服務,這里選擇核心Hadoop,以后需要安裝其它服務時,再根據需要安裝
16.角色分配,盡量讓角色均衡地分配到所有主機上,以減少某一台主機的壓力
17.創建數據庫用戶,及相關數據庫,並配置服務
mysql> grant all on *.* to 'yanggy'@'%' identified by '878963' with grant option;
Query OK, 0 rows affected, 1 warning (0.03 sec)
mysql> create database hive;
Query OK, 1 row affected (0.01 sec)
mysql> create database hue;
Query OK, 1 row affected (0.01 sec)
mysql> create database ooz;
Query OK, 1 row affected (0.00 sec)
18.集群相關服務的配置
HDFS塊大小默認是128M,我這里為測試方便,只配置了16M,其它的配置一些數據目錄,日志目錄,以及端口
19.集群搭建完成,並啟動了相關服務
20.集群安裝合成后的初始界面,可以很明顯的看到集群中安裝的服務和運行狀況,紅嘆號是集群中某些配置、空間與CM期望的不一樣,可以根據實際情況調整。