大資料HDP叢集搭建(生產環境實戰版)
阿新 • • 發佈:2021-09-13
安裝可參考:https://blog.csdn.net/z3225167/article/details/92803720
https://blog.csdn.net/m0_37739193/article/details/77479948
及官方文件:https://docs.hortonworks.com/HDPDocuments/Ambari-2.4.2.0/bk_ambari-installation/content/download_the_ambari_repo.html
版本相容性可參考:https://docs.hortonworks.com/ (官網)
https://supportmatrix.hortonworks.com/
官網:https://docs.cloudera.com/HDPDocuments/HDP2/HDP-2.6.4/index.html
https://docs.cloudera.com/HDPDocuments/Ambari/Ambari-2.6.2.2/index.html
一:基礎環境配置
1、所有節點關閉防火牆及selinux
systemctl stop firewalld
systemctl disable friewalld
setenforce 0
sed -i‘s/SELINUX=enforcing/SELINUX=disabled/g’/etc/selinux/config
2、修改主機名配置hosts檔案 及 主節點到各個節點免密登陸
/etc/hosts /etc/hostname
hostname hadoop-dn02
bash
for i in {1..35};do scp /etc/hosts hadoop-dn$i:/etc;done
for i in {45..80};do ssh [email protected].$i“hostnamectl set-hostname hostname ;“done
”
hostnamectl set-hostname hostname
3、開啟檔案和程序限制,核心引數配置
/etc/security/limits.conf /etc/security/limits.d/20-nproc.conf /etc/sysctl.conf
4、建立你想要安裝的應用的資料目錄(可選)
(一般來說在安裝的時候ambari會自動建立)
mkdir /data/hadoop
mkdir /data/hbase
mkdir /data/zookeeper
5、自建 JDK(所有節點)
(1)解除安裝自帶JDK
rpm -qa |grep java |xargs -i rpm -e --nodeps {}
(2)安裝1.8 版本JDK
6、時間同步配置
RHEL7開始預設已安裝chrony,而沒有安裝ntpd.
chrony相容ntpdate,客戶端可以使用ntpdate手動同步時間
systemctl restart chronyd.service
systemctl enable chronyd.service
服務端:
#vim/etc/chrony.conf --修改配置檔案
#server 0.rhel.pool.ntp.org iburst --註釋這4行,由於是內網環境,所以無法跟外部時間伺服器進行時間同步。
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
server 127.127.1.0 iburst --新增這一行,表示與本機同步時間
# Allow NTP client access from local network.
allow 192.168.100.0/24 --允許哪些伺服器到這臺伺服器來同步時間
# Serve time even if not synchronized to any NTP server.
local stratum 10 # 預設不開啟,意思是,即使服務端沒有同步到精確的網路時間,也允許向客戶端同步不精確的時間。
客戶端:
vim /etc/chrony.conf
#server 0.rhel.pool.ntp.org iburst --註釋這4行,由於是內網環境,所以無法跟外部時間伺服器進行時間同步。
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
server 192.168.1.3 iburst --新增這一行,與客戶端同步
7、配置本地yum源,安裝http (主伺服器)
上傳 相應版本映象 ,掛載
配置本地源 /etc/yum.repos.d/local.repo
yum clean all ;yum repolist
yum -y install httpd ;systemctl enable httpd
8、下載ambari HDP HDP-UTILS 包 並解壓至 /var/www/html/下
https://docs.cloudera.com/HDPDocuments/Ambari-2.7.3.0/bk_ambari-installation/content/hdp_31_repositories.html
https://docs.cloudera.com/HDPDocuments/Ambari-2.7.4.0/bk_ambari-installation/content/hdp_314_repositories.html
9、製作本地源
(1)安裝本地源製作相關工具(主伺服器)
yum install yum-utils createrepo yum-plugin-priorities -y
(2)製作ambari hdp hdp-utils源包(各個節點)
主伺服器上配置 ambari 和hdp的網路源
進入/var/www/html/ 中,進入 ambari各個包中執行 (或者建立hdp資料夾在hdp資料夾下執行)
createrepo ./
cd /etc/yum.repos.d
vim ambari.repo
[ambari-2.7.3.0] name=ambari Version - ambari-2.7.3.0 baseurl=http://192.168.200.10/hdp/ambari/centos7/2.7.3.0 gpgcheck=0 enabled=1 [HDP-3.1.0.0] name=HDP Version - HDP-3.1.0.0 baseurl=http://192.168.200.10/hdp/HDP/centos7/3.1.0.0 gpgcheck=0 enabled=1 [HDP-UTILS-1.1.0.22] name=HDP-UTILS Version - HDP-UTILS-1.1.0.22 baseurl=http://192.168.200.10/hdp/HDP-UTILS/centos7/1.1.0.22 gpgcheck=0 enabled=1
vim hdp-gpl.repo
[HDP-GPL-3.1.0.0] name=HDP-GPL Version - HDP-GPL-3.1.0.0 baseurl=http://192.168.200.10/hdp/HDP-GPL/centos7/3.1.0.0 gpgcheck=0 enabled=1
yum celan all;yum makecache;yum repolist
配置完成後分發至各個節點
二:安裝ambari-server
1、首先 yum -y install ambari-server 下載ambari-server
然後安裝mysql5.7
http://note.youdao.com/noteshare?id=b101df23f9902d2c7ff546970b590115
2 安裝好MySQL之後的配置:建立ambari-server需要用到的庫表
create database ambari character set utf8 ;
CREATE USER 'ambari'@'%'IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
匯入ambari需要的表
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
show tables;
如果還要搭其他服務 比如hive
create database hive character set utf8 ;
CREATE USER 'hive'@'%'IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
建立mysql與ambari-server的連線
網上下載mysql-connector-java-8.0.18.jar放到root檔案下,注意目錄必須按照下面規定得否則無法啟動
yum -y install mysql-connector-java
mkdir /usr/share/java mv mysql-connector-java-8.0.18.jar mysql-connector-java.jar cp mysql-connector-java.jar /usr/share/java/mysql-connector-java.jar cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar
vim /etc/ambari-server/conf/ambari.properties
新增
server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar
安裝hive的話一定要執行(不安裝也可以執行)
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
3、開始配置ambari
[root@master ~]# ambari-server setup
下面是配置執行流程,按照提示操作
(1) 提示是否自定義設定。輸入:y
Customize user account for ambari-server daemon [y/n] (n)? y
(2)ambari-server 賬號。
Enter user account for ambari-server daemon (root):
如果直接回車就是預設選擇root使用者
如果輸入已經建立的使用者就會顯示:
Enter user account for ambari-server daemon (root):ambari
Adjusting ambari-server permissions and ownership...
(3)檢查防火牆是否關閉
Adjusting ambari-server permissions and ownership...
Checking firewall...
WARNING: iptables is running. Confirm the necessary Ambari ports are accessible. Refer to the Ambari documentation for more details on ports.
OK to continue [y/n] (y)?
直接回車
(4)設定JDK。輸入:3
Checking JDK...
Do you want to change Oracle JDK [y/n] (n)? y
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
==============================================================================
Enter choice (1): 3
如果上面選擇3自定義JDK,則需要設定JAVA_HOME。輸入:/usr/local/java/jdk1.8.0_121
WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.
Path to JAVA_HOME: /home/tools/jdk1.8.0_121
Validating JDK on Ambari Server...done.
Completing setup...
Checking GPL software agreement...
GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? y
Completing setup...
Configuring database...
(5)資料庫配置。選擇:y
Configuring database...
Enter advanced database configuration [y/n] (n)? y
(6)選擇資料庫型別。輸入:3
Configuring database...
==============================================================================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
==============================================================================
Enter choice (3): 3
(7)設定資料庫的具體配置資訊,根據實際情況輸入,如果和括號內相同,則可以直接回車。如果想重新命名,就輸入。
Hostname (localhost):
Port (3306):
Database name (ambari):
Username (ambari):
Enter Database Password (bigdata):ambari
Re-Enter password: ambari
Should ambari use existing default jdbc /usr/share/java/mysql-connector-java.jar [y/n] (y)? y
Configuring remote database connection properties...
(8)將Ambari資料庫指令碼匯入到資料庫
WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
Proceed with configuring remote database connection properties [y/n] (y)?
ambari-setup有一個略過GPL認證的選項!!!!(安裝LZO需要)
啟動
ambari-server start
chkconfig --add ambari-server
啟動日誌檢視
tail -f /var/log/ambari-server/ambari-server.log
所有節點安裝ambari-agent
[root@master ~]# yum -y install ambari-agent
啟動命令 ambari-agent start /status/ stop
[root@master ~]# chkconfig --add ambari-agent
chkconfig --add ambari-server
然後再進入ambari-server管理介面
賬號密碼預設都為admin
http://192.168.0.171:8080
日誌位置位於 /var/log/ambari-*
這兩個包是在安裝叢集的時候需要的(在部署叢集之前批量分發到每個節點rpm安裝)
https://files.cnblogs.com/files/zgngg/libtripc.zip
rpm -ivh libtirpc-0.2.4-0.16.el7.x86_64.rpm libtirpc-devel-0.2.4-0.16.el7.x86_64.rpm
三、安裝配置部署HDP叢集
1、訪問Ambari web頁面
預設埠8080,Username:admin;Password:admin;http://192.168.0.171:8080
2、開始叢集安裝
3、配置叢集名稱
4、版本選擇、新增本地源連結
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? y
GPL認證 選擇是在前面 ambari-setup 中選擇的 ,就會出現GPL的源配置
tips:搭建完成後如有源包位置變動、需要修改配置,在
admin → Manage Ambari → Clusters 下的 Versions → 點選右側出來介面的版本號,進入即可看到
5、叢集目前擁有的節點和金鑰配置 id_rsa
6、主機確認
注意此處的檢查資訊,一定要為綠色通過,不然後續可能會有問題
如果是黃色或者紅色,點進去看具體節點問題,排查解決後,重新檢查
7、選擇需要安裝的元件
8、資源節點分配
9、分配從屬和客戶端
10、定製服務
配置 路徑 、資源等(資源分配根據叢集資源)
11、安裝完成後下一步則進入監控介面
五:HA搭建
進入 ambari介面上 ,選擇hdfs服務 ,最左側actions 點開,會有一個 HA namenode的選項,點進去之後,類似前面建立步驟 建立namenode HA即可
兩個NameNode為了資料同步,會通過一組稱作JournalNodes的獨立程序進行相互通訊。當active狀態的NameNode的名稱空間有任何修改時,會告知大部分的JournalNodes程序。standby狀態的NameNode有能力讀取JNs中的變更資訊,並且一直監控edit log的變化,把變化應用於自己的名稱空間。standby可以確保在叢集出錯時,名稱空間狀態已經完全同步了。