centos7安裝CDH-5.12.1

1.1 CM簡介

1.1.0 下載鏡像

# 建議使用centos6
# centos鏡像下載
https://blog.csdn.net/Aria_Miazzy/article/details/84750427

1.1.0 參考地址

https://www.cnblogs.com/MWCloud/p/11342883.html

1.1.1 CM簡介

​ Cloudera Manager是一個擁有集羣自動化安裝、中心化管理、集羣監控、報警功能的一個哦你根據,使得安裝集羣從幾天的時間縮短在幾個小時內,運維人員從數十人降低到幾人以內,極大的提高集羣管理的效率。

在這裏插入圖片描述

1.2 環境準備

1.2.1 虛擬機準備

# 配置好對應主機的網絡IP、主機名稱、關閉防火牆、SELINUX
設置hadoop01、hadopp02、hadoop03的主機對應內存分別事:16G、4G、4G

1.2.2 SSH免密登錄

# 生成ssh密鑰
ssh-keygen -t rsa

cd ~/.ssh
ls 

# 在主節點(hadoop01)上將公鑰拷到一個特定文件authorized_keys中
cp id_rsa.pub authorized_keys

# 把authorized_keys拷貝到hadoop02上
scp authorized_keys root@hadoop02:~/.ssh/

# 登錄hadoop02主機
cd .ssh/
cat id_rsa.pub >> authorized_keys
# 在把authorized_keys拷貝到hadoop03上
scp authorized_keys root@hadoop03:~/.ssh/

# 登錄hadoop03主機
cd .ssh/
cat id_rsa.pub >> authorized_keys
# 把生成好的authorized_keys拷貝到hadoop01,hadoop02
scp authorized_keys root@hadoop01:~/.ssh/
scp authorized_keys root@hadoop02:~/.ssh/

# 驗證免密登錄
使用ssh 用戶名@節點名或ssh ip地址命令驗證免密碼登錄
ssh root@hadoop02

# 第二種,針對root賬號
# 每臺服務器上,生成ssh密鑰
ssh-keygen -t rsa
# 在hadoop01
# hadoop01服務器上會自動生成authorized_keys
ssh-copy-id hadoop02  
ssh-copy-id hadoop03
# 在hadoop02
ssh-copy-id hadoop01
ssh-copy-id hadoop03
# 在hadoop03
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh免密登錄原理
A服務器
# 生成ssh密鑰,生成一對公鑰和私鑰
ssh-keygen -t rsa

# 把A服務器的公鑰(id_rsa.pub) 拷貝到 B服務器(授權authorized_keys)

A服務器 ssh訪問B(數據用私鑰A加密)  B服務器接收到數據後,去授權key中查找A公鑰,並解密數據
B採用A公鑰加密的數據返回給A  A服務器接收到數據後,用A的私鑰解密數據

在這裏插入圖片描述

1.2.3 安裝JDK8

### wget下載jdk8
​```shell
https://blog.csdn.net/u014700139/article/details/89960494
# 把下載好的jdk拷貝到hadoop02,hadoop03,hadoop04
scp -r -P 22 jdk.xxx.gz root@hadoop02:~/
scp -r -P 22 jdk.xxx.gz root@hadoop03:~/
​```

### 配置JDK環境

​```shell
tar -zxvf jdk.tat.gz -C /opt/module/

# 配置java環境
vim /etc/profile
# Java
export JAVA_HOME=/opt/module/jdk1.8.0_241
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

cat >> /etc/profile << EOF
# Java
export JAVA_HOME=/opt/module/jdk1.8.0_241
export CLASSPATH=\$JAVA_HOME/lib/
export PATH=\$PATH:\$JAVA_HOME/bin
EOF

# 使環境變量生效
source /etc/profile

# 驗證java安裝
java -version
​```
### 

1.2.4 安裝Mysql5.6

# 安裝Mysql5.6
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum –y install mysql-server

systemctl start mysqld
systemctl enable mysqld

# 進入mysql,無密碼
SET PASSWORD=PASSWORD('123456');   # 修改密碼
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

# 一定要做下面的操作
use mysql;
select User, Host, Password from user;
update user set host='%' where host='localhost';
delete from user where Host='hadoop101';
delete from user where Host='127.0.0.1';
delete from user where Host='::1';

