1、使用vm建立5臺Centos7虛擬機器器
(主機數不定,但通常,至少應使用三臺主機:一臺主機和兩臺從機。)
五臺虛擬機器器均為:
磁碟:1T(精簡置備)
記憶體:4G
cpu:4核
2、下載ambari及其本地源(HDP),連結之後給出。
連結:
ambari2.6.2.2下載地址
HDP2.6.5.0下載地址
HDP-UTILS-1.1.0.22下載地址
HDP-GPL-2.6.5.0下載地址
檔案較大,提前下載為之後本地源搭建做準備
3、以下為本次搭建所用到的所有檔案
本次搭建五臺虛擬機器器均使用root使用者
在centos7系統下,輸入cd /etc/sysconfig/network-scripts/進入網路卡組態檔夾,使用vi編輯器編輯網路卡檔案。為虛擬機器器設定ip地址資訊。
此操作要求五臺虛擬機器器中均完成。之後使用systemctl network restart命令重新啟動網路卡。
使用ping命令,ping www.baidu.com,若能夠ping通,則虛擬機器器可聯網。
(1)在每臺虛擬機器器中執行hostnamectl set-hostname (你設定的主機名稱)。
本次演示中,五臺虛擬機器器名稱為
ambari
client
master
slave1
slave2
(2)在每臺虛擬機器器中執行vi /etc/hosts,進入vi編輯器編輯hosts檔案,將五臺虛擬機器器的IP地址及主機名(hostname)加入其中。
格式為:
ip地址 主機名
若無特殊說明之後所有操作均在ambari主機上操作
(1)在每臺主機中執行ssh -keygen
(2)在root檔案下,使用cd命令,進入.ssh/資料夾
(3)執行cp id_rsa.pub authorized_keys
(4)執行ls命令檢視資料夾,執行vi authorized_keys命令,將其餘四臺主機中的id_rsa.pub內的內容複製貼上入ambari主機中的authorized_keys檔案中。
(5)執行scp -p authorized_keys root@client:/root/.ssh/
該命令將authorized_keys檔案傳入client主機中,以此類推,將檔案傳入其餘三臺主機中。
(6)執行ssh client命令檢視是否能夠免密登入,以此類推檢查每個主機間的免密登入情況(所有主機間都需要實現免密登入)
(1)關閉防火牆
在每個主機中執行以下兩條命令:
systemctl stop firewalld
systemctl disable firewalld
使用systemctl status firewalld檢視防火牆狀態
(2)關閉Selinux
vi /etc/sysconfig/selinux
SELINUX=enforcing 改為 SELINUX=disabled
改操作需重新啟動機器後生效
重新啟動後使用getenforce命令檢視selinux狀態
(1)執行命令mkdir /opt/jdk/,將jdk安裝包傳入jdk資料夾,使用tar命令解壓。
(2)使用scp命令將jdk檔案傳入其餘四臺主機
scp -p /opt/jdk/ root@client:/opt/
以此類推,將jdk資料夾傳入其餘三臺主機。
(3)修改環境變數
vi /etc/profile
在檔案最後填入以下內容
export PATH
export JAVA_HOME=/opt/jdk/jdk1.8.0_261
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
使用java -version命令檢查java安裝情況
(4)修改其餘四臺主機的環境變數,並使用java -version驗證java安裝情況
在虛擬機器器能夠聯網的情況下,可跳過這個操作,如若需要請自行尋找教學。
依次執行以下命令
yum install httpd -y #安裝
systemctl start httpd #啟動
systemctl enable httpd #開機預設啟動
預設網站根目錄為/var/www/html,無需更改
(1)在mysql官網下載mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar,下載過程中,在ambari建立/opt/mysql/資料夾
mkdir /opt/mysql
將下載好的壓縮包傳入該資料夾中,並使用tar -xvf命令釋放壓縮包。
(2)由於Centos7自帶mariadb資料庫,該資料庫驅動與mysql驅動衝突,所以在安裝mysql資料庫前應將其解除安裝。
執行以下命令
rpm -qa | grep mariadb
使用rpm命令刪除查詢出的所有檔案
rpm -e --nodeps 檔名
(3)安裝perl
yum install perl -y
(4)安裝mysql
之前解壓出來的幾個rpm包之間有依賴關係,所以需要按照順序依次執行以下命令安裝:
rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm
至此mysql資料庫安裝完成。
(5)執行mysql
systemctl start mysqld
(6)修改root使用者密碼
在執行mysql後,mysql會自動幫我們建立一個root使用者,需要進入mysql.log中檢視root使用者密碼,初始密碼非常複雜,建議更改。
檢視mysql.log:
cat /var/log/mysqld.log
找到A temporary password is generated for root@localhost:字樣,之後跟著的就是密碼,複製儲存一會使用。
登入:
mysql -u root -p
輸入剛才複製的密碼
修改密碼:
set global validate_password_policy=0;
set password = password('root1234');
grant all privaileges on *.* to 'root'@'%';
flush privileges;
設定開機啟動
systemctl enable mysqld
自行載入jar包,將其放入/usr/share/java
本次使用的jar包下載地址:
https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar
可使用wget命令將該檔案直接下載到/usr/share/java檔案中
cd /usr/share/java
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar
將下載的包名稱改為mysql-connector-java.jar
mv mysql-connector-java-8.0.11.jar mysql-connector-java.jar
使用root使用者登入mysql
mysql -u root -p
建立如下資料庫
create database ambari;
CREATE USER 'ambari'@ '%' IDENTIFIED BY 'Ambari-123';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@ '%';
FLUSH PRIVILEGES
create database hive;
CREATE USER 'hive'@ '%' IDENIFIED BY 'Hive-123';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@ '%';
FLUSH PRIVILEGES
(1)將之前下載的ambari,HDP,HDP-UTILS,HDP-GPL壓縮包傳入ambari的/var/www/html/ambari資料夾中。(自行建立ambari資料夾)
(2)使用tar命令將其解壓,結果如下:
我們可以在網頁中查詢到這些檔案,在瀏覽器中輸入http://ambari的ip地址/ambari,便可以看到上述檔案。
(3)安裝建立yum源工具
yum install yum-utils createrepo yum-plugin-priorities -y
createrepo ./ #在var/www/html/ambari/下執行即可
(4)設定本地源
將ambari.repo、hdp.repo、hdp-gpl.gpl.repo檔案傳入/etc/yum.repos.d/。上述三個檔案依次在解壓後的ambari/、HDP/、HDP-GPL/下。
可使用wget命令下載至/etc/yum.repos.d/中,也可直接複製到該資料夾下。
ip地址=httpd服務所在主機的ip地址 (下同)
wget http://{ip地址}/ambari/ambari/centos7/2.6.2.2-1/ambari.repo
wget http://{ip地址}/ambari/HDP/centos7/2.6.5.0-292/hdp.repo
wget http://{ip地址}/ambari/HDP-GPL/centos7/2.6.5.0-292/hdp-gpl.gpl.repo
修改ambari.repo檔案:
vi ambari.repo
將baseurl屬性改為
http://{ip地址}//ambariambari/centos7/2.6.2.2-1/
同上述操作,將hdp.repo、hdp-gpl.gpl.repo檔案中的baseurl屬性全改為相應的地址。其中hdp.repo中還有HDP-UTILS的資訊,也要改成hdp-utils的相應地址。
最後,將這三個檔案傳送到其餘四個節點
(4)製作本地源
yum clean all
yum makecache
yum repolist
yum install ambari-server -y
ambari-server setup
之後按照提示進行操作:
1)提示是否自定義設定。輸入y
2)設定ambari-server賬號。輸入:root
3)設定JDK。輸入:3
選擇本地jdk,輸入JAVA_HOME
4)設定資料庫,輸入:3
屬性依次為:
服務所在主機名、埠(預設3306)、資料庫名、資料庫使用者名稱、相應密碼
5)將Ambari資料庫指令碼匯入到資料庫
使用Ambari使用者登入mysql
mysql -u ambari -p
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
至此Ambari服務設定完成
將/usr/share/java/中的mysql-connector-java.jar複製到/var/lib/ambari-server/resources/中。
cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/
修改/etc/ambari-server/conf/ambari.properties檔案
vi /etc/ambari-server/conf/ambari.properties
在其中新增
server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar
啟動ambari
ambari-server start
成功啟動後,在瀏覽器中輸入ambari地址:http://{ip地址}:8080
進入瀏覽器後,出現登入介面,預設管理員賬戶登入
賬戶:admin
密碼:admin
登入成功後進入如下介面
點選Launch Install Wizard
自定義cluser名稱
選擇本地源
填入相應地址:
http://{ip地址}/ambari/HDP/centos7/2.6.5.0-292/
http://{ip地址}/ambari/HDP-GPL/centos7/2.6.5.0-292/
http://{ip地址}/ambari/HDP-UTILS/centos7/1.1.0.22/
具體位置根據實際情況填入,以上僅供參考。
第一個文字方塊填入除ambari主機外的四臺主機名
第二個文字方塊填入所有五臺主機的私鑰(/root/.ssh/id_rsa)
第一次執行,可能會報錯
解決方法:
修改所有主機中的/etc/python/cert-verification.cfg檔案
vi /etc/python/cert-verification.cfg
[https]
verify=platform_default
將上述屬性值修改為disable
修改四臺從機中的/etc/ambari-agent/conf/ambari-agent.ini檔案
新增[security]欄以下內容
vi /etc/ambari-agent/conf/ambari-agent.ini
[security]
force_https_protocol=PROTOCOL_TLSv1_2
修改完成後,點選retry重新註冊
全部通過後,點選下一步
本次搭選擇的服務有:HDFS、YARN+MapReduce2、Tez、Hive、HBase、Pig、Sqoop、ZooKeeper、Ambari Metrics、Kafka、SmartSense、Spark、Slider。
預設就好,不用更改
將client設定在client主機,其餘如圖即可(僅供參考,可根據需求自行選擇)
進入介面如下
HDFS欄:
將NameNode directories中的 ,/home/hadoop/hdfs/namenode 刪除
將DataNode directories中的 ,/home/hadoop/hdfs/data 刪除
YARN欄:
點選Advanced
將yarn.nodemanager.local-dirs中的 ,/home/hadoop/yarn/local 刪除
將yarn.nodemanager.log-dirs中的 ,/home/hadoop/yarn/log 刪除
Hive欄:
點選Advanced
選擇自行安裝的mysql;
填入之前建立的mysql使用者(hive)的密碼(Hive-123);
將Database URL中的master改為ambari(mysql安裝在ambari上);
點選測試,嘗試連線,連線成功即可。
Ambari Metrics欄:
自定義密碼即可
SmartSense欄:
點選Activity Analysis
自定義密碼即可
可能出現的問題
進入從虛擬機器器(除ambari外)使用命令
ds -lh #檢視本機磁碟使用情況
可以發現 / 目錄下哦那個容量為50G
點選下一步時,會出現如下警告
hdfs預設為主機檔案系統保留60G的磁碟容量,上述警告為建議為主機檔案系統保留120G的磁碟容量,但是通過命令查詢hdfs掛載的節點容量僅為50G,若設定為120G,會導致hdfs無容量可用,導致一會叢集啟動失敗。
在這裡,我將dfs.datanode.du.reserved容量設定為20G。
該條屬性請根據虛擬機器器的具體情況進行自主設定
其餘可能的解決辦法:
1)增加一塊磁碟,如有必要請自行查詢教學
2)重新劃分分割區,將hdfs掛載節點的容量提高
將dfs.datanode.du.reserved屬性(位置在HDFS->General->Reserved space for HDFS)修改為20G(21474836480 bytes)後無視警告進行下一步。
複查,沒有問題進入下一步
所有節點安裝並啟動成功,則至此ambari叢集搭建完成
若出現錯誤,則複查之前所有操作,或檢視紀錄檔,解決所有報錯
成功介面如下:
點選Complete,進入管理介面:
至此,本次搭建ambari叢集及其本地源所有操作完成
參考資料:
http://ambari.apache.org/1.2.4/installing-hadoop-using-ambari/content/ambari-chap1.html
–
https://blog.csdn.net/weixin_42348946/article/details/90268875?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduend~default-2-90268875.nonecase&utm_term=ambari%E9%85%8D%E7%BD%AEyum%E6%BA%90