CDH 離線簡易部署文檔
文檔說明
本文為開發部署文檔,生產環境需做相應調整。
以下操作盡量在root用戶下操作,避免權限問題。
目錄
文檔說明 2
文檔修改歷史記錄 2
目錄 3
系統環境 4
相關依賴 4
初始准備: 5
java下載和更新 5
修改主機名與主機名解析 5
selinux關閉 6
防火牆關閉 6
NTP服務器設置 6
SSH無密碼登錄配置 6
安裝mysql 7
配置jdbc 8
安裝Cloudera-Manager 9
主節點安裝工作 9
從節點安裝工作 10
常見報錯原因及解決 11
在瀏覽器安裝CDHs 12
系統環境
| 系統版本 |
主機名 |
主機ip |
用戶名密碼 |
說明 |
| Centos6.5 |
bigdata01 |
10.62.8.1 |
Root:rootroot |
安裝主節點,主節點, |
| Centos6.5 |
bigdata02 |
10.62.8.2 |
Root:rootroot |
從節點 |
| Centos6.5 |
bigdata03 |
10.62.8.3 |
Root:rootroot |
從節點 |
| Centos6.5 |
bigdata04 |
10.62.8.4 |
Root:rootroot |
從節點 |
|
|
|
|
|
|
|
|
|
|
|
|
相關依賴
| 依賴名稱 |
依賴版本 |
依賴用途 |
| jdk 1.8
|
jdk-8u101-linux-x64.rpm |
Openjdk |
| mysql
|
MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar.gz |
存放cloudera manager配置文件 |
| mysql-connector-java
|
mysql-connector-java-8.0.11.jar |
JDBC |
| cloudera manager包
|
cloudera-manager-el6-cm5.9.3_x86_64.tar |
簡易安裝CDH平台 |
| CDH parcel 包
|
CDH-5.7.2-1.cdh5.7.2.p0.18-el6.parcel |
集群各軟件壓縮包 |
| CDH parcel.sha包
|
CDH-5.7.2-1.cdh5.7.2.p0.18-el6.parcel.sha1 |
壓縮包對於哈希碼 |
| manifest.json
|
網站對應版本頁面上的文件 |
版本說明json文件 |
初始准備:
java下載和更新
為了避免java版本過低導致的相關問題,首先將每個節點java版本更新至1.8。
#查看已經安裝版本
rpm -qa | grep jdk
java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64
java-1.7.0-openjdk-headless-1.7.0.75-2.5.4.2.el7_0.x86_64
#卸載已經安裝版本
yum -y remove java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64
yum -y remove java-1.7.0-openjdk-headless-1.7.0.75-2.5.4.2.el7_0.x86_64
#安裝最新版本
rpm -ivh jdk-8u101-linux-x64.rpm
#查看最新安裝版本
java –version
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
修改主機名與主機名解析
為了方便配置各節點,將主機名設置成特定格式,方便記憶。每個節點對應修改
#設定主機名與網卡啟動
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=bigdata01
#主機名和IP解析
vim /etc/hosts
127.0.0.1 localhost. bigdata01
10.62.8.2 bigdata02
10.62.8.4 bigdata03
10.62.8.4 bigdata04
selinux關閉
# 每個節點通過配置文件永久關閉selinux,重啟生效
vim /etc/sysconfig/selinux
SELINUX=disabled
# 查看selinux狀態
sestatus –v
SELinux status: disabled
防火牆關閉
# 每個節點關閉防火牆(或者設置對應的策略能夠讓各節點互相通信)
service iptables stop #臨時關閉
chkconfig iptables off #開機關閉
service iptables status #查看狀態
NTP服務器設置
# 每個節點開啟NTP 服務,統一各節點時間。
vim /etc/ntp.conf
server 10.62.8.1 iburst #離線情況下節點指向主節點
service ntpd restart
# 檢查
service ntpd status
date
SSH無密碼登錄配置
# 主節點生成ssh公鑰
ssh-keygen -t rsa (一直回車)
ssh-copy-id bigdata02 (對應節點)
# 檢查在主節點上能否免密登錄各節點
ssh bigdata02
# 如果不能免密登錄,查看 /var/log/security, 一般為ssh文件的權限問題
安裝mysql
# 安裝在主節點上,用於存放cloudera manager 配置文件,如果已有即可不用安裝。
tar -xvf MySQL-5.6.24-1.linux_glibc2.5.x86_64.rpm-bundle.tar
rpm -ivh MySQL-*.rpm
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
vim /etc/my.cnf
[mysqld]
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
#初始化mysql
/usr/bin/mysql_install_db
# 開啟mysql
service mysql restart
ERROR! MySQL server PID file could not be found!
Starting MySQL... SUCCESS!
# 查看mysql root初始化密碼
cat /root/.mysql_secret
The random password set for the root user at Fri Sep 16 11:13:25 2016 (local time): 9mp7uYFmgt6drdq3
#登錄mysql並修改密碼
mysql -u root –p
mysql> SET PASSWORD=PASSWORD('root12345678');
# 允許mysql遠程訪問
mysql> update user set host='%' where user='root' and host='localhost';
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
# 創建集群對應數據庫
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
grant all on *.* to root@"%" Identified by "root12345678";
# 配置開機啟動
chkconfig mysql on
配置jdbc
# 拷貝mysql-connector-java到各個節點指定目錄下(所有的節點)
cp mysql-connector-java-5.1.36-bin.jar /usr/share/java/mysql-connector-java.jar
安裝Cloudera-Manager
主節點安裝工作
#解壓cm tar包到指定目錄
mkdir /opt/cloudera-manager
tar -axvf cloudera-managertar包 -C /opt/cloudera-manager
#創建cloudera-scm用戶(home為相應目錄)
useradd --system --home=/opt/cloudera-manager/cm-5.7.2/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
#創建cloudera-manager-server的本地元數據保存目錄
mkdir /var/cloudera-scm-server
chown cloudera-scm:cloudera-scm /var/cloudera-scm-server
chown cloudera-scm:cloudera-scm /opt/cloudera-manager
#主節點中創建parcel-repo倉庫目錄
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
#初始腳本配置數據庫scm_prepare_database.sh(相應目錄下的腳本)
/opt/cloudera-manager/cm-5.7.2/share/cmf/schema/scm_prepare_database.sh mysql -hhadoop1 -uroot -p123456 --scm-host bigdata01 scmdbn scmdbu scmdbp
#說明:這個腳本就是用來創建和配置CMS需要的數據庫的腳本。各參數是指:
mysql:數據庫用的是mysql,如果安裝過程中用的oracle,那么該參數就應該改為oracle。
-bigdata01:數據庫建立在bigdata01主機上面。也就是主節點上面。。
--scm-host bigdata01:CMS的主機,一般是和mysql安裝的主機是在同一個主機上。
最后三個參數是:數據庫名,數據庫用戶名,數據庫密碼。
# 設置cloudera-manager 的service
cp /opt/cloudera-manager/cm-5.7.2/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server
chkconfig cloudera-scm-server on
vim /etc/init.d/cloudera-scm-server
CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default}改為=/opt/cloudera-manager/cm-5.7.2/etc/default
vim /etc/rc.local
service cloudera-scm-server restart
從節點安裝工作
#解壓cm tar包到指定目錄
mkdir /opt/cloudera-manager
tar -axvf cloudera-manager-centos7-cm5.7.2_x86_64.tar.gz -C /opt/cloudera-manager
# 創建cloudera-scm用戶
useradd --system --home=/opt/cloudera-manager/cm-5.7.2/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
# 配置從節點cloudera-manger-agent指向主節點服務器
vim /opt/cloudera-manager/cm-5.7.2/etc/cloudera-scm-agent/config.ini
將server_host改為CMS所在的主機名即bigdata01
# 所有節點創建parcels目錄
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
設置agent服務
cp /opt/cloudera-manager/cm-5.7.2/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent
chkconfig cloudera-scm-agent on
vim /etc/init.d/cloudera-scm-agent
CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default}改為=/opt/cloudera-manager/cm-5.7.2/etc/default
vim /etc/rc.local
service cloudera-scm-agent restart
常見報錯原因及解決
1 ERROR com.cloudera.enterprise.dbutil.DbProvisioner - Exception when creating/dropping database with user 'root' and jdbc url 'jdbc:mysql://localhost/?useUnicode=true&characterEncoding=UTF-8'
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
可能是配置host的有問題,127.0.0.1 localhost.hadoop1 這個localhost不能少
可能是密碼問題,重設密碼
2. ERROR com.cloudera.enterprise.dbutil.DbProvisioner - Exception when creating/dropping database with user 'root' and jdbc url 'jdbc:mysql://localhost/?useUnicode=true&characterEncoding=UTF-8'
java.sql.SQLException: Your password has expired. To log in you must change it using a client that supports expired passwords.
密碼過期,設置密碼為不過期格式。
mysql> update user set password_expired='N' where user='root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 5 Changed: 2 Warnings: 0
mysql> flush privileges;
在瀏覽器安裝CDHs
進入192168.160.130:7180 默認使用admin admin登錄
以下在瀏覽器中使用操作安裝
選擇版本

組件提示
這里我們可以在“當前管理的主機”中看到三個主機,全部勾選並繼續,注意如果cloudera-scm-agent沒有設為開機啟動,如果以上有重啟這里可能會檢測不到其他服務器。

選擇cdh

分發parcels到各個節點

之間正確性的檢測

選擇要安裝的服務,這里選擇所有服務

角色分配

數據庫設置選擇
集群審核,這里都默認的

開始安裝

安裝完成

這個時候安裝完成了,可以在瀏覽器中進入10.62.8.1:7180地址,查看集群情況,

