離線部署 Cloudera Manager 5 和 CDH 5.12.1 及使用 CDH 部署 Hadoop 集羣服務

Cloudera Manager

Cloudera Manager 分爲兩個部分:CDH和CM。

CDH是Cloudera Distribution Hadoop的簡稱,顧名思義,就是cloudera公司發佈的Hadoop版本,封裝了Apache Hadoop,提供Hadoop所有的服務,包括HDFS,YARN,MapReduce以及各種相關的components:HBase, Hive, ZooKeeper,Kafka等。

CM是cloudera manager的簡稱,是CDH的管理平臺,主要包括CM server, CM agent。通過CM可以對CDH進行配置,監測,報警,log查看,動態添加刪除各種服務等。

一、準備工作

環境

JDK:1.8  
centos:7.3

操作系統:CentOS 6
JDK 版本:1.7.0_80

所需安裝包及版本說明:由於我們的操作系統爲CentOS7,需要下載以下文件:

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

CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel

CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1

manifest.json

Cloudera Manager 下載目錄
http://archive.cloudera.com/cm5/cm/5/

CDH 下載目錄
http://archive.cloudera.com/cdh5/parcels/5.12.1/

manifest.json 下載
http://archive.cloudera.com/cdh5/parcels/5.12.1/manifest.json

CHD5 相關的 Parcel 包放到主節點的/opt/cloudera/parcel-repo/目錄中

CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 重命名爲 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha

本文所有軟件包,百度網盤鏈接http://pan.baidu.com/s/1eSALjAq 密碼:vqhg

這點必須注意,否則,系統會重新下載 CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel 文件

本文采用離線安裝方式,在線安裝方式請參照官方文

主機名 ip地址 安裝服務
node1 (Master) 192.168.252.121 jdk、cloudera-manager、MySql
node2 (Agents) 192.168.252.122 jdk、cloudera-manager
node3 (Agents) 192.168.252.123 jdk、cloudera-manager
node4 (Agents) 192.168.252.124 jdk、cloudera-manager
node5 (Agents) 192.168.252.125 jdk、cloudera-manager
node6 (Agents) 192.168.252.126 jdk、cloudera-manager
node7 (Agents) 192.168.252.127 jdk、cloudera-manager

二、系統環境搭建

1、網絡配置(所有節點)

修改 hostname

命令格式

hostnamectl set-hostname <hostname>

依次修改所有節點 node[1-7]

hostnamectl set-hostname node1

重啓服務器

reboot

修改映射關係

1.修改所有節點 /etc/hosts 文件下添加如下內容

$ vi /etc/hosts

2.查看修改後的/etc/hosts 文件內容

