目錄
一.版本說明和介紹信息
1.1 大數(shù)據(jù)組件版本
1.2 Apache Components
1.3 Databases支持版本
二.安裝包上傳和說明
三.服務(wù)器基礎(chǔ)環(huán)境配置
3.1global配置修改
3.2主機(jī)名映射配置
3.3免密用戶名密碼配置
3.4 ansible安裝
四. 安裝Ambari-server
4.1 安裝ambari-server
4.2 檢查REPO源
五、HDP 安裝
Get Started
Select Version
Install Options
Confirm Hosts
Choose Services
Assign Masters
Assign Slaves and Clients
Customize Services
CREDENTIALS
DATABASES
DIRECTORIES
ACCOUNTS
ALL CONFIGURATIONS
Review
六、開啟Kerberos
6.1 kerberos服務(wù)檢查
6.2 Ambari啟動(dòng)kerberos
Get Started
Configure Kerberos
Install and Test Kerberos Client
Configure Identities
Confirm Configuration
Stop Services
Kerberize Cluster
Start and Test Services
七、開啟服務(wù)高可用
7.1 HBaseMaster高可用開啟
7.2 ResourceManager高可用開啟
7.3 NameNode高可用開啟
八、ranger權(quán)限開啟
8.1 ranger登錄
8.2 HDFS權(quán)限控制
8.3 HBase權(quán)限控制
8.4 Hive權(quán)限控制
8.5 Yarn權(quán)限控制
九、ansible自動(dòng)化安裝腳本
一.版本說明和介紹信息
1.1 大數(shù)據(jù)組件版本
組件 |
版本 |
os |
CentOS7.2-7.9 |
ambari |
2.7.4 |
HDP |
3.3.1.0 |
HDP-GPL |
3.3.1.0 |
HDP-UTILS |
1.1.0.22 |
JDK |
jdk-8u162-linux-x64.tar.gz |
MySQL |
5.7 |
1.2 Apache Components
組件名稱 |
Apache版本 |
Apache Ambari |
2.7.4 |
Apache Zookeeper |
3.4.6 |
Apache Hadoop |
3.1.1 |
Apache Hive |
3.1.0 |
Apache HBase |
2.0.2 |
Apache Ranger |
1.2.0.3.1 |
Apache Spark 2 |
2.3.0 |
Apache TEZ |
0.9.1 |
1.3 Databases支持版本
Name |
Version |
PostgreSQL |
10.7 10.5 10.2 9.6 |
MySQL |
5.7 |
MariaDB |
10.2 |
人大金倉 |
V8 |
二.安裝包上傳和說明
使用工具將安裝包上傳到Linux服務(wù)器(安裝ansible),上傳到/opt 目錄,如下命令進(jìn)入/opt目錄并解壓安裝包,包名日期可能有所變動(dòng),解壓完成需要等待5分鐘左右。如下操作使用root用戶完成。腳本在博客資源中可以下載,文章后面會(huì)有部分說明。
tar -zxvf windp-deploy-2.7.4_20240329.tar.gz
安裝包解壓后目錄結(jié)構(gòu):
cd /opt/windp-deploy
windp-deploy-dxxxxxxxx.tar.gz 包內(nèi)容說明
腳本和目錄 |
說明 |
ambari.yml |
ansible play-book 入口 |
component |
配置文件和安裝包 |
install_base_kdc.sh |
配置KDC |
install_mysql.sh |
MySQL安裝 |
install_repo.sh |
HDP源配置和Ambari安裝 |
config |
配置文件目錄 |
installDeployAmbari.sh |
安裝啟動(dòng)腳本 |
三.服務(wù)器基礎(chǔ)環(huán)境配置
3.1global配置修改
/opt為安裝目錄,默認(rèn)無需修改。修改完成后復(fù)制如下命令在Linux服務(wù)器命令行執(zhí)行后回車:
cat > /opt/windp-deploy/config/global.sh << EOF
#######################
#部署相關(guān)全局參數(shù)定義
#######################
# mysql配置
myurl=localhost
myuser=root
mypwd=Winner001
myport=3306
# HDP包解壓目錄
install_path=/hadoop
# mysql 安裝目錄
mysql_install_path=/usr/local
EOF
執(zhí)行如下命令,檢查文件是否保存成功。
cat /opt/windp-deploy/config/global.sh
3.2主機(jī)名映射配置
如下為主機(jī)hosts映射本地臨時(shí)文件,修改好后執(zhí)行如下命令(修改部分已標(biāo)紅),
cat > /opt/windp-deploy/autoDeployFiles/scripts/temphosts.txt << EOF
192.168.2.142 hdp-node1
192.168.2.143 hdp-node2
EOF
執(zhí)行如下命令,查看hosts是否配置成功。
cat /opt/windp-deploy/autoDeployFiles/scripts/temphosts.txt
3.3免密用戶名密碼配置
如下為主機(jī)名和密碼臨時(shí)文件,修改好后執(zhí)行如下命令(修改部分已標(biāo)紅),
cat > /opt/windp-deploy/autoDeployFiles/scripts/hostlist.txt << EOF
hdp-node1 winner@001
hdp-node2 winner@001
EOF
執(zhí)行如下命令,查看是否配置成功。
cat /opt/windp-deploy/autoDeployFiles/scripts/hostlist.txt
3.4 ansible安裝
執(zhí)行如下命令,查看ansible是否安裝,如若顯示版本信息則已安裝,則跳過此步驟。如若沒有顯示版本信息,則執(zhí)行下面的安裝命令。
ansible --version
如果沒有安裝執(zhí)行如下命令:
yum install epel-release -y
yum install ansible -y
再執(zhí)行查看ansible版本信息
也可以選擇離線安裝,執(zhí)行如下命令:
cd /opt/windp-deploy/config/ansible-rpm
yum install *.rpm -y
四. 安裝Ambari-server
4.1 安裝ambari-server
執(zhí)行如下命令,等待Ambari-Server 配置啟動(dòng)完成,需要等待20分鐘左右。
cd /opt/windp-deploy/
sh installDeployAmbari.sh
執(zhí)行如下命令,查看mysql是否啟動(dòng)成功,顯示如圖“running”則表示啟動(dòng)成功。
/etc/init.d/mysqld status
執(zhí)行如下命令,查看Ambari-Server是否啟動(dòng)成功,顯示如圖“running”則表示啟動(dòng)成功。
ambari-server status
如果Ambari-Server沒有啟動(dòng)成功,執(zhí)行如下命令嘗試重啟。
ambari-server restart
4.2 檢查REPO源
配置的REPO源可以在瀏覽器中查看。需要將示例IP地址換成部署WinDP Linux本機(jī)的IP。如下是示例IP地址:
http://192.168.2.142/ambari/
http://192.168.2.142/HDP/
http://192.168.2.142/HDP-UTILS/
http://192.168.2.142/HDP-GPL/
?
注意:如果某個(gè)地址從瀏覽器訪問失敗則說明配置的基礎(chǔ)環(huán)境有問題,需要檢查基礎(chǔ)環(huán)境的配置。
五、HDP 安裝
登錄Ambari-Server, 地址為IP:8080,示例地址:http://192.168.2.161:8080/,賬號(hào)密碼默認(rèn):admin。
第一次登錄進(jìn)去的默認(rèn)界面如下圖所示,點(diǎn)擊紅框按鈕。
Get Started
輸入集群名稱 “winner”,點(diǎn)擊NEXT
Select Version
選擇HDP的版本,這里使用的是3.1版本,repo選擇“Use Local Repository”
保留redhat7的地址 欄,其它系統(tǒng)選擇“Remove”
主機(jī)名需要修改,然后將如下URL 依次復(fù)制到Base URL 地址欄中,然后下一步
http://hdp-node1/HDP/centos7/3.1.4.0-315
http://hdp-node1/HDP-GPL/centos7/3.1.4.0-315
http://hdp-node1/HDP-UTILS/centos7/1.1.0.22
Install Options
- Target Hosts :
hdp-node1
hdp-node2
-
Host Registration Information: 選擇紅框Provide your?SSH Private Key?to automatically register hosts
在Linux服務(wù)器上執(zhí)行如下命令將私鑰下載到Windows本地
sz /root/.ssh/id_rsa
將下載的私鑰文件從本地上傳,點(diǎn)擊選擇“CHOOSE FILE”,選中“id_rsa”文件后選擇打開。
如下圖私鑰文件上傳完成,ssh的用戶和端口采用默認(rèn)root,我們選擇下一步
- SSH User Account: root
- SSH Port Number: 22
彈出Warning(一般是主機(jī)名不符合規(guī)范),可以忽略。
Confirm Hosts
等待服務(wù)器注冊(cè),如下的 check信息要檢查通過才行,可能會(huì)檢查出問題,需要解決后然后下一步。
點(diǎn)擊進(jìn)入 “?Click here to see the check results.” 可以檢查主機(jī)檢查項(xiàng)是否通過
,如果有問題說明基礎(chǔ)環(huán)境配置有問題,如果沒有問題,選擇“CLOSE”,下一步
Choose Services
選擇要安裝的組件: HDFS、YARN + MapReduce2、Tez、Hive、HBase、ZooKeeper、Infra Solr、Ambari Metrics、Ranger、Spark2, 默認(rèn)就是勾選的,選擇完成后下一步
如果有Warning 直接忽略安裝
Assign Masters
這一步我們根據(jù)服務(wù)器資源合理規(guī)劃服務(wù),不能將很多服務(wù)放在一臺(tái)服務(wù)器,也要將高可用服務(wù)分配在不用的服務(wù)器上。
Assign Slaves and Clients
選擇服務(wù)器上安裝客戶端和服務(wù)組件,默認(rèn)已選擇,下一步
Customize Services
CREDENTIALS
配置WEB登錄密碼, 我們統(tǒng)一使用 “winner@001”,密碼復(fù)制到所有的“password”框中,密碼已存在的框采用覆蓋。完成后下一步
DATABASES
點(diǎn)擊選擇database,配置hive數(shù)據(jù)庫,確保測(cè)試通過,Hive Database 選擇 Existing MySQL / MariaDB
- DatabaseName: hive
- Uesr: hive
- Database Password: Winner001
- DatabaseURL: jdbc:mysql://hdp-node1/hive
注意:測(cè)試連接不通過可以按照提示, 命令行手動(dòng)設(shè)置驅(qū)動(dòng)包的位置,執(zhí)行如下命令后嘗試再次測(cè)試連接:
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
點(diǎn)擊選中 “RANGER”,進(jìn)行ranger數(shù)據(jù)庫配置,確保測(cè)試通過
- DatabaseName: ranger
- Uesr: ranger
- Database Password: Winner001
- DatabaseURL: jdbc:mysql://hdp-node1:3306/ranger
- Ranger DB host:hdp-node1
設(shè)置完成后,下一步
DIRECTORIES
一般存儲(chǔ)數(shù)據(jù)和日志路徑要配置為數(shù)據(jù)盤目錄,需要提前規(guī)劃掛載數(shù)據(jù)盤。
如下是HDFS服務(wù):
HDFS、YARN 、 MapReduce2、Tez、Hive、HBase、ZooKeeper、Infra Solr、Ambari Metrics、Ranger、Spark2 等日志的路徑都要修改。修改完成后下一步。
ACCOUNTS
賬號(hào)信息確定,使用默認(rèn)配置,直接下一步
ALL CONFIGURATIONS
組件參數(shù)修改,根據(jù)資源大小自行修改,像NameNode ,HBase Master默認(rèn)都是1G ,根據(jù)生產(chǎn)環(huán)境資源情況自行修改,我們采用默認(rèn),下一步。
此步驟我們也可以完成HDFS數(shù)據(jù)目錄和日志目錄修改。
確認(rèn)下一步
Review
點(diǎn)擊DEPLOY
組件安裝中,安裝大概需要50分鐘左右
安裝完成,下一步, 如果某些組件安裝失敗我們需要查看日志分析原因。
點(diǎn)擊 COMPLETE
安裝完成,啟動(dòng)失敗的組件我們逐個(gè)查找原因解決就行。
六、開啟Kerberos
6.1 kerberos服務(wù)檢查
執(zhí)行如下命令,查看krb5kdc,kadmin服務(wù)是否啟動(dòng)成功,顯示如圖“running”則啟動(dòng)成功。
cd /opt/windp-deploy/
systemctl status krb5kdc.service
systemctl status kadmin.service
krb5kdc,kadmin檢查這兩個(gè)服務(wù)為 running 狀態(tài),如果沒有啟動(dòng)成功嘗試重啟。
如果沒有啟動(dòng),嘗試重啟服務(wù)命令如下:
cd /opt/windp-deploy/
systemctl restart krb5kdc.service
systemctl restart kadmin.service
6.2 Ambari啟動(dòng)kerberos
進(jìn)入Ambari 管理界面,選中啟用Kerberos,點(diǎn)擊“ENABLE KERBEROS”
Warning 不用理會(huì),點(diǎn)擊“PROCEED ANYWAY”
Get Started
如下圖選MIT KDC, 下面的三個(gè)框我們都要選上,下一步
Configure Kerberos
將如下配置復(fù)制到對(duì)應(yīng)的位置,確保測(cè)試通過,填好之后下一步(修改部分已標(biāo)紅)
- Kadmin host: hdp-node1
- Realm name: WINNER.COM
- Admin principal: admin/admin@WINNER.COM
- Admin password: winner@001
Install and Test Kerberos Client
Kerberos Client 安裝和測(cè)試完成之后,下一步
Configure Identities
默認(rèn) 直接下一步
Confirm Configuration
默認(rèn)直接下一步
Stop Services
停止所有服務(wù),等待執(zhí)行完成后下一步
Kerberize Cluster
全部通過后下一步 ,如若失敗嘗試重試解決問題。
Start and Test Services
啟動(dòng)全部服務(wù)并進(jìn)行測(cè)試,全部啟動(dòng)成功需要10分鐘左右
啟動(dòng)完成需要10分鐘左右,啟動(dòng)完后下一步
如果啟動(dòng)失敗進(jìn)行啟動(dòng)嘗試,或者沒有關(guān)系直接點(diǎn)擊COMPLETE ,然后查看啟動(dòng)不了的組件,逐個(gè)解決。
啟動(dòng)完成
七、開啟服務(wù)高可用
YARN和NameNode的高可用開啟至少需要 3個(gè)zookeeper Server。也就是說需要3臺(tái)服務(wù)器,否則我們也可以選擇不開啟服務(wù)高可用。
7.1 HBaseMaster高可用開啟
在ambari頁面上找到hbase的配置頁面點(diǎn)擊 add HBase Master
- Admin principal: admin/admin@WINNER.COM
- Admin password: winner@001
選擇新加的HBaseMaster的主機(jī)
安裝中,安裝完成后我們選擇OK
在HBase頁面選擇Restart All 重啟
如下圖可以看到 兩個(gè)HBASE MASTER,狀態(tài)分別是STANDBY和ACTIVE 表示 HBASE MASTER高可用開啟成功。
7.2 ResourceManager高可用開啟
yarn高可用配置,在ambari上找到y(tǒng)arn管理界面,點(diǎn)擊Enable ResourceManager HA
選擇下一步
選擇高可用開啟的另一臺(tái)服務(wù)器,我們選擇hdp-node2,然后下一步
REVIEW直接下一步
如上內(nèi)容填好后選擇 save
- Admin principal: admin/admin@WINNER.COM
- Admin password: winner@001
等待配置安裝完成,需要20分鐘左右,啟動(dòng)完成后選擇COMPLETE
如下圖可以看到啟動(dòng)全部完成
如圖RESOURCEMANAGER 狀態(tài)一個(gè)是STADDBY 另一個(gè)是ACTIVE。
7.3 NameNode高可用開啟
HDFS高可用配置,在ambari頁面上找到hdfs服務(wù),點(diǎn)擊actions ,選擇 Enable Namenode HA
填寫hdfs的namespace:winnercluster,確認(rèn)無誤后點(diǎn)擊next
選擇namenode和journalNode運(yùn)行的主機(jī),確認(rèn)無誤后點(diǎn)擊next
Review下hdfs高可用的配置,點(diǎn)擊Next
按照提示需要先給hdfs做一下checkpoint,這個(gè)時(shí)候next 按鈕是灰色的,等做完下面的操作后,點(diǎn)擊next按鈕即可。注意:切記看正確操作的服務(wù)器。
如下配置填入頁面表格
- Admin principal: admin/admin@WINNER.COM
- Admin password: winner@001
開始安裝等待安裝完成,然后下一步,大概需要15分鐘左右。如若失敗我們可以選擇重試。
按照提示在服務(wù)器上執(zhí)行命令初始化journalNode,完成后點(diǎn)擊next
Ambari啟動(dòng)所有相關(guān)的組件,啟動(dòng)完成后下一步。大概需要10分鐘左右。
按照下圖所示初始化元數(shù)據(jù)信息,執(zhí)行完成后下一步。注意:切記看正確操作的服務(wù)器,是在兩臺(tái)服務(wù)器完成命令執(zhí)行。
確認(rèn)操作完后,選擇OK
啟動(dòng)所有組件,大概需要15分鐘左右,有可能啟動(dòng)失敗,我們可以選擇重試或者定位具體啟動(dòng)失敗原因。
如下圖可以看到兩個(gè)NAMENODE,狀態(tài)分別是STANDBY和ACTIVE 表示 NAMENODE高可用開啟成功。
八、ranger權(quán)限開啟
8.1 ranger登錄
訪問圖中鏈接會(huì)跳轉(zhuǎn)到ranger登錄頁面,登錄失敗可能需要將主機(jī)名換成IP。
登錄ranger web頁面,用戶名:admin ,密碼:winnerxxxx
登錄后的頁面如下
我們需要添加winner_spark的服務(wù)組件操作權(quán)限。
8.2 HDFS權(quán)限控制
點(diǎn)擊進(jìn)入默認(rèn)的service設(shè)置頁面
點(diǎn)擊進(jìn)入Policy ID為1 的策略進(jìn)入編輯
添加winner_spark用戶
添加完成后 save保存。
Policy ID為2的策略也是編輯添加winner_spark 后 保存。winner_spark 用戶添加HDFS操作權(quán)限完成后如下圖
我們需要Policy ID 為1 策略中添加hive 用戶對(duì)HDFS操作權(quán)限,完成后如下圖
8.3 HBase權(quán)限控制
點(diǎn)擊進(jìn)入默認(rèn)的service設(shè)置頁面
點(diǎn)擊進(jìn)入Policy ID為4 的策略進(jìn)入編輯
添加winner_spark用戶
添加完成后 save保存。Policy ID為5的策略也是編輯添加winner_spark 后 保存。
winner_spark 用戶添加HBase操作權(quán)限完成后如下圖
8.4 Hive權(quán)限控制
點(diǎn)擊進(jìn)入默認(rèn)的service設(shè)置頁面
點(diǎn)擊進(jìn)入Policy ID為8 的策略進(jìn)入編輯
添加winner_spark用戶權(quán)限完成后 save保存。
剩下的Policy 策略也是編輯添加winner_spark 后 保存。
winner_spark 用戶添加Hive操作權(quán)限完成后如下圖
8.5 Yarn權(quán)限控制
點(diǎn)擊進(jìn)入默認(rèn)的service設(shè)置頁面
點(diǎn)擊進(jìn)入Policy ID為6 的策略進(jìn)入編輯
添加winner_spark用戶
剩下的Policy 策略也是編輯添加winner_spark 后 保存。
winner_spark 用戶添加Yarn操作權(quán)限完成后如下圖
九、Ansible自動(dòng)化安裝腳本
說明:腳本可以在博客資源中可以下載,如下是部署目錄結(jié)構(gòu)。
腳本入口 installDeployAmbari.sh
#!/bin/bash
#
# 腳本功能: 配置初始化,完成ambari-server安裝啟動(dòng)
# 作 者: kangll
# 創(chuàng)建時(shí)間: 2024-03-29
# 修改時(shí)間: 2024-03-29
# 當(dāng)前版本: 1.0v
# 調(diào)度周期: 一次性任務(wù)
# 腳本參數(shù): 無
#
#
. /etc/profile > /dev/null 2>&1
set -x
#set -e
# 請(qǐng)確保已經(jīng)按照部署文檔中事先配置好了, ./autoDeployFiles/scripts/hostlist.txt中的內(nèi)容以及temphosts.txt
# ./config/global.sh
BASEDIR=$(cd "$(dirname "$0")"; pwd)
scriptsDir=$BASEDIR/autoDeployFiles/scripts
cd ${scriptsDir}
if [ `rpm -qa |grep expect > /dev/null 2>&1;echo $?` -ne 0 ]; then
sudo yum install -y expect
fi
if [ `rpm -qa |grep ansible > /dev/null 2>&1;echo $?` -ne 0 ]; then
sudo yum install epel-release -y
sudo yum install ansible -y
fi
cat ${scriptsDir}/temphosts.txt |awk '{print $1,$2}' | while read vIP vHost
do
if [ `grep ${vHost} /etc/hosts > /dev/null 2>&1;echo $?` -ne 0 ]; then
echo "${vIP} ${vHost}" >> /etc/hosts
fi
done
# linux 免密
sh $scriptsDir/batchSendKey.sh
# linux hosts
for i in `cat ${scriptsDir}/temphosts.txt |awk '{print $2}' |grep -v \`hostname\`|xargs `
do
scp /etc/hosts $i:/etc/
done
# linux hosts
for i in `cat ${scriptsDir}/temphosts.txt |awk '{print $2}' |xargs `
do
ssh $i "sudo hostnamectl set-hostname $i"
done
source /etc/profile
ambari_server_source=`hostname`
sudo sed -i 's/windp-aio/'"${ambari_server_source}"'/g' $BASEDIR/ambari.yml
# ansible hosts
echo [all_node] > /etc/ansible/hosts
cat ${scriptsDir}/temphosts.txt |awk '{print $2}' >> /etc/ansible/hosts
echo "" >> /etc/ansible/hosts
# 默認(rèn)安裝ambariserver的服務(wù)器為控制端,也就是master節(jié)點(diǎn)
echo [master] >> /etc/ansible/hosts
echo `hostname` >> /etc/ansible/hosts
echo "" >> /etc/ansible/hosts
# 除當(dāng)前服務(wù)器的其他服務(wù)器為agent
echo [slave] >> /etc/ansible/hosts
cat ${scriptsDir}/temphosts.txt |awk '{print $2}' |grep -v `hostname` >> /etc/ansible/hosts
cd $BASEDIR
ansible-playbook ambari.yml
ambari.yml
---
# author: kangll
# date: 2024-04-03
# funtion: 離線自動(dòng)化部署ambari-server
# 版本要求:
# OS: Redhat7.2-CentOS7.9(僅支持該操作系統(tǒng)版本)
# ambari-2.7.4
# MySQL 5.7+/Python3+
#
- hosts: all_node
gather_facts: F
vars:
paths:
scriptsDir: /opt/windp-deploy/autoDeployFiles/scripts
JDKDir: ./autoDeployFiles/JDK
JAVA_HOME_PATH: /usr/java
packages:
jdk: jdk-8u162-linux-x64.tar.gz
tasks:
- include: ./component/setup_base_env.yml # 設(shè)置基礎(chǔ)環(huán)境
- include: ./component/setup_java_env.yml # 設(shè)置JAVA_HOME
remote_user: root
tags: jdk_base_env
- hosts: master
gather_facts: F
vars:
local_ambari_os_yum_repo: hdp-node1
paths:
MySQLDir: ./autoDeployFiles/MySQL
installScriptDir: /opt/windp-deploy
MySQLConfDir: ./autoDeployFiles/configFiles
driverDir: /usr/share/java
confDir: ./autoDeployFiles/configFiles
password:
mysql: Winner001
ambari: Winner001
hive: Winner001
packages:
mysql_driver: mysql-connector-java.jar
tasks:
- include: ./component/setup_mysql_server.yml # 創(chuàng)建用戶解壓MySQL包于/usr/local/mysql、MySQL初始化、修改root密碼
- include: ./component/setup_kdc_server.yml # 安裝配置kerberos
- include: ./component/setup_ambari_server.yml # 安裝并啟動(dòng)Ambari-server
remote_user: root
tags: mysql
- hosts: slave
gather_facts: F
vars:
paths:
repoTmpDir: ./config/repo
repoDir: /etc/yum.repos.d
krb5File: /etc/
keytabFile: /etc/security/keytabs
tasks:
- include: ./component/setup_hdp_repo.yml # repo,kerberos配置同步
remote_user: root
tags: repo
install_base_kdc.sh
#! /bin/bash
#
# Author: kangll
# CreateTime: 2024-03-10
# Desc: kerberos配置
#
#set -x
BASEDIR=$(cd "$(dirname "$0")"; pwd)
# 加載配置
source $BASEDIR/config/global.sh
# global.sh 配置文件中獲取
ssh_passwd="winner@001"
kerberos_user=winner_spark
hostName=`hostname`
########################
# 配置kerberos,安裝啟動(dòng)
########################
config_krb5() {
# kerberos server and client
sudo yum install krb5-server krb5-libs krb5-workstation -y
# config file
sudo cat $BASEDIR/config/krb5.conf > /etc/krb5.conf
# 修改為 kdc serve hostname
sudo sed -i 's/windp-aio/'"${hostName}"'/g' /etc/krb5.conf
sudo cat $BASEDIR/config/kdc.conf > /var/kerberos/krb5kdc/kdc.conf
sudo cat $BASEDIR/config/kadm5.acl > /var/kerberos/krb5kdc/kadm5.acl
echo "******* 創(chuàng)建kdc數(shù)據(jù)庫 *********"
/usr/bin/expect << eof
# 設(shè)置捕獲字符串后,期待回復(fù)的超時(shí)時(shí)間
set timeout 30
spawn kdb5_util create -s -r WINNER.COM $1@$2
## 開始進(jìn)連續(xù)捕獲
expect {
"Enter KDC database master key:" { send "${ssh_passwd}\n"; exp_continue }
"master key to verify:" { send "${ssh_passwd}\n"; exp_continue }
}
eof
echo "******** 創(chuàng)建admin實(shí)例 *********"
/usr/bin/expect << eof
# 設(shè)置捕獲字符串后,期待回復(fù)的超時(shí)時(shí)間
set timeout 30
spawn kadmin.local
## 開始進(jìn)連續(xù)捕獲
expect {
"kadmin.local:" { send "addprinc admin/admin\n"; exp_continue }
"Enter password for principal" { send "${ssh_passwd}\n"; exp_continue }
"Re-enter password for principal" { send "${ssh_passwd}\n"; }
}
expect "kadmin.local:" { send "quit\r"; }
eof
# start kdc and kadmin
sudo systemctl restart krb5kdc
sudo systemctl enable krb5kdc
sudo systemctl restart kadmin
sudo systemctl enable kadmin
# add linux user
sudo useradd winner_spark
# keytabs file path
sudo mkdir -p /etc/security/keytabs/
echo "********** kerberos installation completed **********"
}
##################################
# 配置kerberos用戶: winner_spark
# 生成keytab 文件
##################################
config_kerberos_user() {
echo "******** 創(chuàng)建winner_spark用戶實(shí)例 ********"
/usr/bin/expect << eof
# 設(shè)置捕獲字符串后,期待回復(fù)的超時(shí)時(shí)間
set timeout 30
spawn kadmin.local
## 開始進(jìn)連續(xù)捕獲
expect {
"kadmin.local:" { send "addprinc ${kerberos_user}\n"; exp_continue }
"Enter password for principal" { send "${ssh_passwd}\n"; exp_continue }
"Re-enter password for principal" { send "${ssh_passwd}\n"; }
}
expect "kadmin.local:" { send "quit\r"; }
eof
echo "******** winner_spark用戶生成keytab文件 ********"
/usr/bin/expect << eof
# 設(shè)置捕獲字符串后,期待回復(fù)的超時(shí)時(shí)間
set timeout 30
spawn kadmin.local
## 開始進(jìn)連續(xù)捕獲
expect {
"kadmin.local:" { send "xst -k /etc/security/keytabs/${kerberos_user}.keytab ${kerberos_user}@WINNER.COM\n"; }
}
expect "kadmin.local:" { send "quit\r"; }
eof
sleep 2s
# modify keytab file privilege
sudo chown ${kerberos_user}:${kerberos_user} /etc/security/keytabs/${kerberos_user}.keytab
echo "********** kerberos user winner_spark add completed **********"
}
# 配置kerberos,并啟動(dòng)
config_krb5
# 配置kerberos用戶: winner_spark, 生成keytab 文件
config_kerberos_user
install_mysql.sh
#! /bin/bash
#
# Author: kangll
# CreateTime: 2023-11-10
# Desc: install mysql5.7
#
set -x
echo "******** INSTALL MYSQL *********"
####################################
BASEDIR=$(cd "$(dirname "$0")"; pwd)
# 加載數(shù)據(jù)庫默認(rèn)連接信息
source $BASEDIR/config/global.sh
install_path=$mysql_install_path
hostname=`"hostname"`
#####################################
# 卸載原有的mariadb
OLD_MYSQL=`rpm -qa|grep mariadb`
profile=/etc/profile
for mariadb in $OLD_MYSQL
do
rpm -e --nodeps $mariadb
done
# 刪除原有的my.cnf
sudo rm -rf /etc/my.cnf
#添加用戶組 用戶
sudo groupadd mysql
sudo useradd -g mysql mysql
# 解壓mysql包并修改名稱
tar -zxvf $BASEDIR/autoDeployFiles/MySQL/mysql-5.7.44-el7-x86_64.tar.gz -C $install_path
sudo mv $install_path/mysql-5.7.44-el7-x86_64 $install_path/mysql
# 更改所屬的組和用戶
sudo chown -R mysql $install_path/mysql
sudo chgrp -R mysql $install_path/mysql
sudo mkdir -p $install_path/mysql/data
sudo mkdir -p $install_path/mysql/log
sudo chown -R mysql:mysql $install_path/mysql/data
# 粘貼配置文件my.cnf 內(nèi)容見八 中的 my.cnf
cp -f $BASEDIR/config/my.cnf $install_path/mysql/
# 安裝mysql
$install_path/mysql/bin/mysql_install_db --user=mysql --basedir=$install_path/mysql/ --datadir=$install_path/mysql/data/
# 設(shè)置文件及目錄權(quán)限:
cp $install_path/mysql/support-files/mysql.server /etc/init.d/mysqld
sudo chown 777 $install_path/mysql/my.cnf
sudo chmod +x /etc/init.d/mysqld
sudo mkdir /var/lib/mysql
sudo chmod 777 /var/lib/mysql
# 啟動(dòng)mysql
/etc/init.d/mysqld start
# 設(shè)置開機(jī)啟動(dòng)
chkconfig --level 35 mysqld on
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
# 修改環(huán)境變量
ln -s $install_path/mysql/bin/mysql /usr/bin
ln -s /var/lib/mysql/mysql.sock /tmp/
cat > /etc/profile.d/mysql.sh<<EOF
export PATH=$PATH:$install_path/mysql/bin
EOF
mysqlPw=`sed -n 2p /root/.mysql_secret`
mysqlPwTMP=`sed -n 2p /root/.mysql_secret`1
mysql -u$myuser -p$mysqlPw --connect-expired-password -e "SET PASSWORD = PASSWORD('${mypwd}');"
echo "******** MYSQL installation completed ********"
install_repo.sh文章來源:http://www.zghlxwxcb.cn/news/detail-851697.html
#! /bin/bash
#
# Author: kangll
# CreateTime: 2024-03-10
# Desc: 配置HDP repo
#
set -x
BASEDIR=$(cd "$(dirname "$0")"; pwd)
#
source $BASEDIR/config/global.sh
# HDP tar install path
config_path=$install_path
tar_name=$hdp_tar_name
source /etc/profile > /dev/null 2>&1
#ambari server源地址
if [ $# -eq 1 ] ;then
ambari_server_source=$1
else
ambari_server_source=`hostname`
fi
###########################
# 配置 HDP repo
###########################
config_repo() {
mkdir -p $config_path
if [ ! -d $config_path/hdp ];then
sudo mv $BASEDIR/autoDeployFiles/HDP/hdp $config_path
fi
sudo ln -s $config_path/hdp/ambari /var/www/html/ambari
sudo ln -s $config_path/hdp/HDP /var/www/html/HDP
sudo ln -s $config_path/hdp/HDP-GPL /var/www/html/HDP-GPL
sudo ln -s $config_path/hdp/HDP-UTILS /var/www/html/HDP-UTILS
sudo cp -f $BASEDIR/config/repo/*.repo /etc/yum.repos.d/
sudo sed -i 's/windp-aio/'"${ambari_server_source}"'/g' /etc/yum.repos.d/*.repo
sudo yum clean all
sudo yum makecache
sudo yum repolist
echo "********** repo installation completed **********"
}
###########################
# 初始化db
###########################
config_db() {
mysql -h${myurl} -u${myuser} -p${mypwd} < $BASEDIR/config/init_db.sql
mysql -h${myurl} -u${myuser} -p${mypwd} ambari < $BASEDIR/config/Ambari-DDL-MySQL-CREATE.sql
}
###########################
# install ambari
###########################
install_ambari() {
sudo yum install ambari-server -y
sudo mkdir -p /usr/share/java/
sudo cp -f $BASEDIR/config/mysql-connector-java.jar /usr/share/java/
sudo cat $BASEDIR/config/ambari.properties > /etc/ambari-server/conf/ambari.properties
sudo sed -i 's/localhost/'"${ambari_server_source}"'/g' /etc/ambari-server/conf/ambari.properties
sudo cp -f $BASEDIR/config/password.dat /etc/ambari-server/conf/
ambari-server restart
ambari-server status
}
######################################################
# 修改服務(wù) ambari,在安裝頁面隱藏 無需安裝的服務(wù)組件
######################################################
config_metainfo_modify(){
stack_path=/var/lib/ambari-server/resources/stacks/HDP
cat $BASEDIR/config/repo/services/ACCUMULO/metainfo.xml > $stack_path/3.0/services/ACCUMULO/metainfo.xml
cat $BASEDIR/config/repo/services/KAFKA/metainfo.xml > $stack_path/3.1/services/KAFKA/metainfo.xml
cat $BASEDIR/config/repo/services/PIG/metainfo.xml > $stack_path/3.1/services/PIG/metainfo.xml
cat $BASEDIR/config/repo/services/DRUID/metainfo.xml > $stack_path/3.0/services/DRUID/metainfo.xml
cat $BASEDIR/config/repo/services/LOGSEARCH/metainfo.xml > $stack_path/3.0/services/LOGSEARCH/metainfo.xml
cat $BASEDIR/config/repo/services/SUPERSET/metainfo.xml > $stack_path/3.0/services/SUPERSET/metainfo.xml
cat $BASEDIR/config/repo/services/ATLAS/metainfo.xml > $stack_path/3.1/services/ATLAS/metainfo.xml
cat $BASEDIR/config/repo/services/ZEPPELIN/metainfo.xml > $stack_path/3.0/services/ZEPPELIN/metainfo.xml
cat $BASEDIR/config/repo/services/STORM/metainfo.xml > $stack_path/3.0/services/STORM/metainfo.xml
cat $BASEDIR/config/repo/services/RANGER_KMS/metainfo.xml > $stack_path/3.1/services/RANGER_KMS/metainfo.xml
cat $BASEDIR/config/repo/services/OOZIE/metainfo.xml > $stack_path/3.0/services/OOZIE/metainfo.xml
cat $BASEDIR/config/repo/services/KNOX/metainfo.xml > $stack_path/3.1/services/KNOX/metainfo.xml
cat $BASEDIR/config/repo/services/SQOOP/metainfo.xml > $stack_path/3.0/services/SQOOP/metainfo.xml
cat $BASEDIR/config/repo/services/SMARTSENSE/metainfo.xml > $stack_path/3.0/services/SMARTSENSE/metainfo.xml
ambari-server restart
}
config_repo
config_db
install_ambari
config_metainfo_modify
文章來源地址http://www.zghlxwxcb.cn/news/detail-851697.html
到了這里,關(guān)于【Ambari】Ansible自動(dòng)化部署大數(shù)據(jù)集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!