文章目錄
- 1. 配置主機名
- 2. 時間同步
- 3. ssh免密登入
- 4. 關閉防火牆
- 5. 禁用SELinux
- 6. 安裝Java環境
- 7. 中繼資料庫安裝
-
- 解除安裝mariadb
- 安裝MySQL
- 8. 安裝 Cloudera Manager
- 9. 啟動CM相關服務
- 10. Web端操作
在雲計算時代,可能很多公司為了成本的考慮,會采用第三方廠商提供的大資料叢集,比如阿裡的Maxcompute、華為的FusionInsight等。但選擇安裝開源的軟體,能讓你更加清楚其内部的原理,也能更好的針對自己公司的業務需求來定制軟體進行二次開發。
下面針對自己在公司安裝CDH叢集的經曆,整理了以下安裝步驟,希望能對有需要的同學有所幫助!
注:以下步驟中,從第1步到第8步,除了中繼資料庫的安裝之外,其他步驟都是要在叢集所有節點上執行的!
1. 配置主機名
在檔案/etc/hosts的最後加入以下配置(叢集所有節點都需要配置)
10.1.12.61 bigdatadev01
10.1.12.62 bigdatadev02
10.1.12.63 bigdatadev03
10.1.12.64 bigdatadev04
10.1.12.65 bigdatadev05
依次修改每個節點檔案/etc/hostname中的主機名為bigdata01,bigdata02…修改完之後需要重新開機主機reboot,才能生效。
2. 時間同步
使用chrony與外網進行時間同步,不需要配置從節點向主節點同步。
- 安裝chrony服務:yum -y install chrony
- 啟動服務:systemctl start chronyd
- 檢視狀态:systemctl status chronyd
- 設定開機啟動:systemctl enable chronyd
3. ssh免密登入
-
在叢集各節點上産生公鑰和私鑰
ssh-keygen -t rsa
注:ssh-keygen為ssh生成、管理和轉換認證密鑰, 它支援RSA和DSA兩種認證密鑰。-t選項: 指定要建立的密鑰類型。
-
拷貝被通路節點的公鑰到通路節點
拷貝主節點的公鑰到所有節點,需要主節點能通路所有節點包括主節點本身。
ssh-copy-id master
指令格式:ssh-copy-id [ -i [identity_file] ] [user@]machine
ssh-copy-id是把本地主機的公鑰複制到遠端主機的authorized_keys檔案上, 也會給遠端主機的使用者主目錄(home)和~/.ssh和~/.ssh/authorized_keys設定合适的權限。-i選項用來把本地的ssh公鑰檔案安裝到遠端主機對應賬戶下。
例如:ssh-copy-id [email protected] 或 ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
4. 關閉防火牆
- 檢視防火牆服務狀态: systemctl status firewalld
- 關閉防火牆: systemctl stop firewalld
- 禁止開機啟動:systemctl disable firewalld
5. 禁用SELinux
- 檢視SElLinux狀态: sestatus -v 或 getenforce
- 永久關閉SELinux:
- 編輯vi /etc/selinux/config
- 修改SELINUX=disabled
- 重新開機主機
6. 安裝Java環境
檢視是否安裝了jdk:rpm -qa | grep jdk
如果沒安裝,則通過rpm安裝JDK:rpm -ivh jdk-8u172-linux-x64.rpm
7. 中繼資料庫安裝
解除安裝mariadb
centos預設安裝mariadb,需要先解除安裝以避免沖突。
-
檢視已安裝MariaDB相關包
rpm -qa | grep -i mariadb
-
檢視已安裝的MariaDB相關yum包,包需要根據rpm指令的結果判斷
yum list mariadb-libs
-
移除已安裝的MariaDB相關的yum包,包名需根據yum list指令結果判斷
yum remove mariadb-libs
安裝MySQL
-
下載下傳MySQL rpm包
官網下載下傳位址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
-
依次執行以下指令(包之間有前後依賴關系,務必按以下順序安裝)
rpm -ivh mysql-community-common-5.7.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.17-1.el7.x86_64.rpm
如果執行上面第四個指令報錯,執行如下指令:
- yum -y install perl
- 下載下傳libaio rpm包:http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
- rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm
- yum -y install net-tools
- 資料庫初始化
- 執行mysqld --initialize --user=mysql初始化,之後會在/var/log/mysqld.log中生成一個root賬号密碼
- 啟動資料庫 systemctl start mysqld,并設定mysql開機自啟動 systemctl enable mysqld
- 登入 mysql -uroot -p
- 設定密碼 alter user ‘root’@‘localhost’ identified by ‘yourpasswd’;
-
建立叢集元件所必須的中繼資料庫,并給每個資料庫設定使用者名和密碼
create database hive default charset utf8 collate utf8_general_ci;
create database oozie default charset utf8 collate utf8_general_ci;
create database hue default charset utf8 collate utf8_general_ci;
create database amon default charset utf8 collate utf8_general_ci;
grant all on hive.* ‘hive’@’%’ identified by ‘123456’;
grant all on oozie .* ‘oozie ‘@’%’ identified by ‘123456’;
grant all on hue .* ‘hue ‘@’%’ identified by ‘123456’;
grant all on amon .* ‘amon ‘@’%’ identified by ‘123456’;
-
修改 /etc/my.cnf
my.cnf中配置參考https://www.cloudera.com/documentation/enterprise/5-15-x/topics/cm_ig_mysql.html#cmig_topic_5_5中步驟4。
8. 安裝 Cloudera Manager
-
下載下傳cloudera manger和CDH
下載下傳https://archive.cloudera.com/cm5/cm/5/,版本選擇 cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz。
下載下傳https://archive.cloudera.com/cdh5/parcels/5.15.0/,版本選擇CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel 和 CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1
- 解壓壓縮包,并進行必要的配置
- 将步驟1中下載下傳的CM壓縮包copy到/opt目錄下;
- 解壓 tar -zxvf cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz;
- 配置CM server的主機名:vi cm-5.15.0/etc/cloudera-scm-agent/config.ini ;
-
在所有節點上建立使用者,執行 useradd --system --home-dir /opt/cm-5.15.0/run/cloudera-scm-server/
–no-create-home --shell=/bin/false --comment “Cloudera SCM User” cloudera-scm;
- 将mysql資料庫驅動 mysql-connector-java-5.1.42-bin.jar 上傳到所有節點的/opt/cm-5.15.0/share/cmf/lib/ 目錄下;
-
為CM建立資料庫 /opt/cm-5.15.0/share/cmf/schema/scm_prepare_database.sh mysql -uroot
-pyourpasswd scm yourscm(yourpasswd是新使用者yourscm的密碼)
9. 啟動CM相關服務
- 叢集主節點上啟動Cloudera server: /opt/cm-5.15.0/etc/init.d/cloudera-scm-server start;
- 所有節點啟動Cloudera agent:/opt/cm-5.15.0/etc/init.d/cloudera-scm-agent start;
10. Web端操作
- 如果之前操作沒出現異常,那麼在浏覽器中通路 hostname:7180(預設使用者名密碼都為admin)就會出現以下界面:
Cloudera——Cloudera CDH叢集安裝部署1. 配置主機名2. 時間同步3. ssh免密登入4. 關閉防火牆5. 禁用SELinux6. 安裝Java環境7. 中繼資料庫安裝8. 安裝 Cloudera Manager9. 啟動CM相關服務10. Web端操作 - 使用預設賬戶密碼登入,之後出現如下界面: 選擇免費的那個版本即可,當然也可以購買使用Cloudera提供的進階功能。
Cloudera——Cloudera CDH叢集安裝部署1. 配置主機名2. 時間同步3. ssh免密登入4. 關閉防火牆5. 禁用SELinux6. 安裝Java環境7. 中繼資料庫安裝8. 安裝 Cloudera Manager9. 啟動CM相關服務10. Web端操作 - 選好版本之後,點繼續,出現以下界面: 将你配置的所有節點都勾選上,然後繼續。
Cloudera——Cloudera CDH叢集安裝部署1. 配置主機名2. 時間同步3. ssh免密登入4. 關閉防火牆5. 禁用SELinux6. 安裝Java環境7. 中繼資料庫安裝8. 安裝 Cloudera Manager9. 啟動CM相關服務10. Web端操作 - 選擇CDH版本
Cloudera——Cloudera CDH叢集安裝部署1. 配置主機名2. 時間同步3. ssh免密登入4. 關閉防火牆5. 禁用SELinux6. 安裝Java環境7. 中繼資料庫安裝8. 安裝 Cloudera Manager9. 啟動CM相關服務10. Web端操作 - 叢集元件配置
Cloudera——Cloudera CDH叢集安裝部署1. 配置主機名2. 時間同步3. ssh免密登入4. 關閉防火牆5. 禁用SELinux6. 安裝Java環境7. 中繼資料庫安裝8. 安裝 Cloudera Manager9. 啟動CM相關服務10. Web端操作 因為有些元件是沒必要在所有節點上都安裝的,建議将元件均衡的安裝到叢集節點上,而不是集中在某幾個節點上,否則可能會造成某些節點資源占用過多。Cloudera——Cloudera CDH叢集安裝部署1. 配置主機名2. 時間同步3. ssh免密登入4. 關閉防火牆5. 禁用SELinux6. 安裝Java環境7. 中繼資料庫安裝8. 安裝 Cloudera Manager9. 啟動CM相關服務10. Web端操作 -
安裝元件
選擇好要安裝的元件,點下一步,就會依次安裝這些元件。如果安裝過程中沒出什麼問題,那就大功告成了!
這裡貼出本人在安裝過程中遇到的問題:
1. 在測試Hive、Ooozie、Hue等的資料庫連接配接時,Hue報錯 Unexpected error. Unable to verify database connection
解決:選擇把Hue安裝在MySQL所安裝的主機上,并安裝以下包:
rpm -ivh mysql-community-libs-compat-5.7.20-1.el7.x86_64.rpm
yum install python-lxml
2. 安裝在過程中出現 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
将mysql驅動包[mysql-connector-java-5.1.42.jar](https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.42/mysql-connector-java-5.1.42.jar)拷貝到以下目錄:
/opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib/hive/lib
/opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib/oozie/lib
/opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib/oozie/libext
3. Cloudera Manager Web界面出現 Hue Load Balancer 運作狀況不良
yum -y install httpd
yum -y install mod_ssl