[root@node7 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.252.121 node1
192.168.252.122 node2
192.168.252.123 node3
192.168.252.124 node4
192.168.252.125 node5
192.168.252.126 node6
192.168.252.127 node7

2、SSH 免密碼登錄

1.在集羣node1的 /etc/ssh/sshd_config 文件去掉以下選項的註釋

vi /etc/ssh/sshd_config 
RSAAuthentication yes      #開啓私鑰驗證
PubkeyAuthentication yes   #開啓公鑰驗證

2.將集羣node1 修改後的 /etc/ssh/sshd_config 通過 scp 命令複製發送到集羣的每一個節點

for a in {2..7} ; do scp /etc/ssh/sshd_config node$a:/etc/ssh/sshd_config ; done

3.生成公鑰、私鑰

1.在集羣的每一個節點節點輸入命令 ssh-keygen -t rsa -P '',生成 key,一律回車

ssh-keygen -t rsa -P ''

4.在集羣的node1 節點輸入命令

將集羣每一個節點的公鑰id_rsa.pub放入到自己的認證文件中authorized_keys;

for a in {1..7}; do ssh root@node$a cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys; done

5.在集羣的node1 節點輸入命令

將自己的認證文件 authorized_keys 通過 scp 命令複製發送到每一個節點上去: /root/.ssh/authorized_keys`

for a in {1..7}; do scp /root/.ssh/authorized_keys root@node$a:/root/.ssh/authorized_keys ; done

6.在集羣的每一個節點節點輸入命令

接重啓ssh服務

sudo systemctl restart sshd.service

7.驗證 ssh 無密登錄

開一個其他窗口測試下能否免密登陸

例如:在node3

ssh root@node2

exit 退出

3、關閉防火牆

systemctl stop firewalld.service

4、關閉 SELINUX

查看

[root@node1 ~]# getenforce
Enforcing
[root@node1 ~]# /usr/sbin/sestatus -v
SELinux status:  

臨時關閉

## 設置SELinux 成爲permissive模式
## setenforce 1 設置SELinux 成爲enforcing模式
setenforce 0

永久關閉

vi /etc/selinux/config

SELINUX=enforcing 改爲 SELINUX=disabled

設置後需要重啓才能生效

PS 我是修改node1/etc/selinux/config 後,把配置文件複製到其他節點

for a in {2..7}; do scp /etc/selinux/config root@node$a:/etc/selinux/config ; done

重啓所有節點

reboot

5、安裝 JDK

下載Linux環境下的jdk1.8,請去(官網)中下載jdk的安裝文件

我在百度雲盤分下的鏈接:http://pan.baidu.com/s/1jIFZF9s 密碼:u4n4

上傳在 /opt 目錄

解壓

cd /opt
tar zxvf jdk-8u144-linux-x64.tar.gz
mv jdk1.8.0_144/ /lib/jvm

配置環境變量

vi /etc/profile
#jdk
export JAVA_HOME=/lib/jvm
export JRE_HOME=${JAVA_HOME}/jre   
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib   
export PATH=${JAVA_HOME}/bin:$PATH 

使環境變量生效

source /etc/profile

驗證

[root@localhost ~]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

6、設置 NTP

所有節點安裝 NTP

yum install ntp

設置同步

ntpdate -d 182.92.12.11

7、安裝配置 MySql

主節點 安裝 MySql

MySQL依賴於libaio 庫

yum search libaio
yum install libaio

下載,解壓,重命名

通常解壓在 /usr/local/mysql

mysql-5.7.19-linux-glibc2.12-x86_64 文件夾,重命名成mysql,這樣就湊成/usr/local/mysql目錄了

cd /opt/
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz
tar -zxvf /opt/mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
mv /usr/local/mysql-5.7.19-linux-glibc2.12-x86_64/ /usr/local/mysql

1. 新建用戶組和用戶

groupadd mysql
useradd mysql -g mysql

2. 創建目錄並授權

cd /usr/local/mysql/ 
mkdir data mysql-files
chmod 750 mysql-files
chown -R mysql .
chgrp -R mysql .

3. 初始化MySQL

bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up

4. 注意密碼 mysql 臨時密碼

[注意]root@localhost生成臨時密碼:;b;s;)/rn6A3,也就是root@localhost:後的字符串
2017-09-24T08:34:08.643206Z 1 [Note] A temporary password is generated for root@localhost: D<qha)5gtr<!

5. 授予讀寫權限

chown -R root .
chown -R mysql data mysql-files

6. 添加到MySQL 啓動腳本到系統服務

cp support-files/mysql.server /etc/init.d/mysql.server

7. 給日誌目錄授予讀寫權限

mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb

8. 修改 /etc/my.cnf

vi /etc/my.cnf

修改 [mysqld]組下的 socket 路徑,註釋掉/var/lib/mysql/mysql.sock,加一行爲tmp/mysql.soc

[mysqld]
datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
socket=/tmp/mysql.sock

9.啓動MySQL服務

service mysql.server start

或者

/usr/local/mysql/support-files/mysql.server start

10. 登錄MySQL

/usr/local/mysql/bin/mysql -uroot -p
Enter password: 

如果不知道密碼
密碼在,安裝MySQL步驟 4 ,有提到,怎麼找初始化臨時密碼

11. 設置MySQL密碼

登陸成功後,設置MySQL密碼

mysql> ALTER USER   'root'@'localhost' identified by 'mima';
mysql> flush privileges;

12. 開啓遠程登錄

mysql> grant all privileges on *.*  to  'root'@'%'  identified by 'mima'  with grant option;
mysql> flush privileges;
mysql> exit;

8、下載依賴包

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

三、cloudera manager Server & Agent 安裝

1、安裝 CM Server & Agent

在所有節點,創建/opt/cloudera-manager

mkdir /opt/cloudera-manager

把下載好的cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz安裝包上傳至 node1 節點/opt/目錄

在 node1 節點拷貝 cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz 到所有 Server、Agent 節點創建 /opt/cloudera-manager 目錄:

for a in {2..7}; do scp /opt/cloudera-manager-*.tar.gz root@node$a:/opt/ ; done

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

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

2、創建用戶 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.12.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

3、配置 CM Agent

修改 node1 節點

/opt/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/config.ini中的server_host爲主節點的主機名。

cd /opt/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/
vi config.ini

在node1 操作將 node1 節點修改後的 (複製到所有節點)

for a in {1..7}; do scp /opt/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/config.ini root@node$a:/opt/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/config.ini ; done

4、配置 CM Server 的數據庫

在主節點 node1 初始化CM5的數據庫:

下載 mysql 驅動包

cd /opt/cloudera-manager/cm-5.12.1/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

啓動MySQL服務

service mysql.server start
cd /opt/cloudera-manager/cm-5.12.1/share/cmf/schema/

./scm_prepare_database.sh mysql cm -h node1 -uroot -pmima --scm-host node1 scm scm scm

看到如下信息,恭喜您,配置沒毛病

[main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!

格式:

scm_prepare_database.sh mysql cm -h <hostName> -u<username>  -p<password> --scm-host <hostName>  scm scm scm

對應於:數據庫類型  數據庫 服務器 用戶名 密碼  –scm-host  Cloudera_Manager_Server 所在節點……

5、創建 Parcel 目錄

Manager 節點創建目錄/opt/cloudera/parcel-repo,執行:

將下載好的文件

CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha
manifest.json

拷貝到該目錄下。

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

重命名,CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 否則,系統會重新下載 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel

mv CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha

Agent 節點創建目錄/opt/cloudera/parcels,執行:

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

6、啓動 CM Manager&Agent 服務

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

在 node1 (master) 執行:

Server

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

在 node2-7 (Agents) 執行:

Agents

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

訪問 http://Master:7180 若可以訪問(用戶名、密碼:admin),則安裝成功。

Manager 啓動成功需要等待一段時間,過程中會在數據庫中創建對應的表需要耗費一些時間。

四、CDH5 安裝

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

圖片描述

圖片描述

圖片描述

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

圖片描述

各個 Agent 節點正常啓動後,可以在當前管理的主機列表中看到對應的節點。

圖片描述

選擇要安裝的節點,點繼續。

圖片描述

點擊,繼續,如果配置本地 Parcel 包無誤,那麼下圖中的已下載,應該是瞬間就完成了,然後就是耐心等待分配過程就行了,大約 10 多分鐘吧,取決於內網網速。

(若本地 Parcel 有問題,重新檢查步驟三、5 是否配置正確)

圖片描述

圖片描述

點擊,繼續,如果配置本地Parcel包無誤,那麼下圖中的已下載,應該是瞬間就完成了,然後就是耐心等待分配過程就行了,大約10多分鐘吧,取決於內網網速。

圖片描述

圖片描述

遇到問題

問題一
接下來是服務器檢查,可能會遇到以下問題:

Cloudera 建議將 /proc/sys/vm/swappiness 設置爲最大值 10。當前設置爲 30。

使用 sysctl 命令在運行時更改該設置並編輯 /etc/sysctl.conf,以在重啓後保存該設置。

您可以繼續進行安裝,但 Cloudera Manager 可能會報告您的主機由於交換而運行狀況不良。以下主機將受到影響:node[2-7]

echo 0 > /proc/sys/vm/swappiness

問題二
已啓用透明大頁面壓縮,可能會導致重大性能問題。請運行
echo never > /sys/kernel/mm/transparent_hugepage/defragecho never > /sys/kernel/mm/transparent_hugepage/enabled
以禁用此設置,然後將同一命令添加到 /etc/rc.local 等初始化腳本中,以便在系統重啓時予以設置。以下主機將受到影響: node[2-7]

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

圖片描述

圖片描述

圖片描述

圖片描述

圖片描述

圖片描述

圖片描述

圖片描述

五、腳本

MySql 建庫&&刪庫

1、MySql 建庫&&刪庫

amon

create database amon DEFAULT CHARACTER SET utf8; 
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';

hive

create database hive DEFAULT CHARACTER SET utf8; 
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';

oozie

create database oozie DEFAULT CHARACTER SET utf8; 
grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';

Contact

  • 作者:鵬磊
  • 出處:http://www.ymq.io
  • Email:[email protected]
  • 版權歸作者所有,轉載請註明出處
  • Wechat:關注公衆號,搜雲庫,專注於開發技術的研究與知識分享

關注公衆號-搜雲庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章