天天看點

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

0x、環境說明

直接購買3台阿裡雲的ECS(配置4C/32G/30G系統盤+1T資料盤)

購買時先在阿裡雲生成一個密鑰對,把.pem私鑰儲存到本地,然後購買時選擇使用密鑰進行無密碼SSH登陸,注意統一使用該密鑰對進行鏡像部署。

服務開通後,進行如下操作。

一、配置hostname和hosts

1. 三台機器分别設定hostname為(需要重新開機ECS):

  • master.bd.cn
  • slave1.bd.cn
  • slave2.bd.cn

2. 然後三台的/etc/hosts統一配置如下映射:

<master.bd.cn的内網IP>  master.bd.cn
<slave1.bd.cn的内網IP>  slave1.bd.cn
<slave2.bd.cn的内網IP>  slave2.bd.cn           

二、配置三台ECS之間無密碼SSH登陸

1. 将之前下載下傳的.pem私鑰上傳到三台機器的/root/.ssh/目錄下。

# 重命名密鑰
mv xxx.pem id_rsa
# 修改檔案權限
chmod 600 id_rsa           

2. 然後分别通過ssh通路進行驗證,例如:

ssh [email protected]           

如果登陸不成功,請自行排查問題。

三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)

1. 建立實體分區

我們隻有一個資料盤,預設的位置是在/dev/vdb

可以有以下幾種方法檢視目前系統中的磁盤:

fdisk -l
lsblk
parted -l           

 對/dev/vdb進行分區:

fdisk /dev/vdb

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x4710ccf3.

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 11943039
Partition 1 of type Linux and of size 5.7 GiB is set

Command (m for help): wq
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

           

2. 基于實體分區建立邏輯卷

邏輯卷(LVM)

當我們建立了了一個分區之後,它的大小便固定了,這個不利于之後的擴充,為此有了LVM,它可以動态地改變分區的大小。

LVM中主要有以下三個概念:

  • PV(Physical Volume):即實體分區或者磁盤。
  • VG(Volume Group):卷組,多個PV組成一個VG,VG就像一個池子一樣。
  • LV(Logic Volume):邏輯卷,在VG上建立出來的對機器可見的分區,有自己的檔案系統。

雖然LVM可以使用裸盤作為PV,但是并不推薦這麼做,推薦先對磁盤進行分區,在用于LVM。

LVM使用步驟

使用LVM主要分為以下幾步:

  1. 通過實體分區建立PV
  2. 通過PV建立VG
  3. 在VG上建立LV
  4. 格式化LV
  5. 挂載LV

ECS Centos7.4預設沒有lvm管理包,先安裝lvm

yum install lvm*           

通過指令建立PV

pvcreate /dev/vdb1

# 建立名為LVMVG的組
vgcreate LVMVG /dev/vdb1 

# 建立并将所有空間配置設定給lv1
lvcreate -l 100%FREE -n lv1 LVMVG

# 格式化lv1
mkfs.ext4 /dev/LVMVG/lv1           

3. 将邏輯卷挂載到/opt目錄

mount /dev/LVMVG/lv1 /opt

# 配置自動挂載
echo /dev/LVMVG/lv1 /opt ext4 defaults 0 0 >> /etc/fstab           

其他一些指令:

# umount
umount /opt

# 删除LV/VG/PV
lvremove /dev/LVMVG/lv1
vgremove LVMVG
pvremove /dev/vdb1           

四、安裝JDK和Mysql

1. 3台ECS都要安裝JDK (注意,請直接安裝oracle jdk,不要使用openjdk,不然CDH不支援,後續還需要重新安裝jdk)

yum install java-1.8.0-openjdk           

2. master.bd.cn主節點單獨安裝mysql

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
yum localinstall mysql57-community-release-el7-8.noarch.rpm
yum install mysql-community-server
systemctl start mysqld
systemctl enable mysqld
systemctl daemon-reload

# 檢視root初始密碼
grep 'temporary password' /var/log/mysqld.log

# 登陸mysql
mysql -p

# 修改root密碼
mysql> ALTER USER   'root'@'localhost' identified by '密碼<數字+大小寫字母+特殊字元+最少8位>';
mysql> flush privileges;

# 開啟遠端登陸
mysql> grant all privileges on *.*  to  'root'@'%'  identified by '密碼'  with grant option;
mysql> flush privileges;
mysql> exit;           

五、安裝依賴包

