一、架構
一共三臺虛擬機:cdh1~cdh3。
其中Server部署在cdh1上,MySQL同樣部署在cdh1上(因此cdh1的內存要大一些,其它兩臺主機的內存可稍小一點,筆者的內存配置是:6G、1G、1G)。IP分配如下:
cdh1:192.168.111.201
cdh2:192.168.111.202
cdh3:192.168.111.203
版本信息:
系統版本:CentOS 6.5
JDK版本: jdk-7u67-linux-x64.rpm
CM版本: cloudera-manager-el6-cm5.4.3_x86_64.tar.gz
CDH版本: CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel
MySQL版本: 5.6
需準備的安裝包列表:
1、CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel
2、CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel.sha
3、manifest.json
4、cloudera-manager-el6-cm5.4.3_x86_64.tar.gz
5、mysql-connector-java-5.1.26-bin.jar
6、jdk-7u67-linux-x64.rpm
其中, 1、2、3 CDH安裝包,4是Cloudera Manager的安裝包,5是mysql相關的jar包,用於CDH連接MySQL,6是JDK的安裝包。
二、準備工作
1、網絡配置(cdh1~cdh3):
(a) vi /etc/sysconfig/network 分別修改chd1~cdh3的hostname
NETWORKING=yes
HOSTNAME=cdh1
(b) vi /etc/hosts (cdh1~cdh3) 修改IP與主機名的對應關係,對三臺主機分別添加如下配置
192.168.111.201 cdh1
192.168.111.202 cdh2
192.168.111.203 cdh3
2、免密鑰配置(cdh1~cdh3):
三臺主機,兩兩之間互做免密鑰配置。具體配置方法如下:
在cdh1執行
1、ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
2、ssh-copy-id cdh2
3、ssh-copy-id cdh3
同樣,在cdh2、cdh3上執行類似操作。
3、關閉防火牆(cdh1~cdh3):
service iptables stop
chkconfig iptables off
4、關閉selinux (cdh1~cdh3):
vi /etc/selinux/config
將SELINUX的值設置爲 disabled
5、安裝jdk(cdh1~cdh3)
rpm -ivh jdk-7u67-linux-x64.rpm
安裝完成後,修改環境變量
vi /etc/profile
在末尾添加兩行配置:
export JAVA_HOME=/usr/java/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
保存退出!
source /etc/profile ,刷新。
6、安裝ntp服務,時間同步(cdh1~cdh3)
yum install -y ntp
安裝成功後,設置爲開機啓動,並進行時間同步:
chkconfig ntpd on
ntpdate -u ntp1.aliyun.com
7、在cdh1安裝MySQL、配置相關信息。
此處需特別注意:
(a) CDH 5.1版本及更新的版本匹配的MySQL版本是MySQL 5.6 , 故此處選取MySQL 5.6進行安裝。
MySQL安裝完畢後,啓動mysql服務,並設置成開機啓動
[root@cdh1 files]# service mysqld start
[root@cdh1 files]# chkconfig mysqld on
進入MySQL命令行,進行如下配置:
mysql>use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql>delete from user where host != '%' ;
Query OK, 6 rows affected (0.00 sec)
mysql>flush privileges;
Query OK, 0 rows affected (0.00 sec)
8、安裝第三方依賴包(cdh1~cdh3)yum install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb -y
至此,準備工作完畢。
三、安裝Cloudera Manager
1、安裝Cloudera Manager Server、Agent (cdh1~cdh3)
上傳Cloudera Manager的安裝包,創建新目錄,將安裝包解壓到新目錄中
mkdir /opt/cloudera-manager #注意此目錄是CM默認的目錄。可以在後續的web中修改。
tar xvzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
2、創建用戶 cloudera-scm(cdh1~cdh3)
useradd --system --no-create-home --shell=/bin/false --comment="Cloudera SCM User" cloudera-scm
3、配置CM Agent(cdh1~cdh3)
修改文件/opt/cloudera-manager/cm-5.4.3/etc/cloudera-scm-agent/config.ini中
server_host以及server_port。
server_host 的值設置爲 cdh1 , server_port保持默認的7182不變
4、配置CM Server數據庫(在cdh1上操作)
(a) 將mysql的jar包(mysql-connector-java-5.1.26-bin.jar) 拷貝至目錄/usr/share/java/。該目錄爲CM默認的讀取路徑,若不存在,則需要手動創建。
(b) jar包的名稱要修改爲 mysql-connector-java.jar , 該名稱也是CM默認讀取的名稱。
(c) 進入MySQL命令行模式,創建臨時用戶temp
[root@cdh1 ~]#mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 429
Server version: 5.6.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql>grant all on *.* to 'temp'@'%' identified by 'temp' with grant option;
mysql>flush privileges;
(d) 退出MySQL命令行模式,重新回到Linux中,執行如下命令進行數據庫初始化:
cd /opt/cloudera-manager/cm-5.4.3/share/cmf/schema/
./scm_prepare_database.sh mysql temp -h cdh1 -utemp -ptemp --scm-host cdh1 scm scm scm
上述腳本後面所跟參數的含義:
mysql 數據庫類型
temp 數據庫實例名
-h cdh1 數據庫服務器的主機名 或 IP
-utemp -ptemp 數據庫登錄用戶名、密碼
--scm-host cdh1 cm server服務器
scm scm scm 固定寫法,用途暫時不明
5、創建Parcel目錄
Server節點(cdh1):
mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
Agent節點(cdh1~cdh3):
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
注意:此處涉及到的幾個目錄,都是CDH默認讀取的目錄。CDH安裝成功之後,可以在Web控制端進行修改,但此處需要使用默路徑。
6、製作CDH本地源
將下面三個文件拷貝至Server節點(cdh1)的/opt/cloudera/parcel-repo下:
CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel
CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel.sha
manifest.json
7、 啓動CM Server、 Agent
啓動腳本都在目錄/opt/cloudera-manager/cm-5.4.3/etc/init.d/下,進入此目錄
(a) 在cdh1節點啓動 Server
./cloudera-scm-server start
– Sever首次啓動會自動創建表以及數據,不要立即關閉或重啓,否則需要刪除所有表及數據重新安裝
(b) 在cdh1~cdh3 上啓動Agent
./cloudera-scm-agent start
Server的啓動日誌是:/opt/cloudera-manager/cm-5.4.3/log/cloudera-scm-server/cloudera-scm-server.log。出現如下提示,說明CM啓動成功:
2018-01-31 20:05:35,066 INFO WebServerImpl:org.mortbay.log: jetty-6.1.26.cloudera.4
2018-01-31 20:05:35,067 INFO WebServerImpl:org.mortbay.log: Started [email protected]:7180
2018-01-31 20:05:35,067 INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl:Started Jetty server
用戶名/密碼:admin/admin