1 概述
本文是針對LinuxCentos7服務器與CDH5.11的安裝手冊。
1.2 關於CDH和ClouderaManager
CDH(Cloudera's Distribution, includingApache Hadoop),是Hadoop衆多分支中的一種,由Cloudera維護,基於穩定版本的Apache Hadoop構建,並集成了很多補丁,可直接用於生產環境。
ClouderaManager(本文以下簡稱爲CM)則是爲了便於在集羣中進行Hadoop等大數據處理相關的服務安裝和監控管理的組件,對集羣中主機、Hadoop、Hive、Spark等服務的安裝配置管理做了極大簡化。架構圖如圖1所示。
圖1
1.3 術語介紹
CM: Cloudera Manager (Cloudera公司專有的Hadoop集羣管控平臺);
CDH: Cloudera Distributed Hadoop(Cloudera公司重新打包發佈的Hadoop版本);
HDFS:分佈式文件系統;
HBASE: 基於HADOOP的分佈式、列式存儲數據庫;
HIVE: 基於大數據技術(文件系統+運算框架)的SQL數據倉庫工具;
MAPREDUCE: 分佈式運算程序開發框架;
SPARK:爲大規模數據處理而設計的快速通用的計算引擎;
ZOOKEEPER: 分佈式協調服務基礎組件;
YARN: 負責集羣資源的統一管理和調度,分配系統資源給各個應用程序。
2 環境要求
2.1 環境要求
Cloudera Manager5安裝遇到很多的問題,安裝ClouderaManager如果不注意,會成爲一部血淚史。爲了避免多次、重複安裝不成功,所以你需要具備以下條件。
1. 內存要足夠大,主機必須至少有10 GB的RAM;
2. 必須具有root或無密碼sudo訪問主機;
3. 如果使用root,則主機必須接受相同的root密碼;
4. 主機必須具有Internet訪問權限才能使嚮導從中安裝軟件 archive.cloudera.com;
5. 運行支持的操作系統:
RHEL兼容系統
Red Hat Enterprise Linux和 CentOS 5.7, 64位;
Red Hat Enterprise Linux和CentOS 6.4, 64位;
Red Hat Enterprise Linux和 CentOS 6.4 in SE Linux Mode;
Red Hat Enterprise Linux和 CentOS 6.5, 64位;
Oracle Enterprise Linux5.6(UEK R2),64位;
Oracle Enterprise Linux6.4(UEK R2),64位;
Oracle Enterprise Linux6.5(UEK R2,UEK R3),64位。
SLES - SUSE Linux Enterprise Server 11,64位。
Debian - Debian 7.0和7.1,64位。
Ubuntu - Ubuntu 12.04,64位。
2.1 主機規劃
本次我設定安裝5個節點的集羣環境,所以我們分配好ip地址和主機功能。以下是我的服務器信息,僅供參考:
序號 | 環境類型 | 具體名稱 | 數量 | IP地址 | 用途 | 規格詳細 | 備註 |
1 | 硬件 | Centos7-01 | 1 | 192.168.31.24 | 作爲cloudera agent | 內存:8G CPU:4核 硬盤:100G | 可支持虛擬環境 |
Centos7-02 | 1 | 192.168.31.25 | 作爲cloudera agent | 內存:8G CPU:4核 硬盤:100G | 可支持虛擬環境 | ||
Centos7-03 | 1 | 192.168.31.26 | 作爲cloudera agent | 內存:8G CPU:4核 硬盤:100G | 可支持虛擬環境 | ||
cmserver | 1 | 192.168.31.28 | 作爲cloudera Server | 內存:16G CPU:4核 硬盤:100G | 可支持虛擬環境 | ||
Centos7-06 | 1 | 192.168.31.29 | 作爲cloudera agent,和mysql數據庫 | 內存:8G CPU:4核 硬盤:100G | 可支持虛擬環境 |
2.2 軟件下載與安裝
CM下載地址:http://archive.cloudera.com/cm5/cm/5/
CDH下載地址:http://archive.cloudera.com/cdh5/parcels/5.11/
將以上安裝包上傳至服務器/tooles/目錄下。
3 服務器集羣準備
3.1 JDK安裝
略,
注:每臺都需要安裝,並配置環境變量。
3.2 Mysql安裝
略
注:主服務器上安裝,也可以安裝在其他主機上。
3.3 關閉防火牆
每臺主機執行以下命令:
1. 修改vi /etc/selinux/config文件,將SELINUX=enforcing改爲SELINUX=disabled。
2. systemctl stop firewalld #停止firewall
3. systemctl disable firewalld #禁止firewall開機啓動
4. systemctl status firewalld #查看默認防火牆狀態(關閉後顯示notrunning,開啓後顯示running)。
3.4 配置hosts
每臺主機執行以下命令修改配置文件,如圖2所示。
vi /etc/hosts
圖2
3.5 配置ntp時間同步
在每一臺服務器執行以下命令:
1. 下載ntp服務:yum -y installntp
2. Server端修改配置文件:vi /etc/ntp.conf
restrictdefault kod nomodify notrap nopeer noquery
restrict-6 default kod nomodify notrap nopeer noquery
restrict220.130.158.71
restrict59.124.196.83
restrict59.124.196.84
restrict127.0.0.1
restrict-6 ::1
restrict192.168.100.0 mask 255.255.255.0 nomodify
servertime1.aliyun.com prefer
server220.130.158.71
server59.124.196.83
server59.124.196.84
driftfile/var/lib/ntp/drift
keys /etc/ntp/keys
3. 在Agent端修改配置文件:vi/etc/ntp.conf
ftfile/var/lib/ntp/drift
restrict127.0.0.1
restrict-6 ::1
#配置時間服務器爲本地的時間服務器
server192.168.31.28 #ip爲服務器端的ip
restrict192.168.31.28 nomodify notrap noquery #ip同上
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
includefile/etc/ntp/crypto/pw
keys/etc/ntp/keys
輸入地址進行測試:ntpdate -u 192.168.31.28,如圖3所示。
圖3
4. 重啓服務:service ntpd start
5. 查看同步狀態:ntpstat
3.6 ssh免密碼登錄配置(每一臺)
1. 每臺主機配置免密,分別執行以下命令:
ssh-keygen -t rsa
2. 主服務器與其它服務器免密碼,在主節點上編輯以下命令發送到其他對應服務器:
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.31.28(每臺服務器對應ip)
4 Cloudrea Manager安裝
4.1 Server端安裝
1. 創建目錄:mkdir /opt/cloudera-manager
2. 解壓CM到/opt/cloudera-manager目錄下:
tar -zxvf /tooles/cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz-C /opt/cloudera-manager
3. 創建cloudera-scm用戶
useradd --system--home=/opt/cloudera-manager/cm-5.11.1/run/cloudera-scm-server --no-create-home--shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
4. 創建本地元數據存放的目錄
mkdir /var/cloudera-scm-server
5. 改變 cloudera-scm-server和cloudera-manager文件夾的屬主
chown cloudera-scm:cloudera-scm/var/cloudera-scm-server
chown cloudera-scm:cloudera-scm/opt/cloudera-manager
6. 修改配置文件,將本機做爲一個服務端(注:只能寫主機名,不能寫ip)
vi/opt/cloudera-manager/cm-5.11.1/etc/cloudera-scm-agent/config.ini
圖4
7. 創建parcel-repo倉庫目錄:
mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm/opt/cloudera/parcel-repo
8. 需要將CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha1改成CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha,否則安裝時會重新下載,很重要!!
mv / tooles /CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha1 / tooles/CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha
9. 將tooles下的其餘三個文件都複製到parcel-repo目錄下:
cp / tooles /CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel/opt/cloudera/parcel-repo
cp / tooles /CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha/opt/cloudera/parcel-repo
cp / tooles /manifest.json/opt/cloudera/parcel-repo
10.創建parcels存放目錄並改變屬主權限
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm/opt/cloudera/parcels
11.加入mysql的包
mkdir -p /usr/share/java
修改mysql的文件名:mv mysql-connector-java-5.1.25-bin.jar mysql-connector-java.jar
將包拷貝到:cp/keduox/5.11/mysql-connector-java.jar /usr/share/java/
12.初始化mysql
/opt/cloudera-manager/cm-5.11.1/share/cmf/schema/scm_prepare_database.shmysql –hcentos7-06 -uroot -p1234 --scm-host cmserver scmdbn root 1234
說明:這個腳本就是用來創建和配置CMS需要的數據庫的腳本。
各參數是指:
mysql:數據庫用的是mysql,如果安裝過程中用的oracle,那麼該參數就應該改爲oracle。
–hcentos7-06:數據庫建立在centos7-06主機上面。
-uroot:root身份運行mysql。
-p1234:mysql的root密碼是1234。
--scm-host cmserver:CMS的主機,一般是和mysql安裝的主機是在同一個主機上,也可指定其他主機。
最後三個參數是:數據庫名,數據庫用戶名,數據庫密碼。
10、啓動
cd/opt/cloudera-manager/cm-5.11.1/etc/init.d
./cloudera-scm-server start
./cloudera-scm-agent start
11、訪問 http://ip:7180
4.2 Agent端安裝
1. 創建目錄:mkdir /opt/cloudera-manager
2. 解壓CM到/opt/cloudera-manager目錄下:
tar -zxvf /tooles/cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz-C /opt/cloudera-manager
3. 創建cloudera-scm用戶
useradd --system--home=/opt/cloudera-manager/cm-5.11.1/run/cloudera-scm-server --no-create-home--shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
4. 修改配置文件,指向服務端主機名(注:只能寫主機名,不能寫ip)
vi/opt/cloudera-manager/cm-5.11.1/etc/cloudera-scm-agent/config.ini
圖5
5. 創建parcels存放目錄並改變屬主權限
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm/opt/cloudera/parcels
6. 進入到init.d文件夾啓動
cd/opt/cloudera-manager/cm-5.11.1/etc/init.d
./cloudera-scm-agent start
5 CDH集羣安裝
5.1 配置集羣主機
ClouderaManager瀏覽器默認管理賬號:
User:admin
Password:admin
首次登陸進入集羣安裝嚮導:
出現以上警告在所有主機上執行以下命令:
echo 10 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
5.2 安裝服務,包括hadoop,yarn,hbase等
檢查主機正確性後,點擊完成,進入集羣配置。
選擇要安裝的服務,可以選擇組合或自定義。
配置各節點間如何分配(注意: HDFS的Data Node 最少3個)
出現此頁面,表示安裝完成。
6 安裝時遇到的問題
6.1 節點啓動時找不到pstree命令
解決方法:安裝pstree
yum install -y psmisc
6.2 數據庫初始化時失敗
解決方法:在mysql數據庫下執行以下命令,給操作的用戶向下授權的權限。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY'1234' WITH GRANT OPTION;
重啓mysql服務:service mysqld restart