yum -y install chkconfig
yum -y install bind-utils
yum -y install psmisc
yum -y install libxslt
yum -y install zlib
yum -y install sqlite
yum -y install cyrus-sasl-plain
yum -y install cyrus-sasl-gssapi
yum -y install fuse
yum -y install portmap
yum -y install fuse-libs
yum -y install redhat-lsb           

六、準備CDH離線安裝

Cloudera Manager 下載下傳目錄

http://archive.cloudera.com/cm5/cm/5/

CDH 下載下傳目錄

http://archive.cloudera.com/cdh5/parcels/5.15.0/

manifest.json 下載下傳

http://archive.cloudera.com/cdh5/parcels/5.15.0/manifest.json

CHD5 相關的 Parcel 包放到主節點的

/opt/cloudera/parcel-repo/

目錄中

CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1

 重命名為 

CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha

這點必須注意,否則,系統會重新下載下傳 

CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel

 檔案

在3台ECS上均建立檔案夾/opt/cloudera-manager

mkdir /opt/cloudera-manager           

把下載下傳好的

cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz

安裝包上傳至 master.bd.cn 節點

/opt/

目錄

在 master.bd.cn 節點拷貝 

cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz

 到所有節點:

scp cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz [email protected]:/opt/
scp cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz [email protected]:/opt/           

所有ECS節點解壓安裝 Cloudera Manager Server & Agent

cd /opt
tar xvzf cloudera-manager*.tar.gz -C /opt/cloudera-manager           

七、開始部署SCM

1. 建立使用者 cloudera-scm(所有節點)

cloudera-scm 使用者說明,摘自官網:

Cloudera Manager Server and managed services are configured to use the user account cloudera-scm by default, creating a user with this name is the simplest approach. This created user, is used automatically after installation is complete.

Cloudera管理器伺服器和托管服務被配置為在預設情況下使用使用者帳戶Cloudera-scm,建立具有這個名稱的使用者是最簡單的方法。建立使用者,在安裝完成後自動使用。

執行:在所有節點建立cloudera-scm使用者

useradd --system --home=/opt/cloudera-manager/cm-5.15.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm           

2. 配置 CM Agent

修改 master.bd.cn節點

/opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/config.ini

中的

server_host

為主節點的主機名。

在 master.bd.cn 操作将 master.bd.cn節點修改後的 (複制到所有節點)

scp /opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/config.ini [email protected]:/opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/config.ini

scp /opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/config.ini [email protected]:/opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/config.ini           

3. 配置 CM Server 的資料庫

在主節點 master.bd.cn 初始化CM5的資料庫:

下載下傳 mysql 驅動包:

cd /opt/cloudera-manager/cm-5.15.0/share/cmf/lib
wget http://maven.aliyun.com/nexus/service/local/repositories/hongkong-nexus/content/Mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar           

初始化資料庫: 

cd /opt/cloudera-manager/cm-5.15.0/share/cmf/schema/

./scm_prepare_database.sh mysql -hmaster.bd.dp -uroot -p密碼 --scm-host master.bd.dp cm scm 密碼           

參數說明:

參數 說明
mysql 資料庫用的是mysql,如果安裝過程中用的oracle,那麼該參數就應該改為oracle
-hhadoop1 資料庫建立在hadoop1主機上面,也就是主節點上面.
-uroot 以root使用者運作mysql
-p123456 mysql使用者
--scm-host CMS的主機,一般是和mysql安裝的主機是在同一個主機上
最後三個參數 分别為資料庫名稱、資料庫使用者名、資料庫密碼

4. 配置CDH本地安裝源

建立 Parcel 目錄

master.bd.cn 節點建立目錄

/opt/cloudera/parcel-repo

然後将下載下傳好的檔案

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
manifest.json      

拷貝到該目錄下。

mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
cd /opt/cloudera/parcel-repo      

重命名,

CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1

 否則,系統會重新下載下傳 

CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel

mv CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1 CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha      

slave1.bd.cn和slave2.bd.cn 節點建立目錄/opt/cloudera/parcels,執行:

mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels      

5. 啟動 CM Manager&Agent 服務

注意,mysql 服務啟動,防火牆關閉

master.bd.cn節點執行:

/opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-server start
/opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent start           

slave1和slave2節點執行:

/opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent start           

通路 http://master.bd.cn:7180 若可以通路(使用者名、密碼:admin),則安裝成功。

Manager 啟動成功需要等待一段時間,過程中會在資料庫中建立對應的表需要耗費一些時間。

八、開始安裝CDH

CM Manager && Agent 成功啟動後,登入前端頁面進行 CDH 安裝配置。