flush privileges;
quit;

1.2.5 創建CM用的數據庫

# 集羣監控數據庫
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

# Hive數據庫
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

# Oozie數據庫
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

# Hue數據庫
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

# 關閉數據庫
quit;

1.2.6 下載第三方依賴

# 所有Agent的節點
sudo yum install -y chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb

1.2.7 安裝ntp

# 每一臺
# 安裝ntp
yum -y install ntp
# 設置開機啓動 
systemctl enable ntpd
systemctl start ntpd
# 設置時間同步
ntpdate 202.120.2.101

1.2.8 關閉防火牆

# 關閉防火牆
systemctl stop firewalld

# 關閉自啓動
systemctl disable firewalld

# centos6
關閉防火牆 /etc/init.d/iptables stop
關閉防火牆開機自啓:chkconfig iptables off
防火牆狀態:/etc/init.d/iptables status

1.2.9 關閉SELINUX

臨時關閉

setenforce 0

永久關閉

# 修改配置文件
sudo vim /etc/selinux/config
# 將 SELINUX=enforcing 改爲 SELINUX=disabled
# 然後重啓
reboot

1.3 CM安裝部署

1.3.1 CM下載地址

# CM下載地址
http://archive.cloudera.com/cm5/cm/5
# 離線庫下載地址
http://archive.cloudera.com/cdh5/parcels

# 下載centos6版本
cloudera-manager-el6-cm5.12.1_x86_64.tar.gz
CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel
CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1
manifest.json

# 這個是cento7下載的版本
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

1.3.2 CM安裝

注:一下所有操作均使用root用戶

# 1、創建/opt/module/cm 目錄(hadoop01)
mkdir -p /opt/module/cm

# 2、上傳cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz到hadoop01的/opt/software目錄
tar -zxvf cloudera-manager-el6-cm5.12.1_x86_64.tar.gz -C /opt/module/cm

# 3、分別在hadoop01、hadoop02、hadoop03創建用戶cloudera-scm
useradd \
--system \
--home=/opt/module/cm/cm-5.12.1/run/cloudera-scm-server \
--no-create-home \
--shell=/bin/false \
--comment "Cloudera SCM User" cloudera-scm

參數說明:
--system 創建一個系統賬戶
--home 指定用戶登入時的主目錄,替換系統默認值/home/<用戶名>
--no-create-home 不要創建用戶的主目錄
--shell 用戶登錄的 shell名
--comment 用戶的描述信息
注意:Cloudera Manager默認去找用戶 cloudera-scm ,創建完該用戶後,將自動使用此用戶

1.3.3 修改CM Agent配置

# 修改文件/opt/module/cm/cm-5.12.1/etc/cloudera-scm-agent/config.ini的主機名稱
server_host=hadoop01

1.3.4 配置CM的數據庫

下載數據庫驅動
https://blog.csdn.net/qq_41950447/article/details/90085170
數據庫驅動下載
wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz
拷貝mysql5.6驅動
# 拷貝 mysql-connector-java-5.1.48-bin.jar 文件到目錄 /usr/share/java
mkdir -p /usr/share/java
cp -r /opt/software/mysql-connector-java-5.1.27-bin.jar /usr/share/java/
# 修改名字,因爲文件/opt/module/cm/cm-5.12.1/etc/cloudera-scm-agent/config.ini裏最後一行引用的就是該路徑的名字
mv /usr/share/java/mysql-connector-java-5.1.27-bin.jar /usr/share/java/mysql-connector-java.jar

1.3.5 使用CM自帶腳本

配置CM Server數據庫
拷貝mysql jar文件到目錄 /usr/share/java/

注意jar包名稱要修改爲mysql-connector-java.jar

方式一:
	/opt/module/cm/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -h hadoop01 -uroot -p123456 --scm-host hadoop01 scm scm scm
	格式:數據庫類型、數據庫、數據庫服務器、用戶名、密碼、cm server服務器