admin / admin 登入後

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題
3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

免費版本的 CM5 已經去除 50 個節點數量的限制。

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

各個 Agent 節點正常啟動後,可以在目前管理的主機清單中看到對應的節點。

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

選擇要安裝的節點,點繼續。如果配置本地 Parcel 包無誤,那麼下圖中的已下載下傳,應該是瞬間就完成了,然後就是耐心等待配置設定過程就行了,大約 10 多分鐘吧,取決于内網網速。

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

點選繼續,開始安裝。

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題
3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題
3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

可看到檢查有兩個問題。

1)已啟用透明大頁面壓縮,可能會導緻重大性能問題。請運作    

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled             

以禁用此設定,然後将同一指令添加到 /etc/rc.local 等初始化腳本中,以便在系統重新開機時予以設定。

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

2)不支援openjdk,手工安裝oracle jdk

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

下載下傳oracle jdk 1.8 rpm安裝包 

下載下傳位址

上傳到3台ECS上,執行安裝

yum install jdk-8u181-linux-x64.rpm           

解決後,重新檢測。如果出現問題,請重新安裝CDH,見本文最後章節《CDH安裝失敗了,如何重新安裝》

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題
3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題
3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題
3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

這一步需要我們手工建立對應的資料庫,暫時都用一個mysql服務,修改資料庫主機均為master.bd.cn。

建立資料庫,推薦使用utf8mb4字元集,并配置設定scm使用者權限給hive庫(當然也可以建立個hive使用者)

CREATE DATABASE `hive` CHARACTER SET 'utf8mb4';

GRANT Select, Alter, Alter Routine, Create, Create Routine, Create Temporary Tables, Create View, Delete, Drop, Event, Execute, Index, Insert, Lock Tables, References, Show View, Trigger, Update ON `hive`.* TO `scm`@`master.bd.dp`;           
CREATE DATABASE `hue` CHARACTER SET 'utf8mb4';

GRANT Alter, Alter Routine, Create, Create Routine, Create Temporary Tables, Create View, Delete, Drop, Event, Execute, Index, Insert, Lock Tables, References, Select, Show View, Trigger, Update ON `hue`.* TO `scm`@`master.bd.dp`;           
CREATE DATABASE `am` CHARACTER SET 'utf8mb4';

GRANT Alter, Alter Routine, Create, Create Routine, Create Temporary Tables, Create View, Delete, Drop, Event, Execute, Index, Insert, Lock Tables, References, Select, Show View, Trigger, Update ON `am`.* TO `scm`@`master.bd.dp`;           
CREATE DATABASE `oozie` CHARACTER SET 'utf8mb4';

GRANT Alter, Alter Routine, Create, Create Routine, Create Temporary Tables, Create View, Delete, Drop, Event, Execute, Index, Insert, Lock Tables, References, Select, Show View, Trigger, Update ON `oozie`.* TO `scm`@`master.bd.dp`;           

點選測試,如果報錯:

JDBC driver cannot be found. Unable to find the JDBC database jar on host : slave2.bd.dp.

需要下載下傳jdbc到lib目錄下:

cd /opt/cloudera-manager/cm-5.15.0/share/cmf/lib/

wget http://maven.aliyun.com/nexus/service/local/repositories/hongkong-nexus/content/Mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar           

重新測試連結,通過後,繼續

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

自行修改,繼續

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

通過Cloudera Manager添加Hive服務,在啟動Hive的時候遇到錯誤:

.org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

這種情況是缺少jdbc驅動,于是添加jdbc驅動到相應的包下面。報的錯中提示了lib路徑,添加一下即可。(注意,最好所有節點都這樣執行一次)

cd /opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib/hive/lib/

wget http://maven.aliyun.com/nexus/service/local/repositories/hongkong-nexus/content/Mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar           

然後點選“Resume”重試。

很可能oozie也沒有,注意看日志資訊,是從 /usr/share/java/mysql-connector-java.jar 自動複制,是以執行:

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題
cp mysql-connector-java-5.1.38.jar /usr/share/java/mysql-connector-java.jar           

然後重試,完成

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題
3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

可能遇到的一些問題:

1. hue的load balancer無法啟動

解決:安裝httpd和mod_ssl

yum -y install httpd

yum -y install mod_ssl           

2. HDFS NFS Gateway 無法啟動、挂載失敗問題

解決:HDFS NFS Gateway工作需要依附 rpcbind 服務,是以啟動前需要确定rpcbind服務正常開啟。 service rpcbind start

但是HDFS NFS 服務會與系統自帶的NFS服務沖突,是以在啟動前需要關閉系統自帶的NFS服務。service nfs stop

service nfs stop
service rpcbind start           

3. HDFS-副本不足的塊

原因是設定的副本備份數與DataNode的個數不比對。

我們在之前理論篇中已經說明了dfs. replication屬性預設是3,也就是說副本數---塊的備份數預設為3份。

但是我們這裡叢集隻有兩個DataNode。是以導緻了達不到目标---副本備份不足。

解決方法

這種情況下的修複有2個步驟,1是設定目标備份數為2,2是通過指令更改目前備份數。

副本不足和副本過多都可以用這2個步驟解決,主要是跟DataNode的個數對應。

設定目标備份數為2

點選叢集-HDFS-配置

搜尋dfs. replication,設定為2後儲存更改。

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

dfs.replication這個參數其實隻在檔案被寫入dfs時起作用,雖然更改了配置檔案,但是不會改變之前寫入的檔案的備份數。

是以我們還需要步驟2

在cm0中通過指令更改備份數:

su hdfs
hadoop fs -setrep -R 2 /           

這裡的-R 2的數字2就對應我們的DataNode個數。

如果遇到safe mode無法執行,則先執行解除safemode指令:

hadoop dfsadmin -safemode leave           

九、安裝 Kafka 元件

1. 配置并配置設定 Kafka parcel 包

    在 Web 頁面中,主機 -> Parcel 裡面會列出目前叢集以配置和配置設定的 parcel 包,目前隻配置了 CDH5,Kafka 單獨存在于其他 parcel 包中,是以需要單獨加載 parcel ,然後配置設定到叢集内各節點。 

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

Cloudera官方Kafka元件的parcel包下載下傳位址為:http://archive.cloudera.com/kafka/parcels/latest/ 照舊下載下傳 percel 檔案,以及該檔案的 sha1 串,然後重命名 ***.sha1 為 ***.sha 方可。

下載下傳好以上兩個檔案後,放到 master.bd.cn 節點的 /opt/cloudera/parcel-repo/ 目錄下 

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

無需重新開機 server 守護程序,在頁面即可線上重新整理、配置設定、激活。

2. 叢集内安裝 Kafka 服務

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

這裡需要确認和修改 2 個預設配置

  • 複制程序,預設為1,修改為 3(視業務量而定)
  • 分區數,預設分區數為 50,這裡暫且保留。
  • 删除舊topic,預設打開,不做更改。

業務端口為 9092 。

啟動可能會遇到OOM的錯誤,導緻無法啟動

Fatal error during KafkaServerStartable startup. Prepare to shutdown

java.lang.OutOfMemoryError: Java heap space

解決:

登入到kafka運作的節點,修改kafa啟動腳本:

vi /opt/cloudera/parcels/KAFKA-3.1.0-1.3.1.0.p0.35/lib/kafka/bin/kafka-server-start.sh           

添加最後一行啟動指令前一行添加 export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"

3台阿裡雲ECS安裝CDH大資料叢集過程(CentOS7.4+獨立資料盤)0x、環境說明一、配置hostname和hosts二、配置三台ECS之間無密碼SSH登陸三、挂載資料盤到/opt目錄(後面CDH會部署到這裡)四、安裝JDK和Mysql五、安裝依賴包六、準備CDH離線安裝七、開始部署SCM八、開始安裝CDH九、安裝 Kafka 元件附1:CDH安裝失敗了,如何重新安裝附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

然後在CM中重試即可。

附1:CDH安裝失敗了,如何重新安裝

1> 删除Agent節點的UUID 

      # rm -rf /opt/cloudera-manager/cm-5.15.0/lib/cloudera-scm-agent/*

2>  清空主節點CM資料庫

      進入主節點的Mysql資料庫,然後drop database cm;

3> 删除Agent節點namenode和datanode節點資訊

     # rm -rf /opt/dfs/nn/*

     # rm -rf /opt/dfs/dn/*

4> 在主節點上重新初始化CM資料庫

5> 執行啟動腳本

     主節點:# /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-server start

     Agent節點:# /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent start

過一會兒,即可通過主節點的7180端口重新進行CDH的安裝 http://主節點IP:7180/cmf/login。

附2:HUE執行Oozie-Sqoop1指令式找不到msyql driver問題

cd /opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib/sqoop/
wget http://maven.aliyun.com/nexus/service/local/repositories/hongkong-nexus/content/Mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar           

然後重新開機Oozie和Hue服務。