方式二:
	create database cm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
	create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
	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;
	grant all on cm.* TO 'cm'@'%' IDENTIFIED BY '123456';
	grant all on amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
	grant all on hive.* TO 'hive'@'%' IDENTIFIED BY '123456';
	grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';
	grant all on hue.* TO 'hue'@'%' IDENTIFIED BY '123456';
	flush privileges;
	
	主節點修改server的配置:
	vim /opt/module/cm/cm-5.12.1/etc/cloudera-scm-server/db.properties
	com.cloudera.cmf.db.type=mysql
	com.cloudera.cmf.db.host=hadoop01
	com.cloudera.cmf.db.name=cm
	com.cloudera.cmf.db.user=root
	com.cloudera.cmf.db.password=123456
	com.cloudera.cmf.db.setupType=EXTERNAL
# 使用CM自帶腳本,在Mysql中創建CM庫
/opt/module/cm/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -h hadoop01 -uroot -p123456 --scm-host hadoop01 scm scm scm

# 執行上面如果報錯,添加數據庫用戶scm,並授權
CREATE USER 'scm'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'scm'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;

注意:如果這個不行的話,就使用上面的第二種方法

# 數據庫遠程連接密碼和服務器連接密碼:123456

# 參數說明
--scm-host:SCM server's hostname

1.3.6 分發cm

xsync /opt/module/cm

1.3.7 創建Parcel-repo(離線目錄)

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

1.3.8 拷貝和下載文件

# 拷貝下載文件manifest.json、CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1、CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel到hadoop01的/opt/cloudera/parcel-repo目錄下
mv CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel* /opt/cloudera/parcel-repo/
mv manifest.json /opt/cloudera/parcel-repo/

1.3.9 改文件名

# 將 CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1 改名爲:CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha
mv CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1 CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha

1.3.10 修改目錄權限

# 在 hadoop01 上創建目錄 /opt/cloudera/parcels,並修改該目錄的所屬用戶及用戶組爲 cloudera-scm
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

1.3.11 分發/opt/cloudera

xsync /opt/cloudera

1.3.12 啓動CM服務

# 1、啓動服務節點:hadoop01,等一段時間
/opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-server start 

# 2、啓動工作節點:hadoop01、hadoop02、hadoop03
/opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start

# 查看日誌
cd /opt/module/cm/cm-5.12.1/log/cloudera-scm-agent
cd /opt/module/cm/cm-5.12.1/log/cloudera-scm-server

# 注意:
啓動過程非常慢,Manager啓動成功需要等待5分支左右,過程中會在數據庫中創建對應的表需要耗費一些時間

# 3、產看被佔用則表示安裝成功了
netstat -nltp | grep 7180

# 4、訪問http://hadoop01:7180 (用戶名、密碼:admin)

1.3.13 CentOS 6 安裝 CDH 5.12.1

https://www.cnblogs.com/MWCloud/p/11342883.html
CentOS 7 安裝 CDH 5.12.1

1.3.14 CDH視頻

https://www.bilibili.com/video/BV1mE411h7

1.4 其它

1.4.1 xsync工具

#!/bin/bash
#1 獲取輸入參數個數,如果沒有參數,直接退出
pcount=$#
if [ $pcount == 0 ]; then
    echo "no args"
    exit;
fi

#2 獲取文件名稱
p1=$1
fname=`basename $p1`
echo "fname=$fname"

#3 獲取上級目錄到絕對路徑
pdir=`cd -P $( dirname $p1 );pwd`
echo "pdir=$pdir"

#4 獲取當前用戶名稱
user=`whoami`

#5 循環
for (( host = 02; host <= 03; host++ )); do
    echo ------------------ hadoop0$host ------------------
    rsync -rvl $pdir/$fname $user@hadoop0$host:$pdir
done

1.4.2 xcall工具

  • 在所有主機上同時執行相同的命令
  • 在/usr/local/bin目錄下創建xcall文件
  • 修改腳本xcall具有執行權限
  • 調用腳本形式:xcall 操作命令
#!/bin/bash
pcount=$#
if [ pcount == 0 ]; then
    echo "no args";
    exit;
fi

echo ----------- localhost -----------
$@
for (( host = 2; host <= 3; host++ )); do
    echo ----------- hadoop0$host ------------------
    ssh hadoop0$host $@
done

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