1. 程式人生 > 實用技巧 >centos7.5+ambari-2.7.4.0部署安裝

centos7.5+ambari-2.7.4.0部署安裝

--環境資訊:

namenodemaster.hadoop

公網:122.225.77.45

內網:192.168.1.45

yarnserver.hadoop

公網:122.225.77.46

內網:192.168.1.46

slave001.hadoop

公網:122.225.77.47

內網:192.168.1.47

slave002.hadoop

公網:122.225.77.48

內網:192.168.1.48

--安裝所需的包:

ambari-2.7.4.0-centos7.tar.gz
HDP-3.1.4.0-centos7-rpm.tar.gz
HDP-GPL-3.1.4.0-centos7-gpl.tar.gz

HDP-UTILS-1.1.0.22-centos7.tar.gz
jdk-8u211-linux-x64.tar.gz
mysql57-community-release-el7-10.noarch.rpm

下載:

連結:https://pan.baidu.com/s/1TIk73wgNiRSO2OixEL5w_g
提取碼:ke4e

下載連結:

HDP:http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.1.4.0/HDP-3.1.4.0-centos7-rpm.tar.gz
HDP-UTILS:http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz


HDP-GPL:http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.1.4.0/HDP-GPL-3.1.4.0-centos7-gpl.tar.gz
Ambari 2.7.4:http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.4.0/ambari-2.7.4.0-centos7.tar.gz

提前準備:

1、四臺伺服器關閉防火牆、selinux

2、配置java環境

參考:https://www.cnblogs.com/xiaoyou2018/p/9945272.html

3、設定NTP

5、設定祕鑰登入

參考:https://www.cnblogs.com/xiaoyou2018/p/9855908.html

6、修改四臺伺服器的hosts

7、修改yum源

8、安裝資料庫

參考:https://www.cnblogs.com/xiaoyou2018/p/9831272.html

配置NTP

以namenodemaster.hadoop為ntp校準伺服器:
下載ntp
yum -y install ntp
依次輸入以下命令
systemctl is-enabled ntpd
systemctl enable ntpd
systemctl start ntpd

[root@namenodemaster opt]# vim /etc/ntp.conf
restrict 127.0.0.1
restrict ::1
#Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
#restrict 192.168.10.0 mask 255.255.240.0 nomodify notrap //允許的網路欄位連線ip限制
server 127.127.1.0 //以本機時間為準
fudge 127.127.1.0 stratum 10
#server0.centos.pool.ntp.orgiburst //全部註釋掉
#server3.centos.pool.ntp.orgiburst
#server1.centos.pool.ntp.orgiburst
#server2.centos.pool.ntp.orgiburst

其他節點配置如下

[root@yarnserver opt]# vim /etc/ntp.conf

driftfile /var/lib/ntp/drift

restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1

server namenodemaster.hadoop

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

disable monitor


檢查是否成功用“ntpstat”命令檢視同步狀態,出現以下狀態代表啟動成功
[root@namenodemaster opt]# ntpstat
synchronised to NTP server (84.16.73.33) at stratum 2
time correct to within 105 ms
polling server every 1024 s

設定祕鑰登入

需要注意

伺服器端的 authorized_keys這個只能是600許可權

在namenodemaster.hadoop上需要執行

cat id_rsa.pub >> authorized_keys

最終的結果是namenodemaster.hadoop、yarnserver.hadoop能相互使用祕鑰登入,同時都能祕鑰登入slave01 slave02

修改hosts

在四臺伺服器上分別執行

echo -e "192.168.1.45 namenodemaster.hadoop namenodemaster \n192.168.1.46 yarnserver.hadoop yarnserver \n192.168.1.47 slave001.hadoop slave001 \n192.168.1.48 slave002.hadoop slave002" >> /etc/hosts

主機名一定要配置正確。如何驗證主機名(DQDN)配置是否OK,輸入命令hostname -f進行檢視

修改yum源

四臺伺服器分別

1、備份本地yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
2.獲取阿里yum源配置檔案
wget -O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo


yum makecache

建立資料庫

建立庫ambari、hive、oozie、ranger、rangerkms

CREATE DATABASE ambari CHARACTER SET utf8 COLLATE utf8_general_ci;
use ambari;
CREATE USER 'ambari'@'%' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
CREATE USER 'ambari'@'localhost' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';
CREATE USER 'ambari'@'master' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'master';
FLUSH PRIVILEGES;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
show tables;
use mysql;
select Host User Password from user where user='ambari';

CREATE DATABASE hive CHARACTER SET utf8 COLLATE utf8_general_ci;
use hive;
CREATE USER 'hive'@'%' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
CREATE USER 'hive'@'localhost' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost';
CREATE USER 'hive'@'master' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'master';
FLUSH PRIVILEGES;

CREATE DATABASE oozie CHARACTER SET utf8 COLLATE utf8_general_ci;
use oozie;
CREATE USER 'oozie'@'%' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';
CREATE USER 'oozie'@'localhost' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'localhost';
CREATE USER 'oozie'@'master' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'master';
FLUSH PRIVILEGES;

CREATE DATABASE ranger CHARACTER SET utf8 COLLATE utf8_general_ci;
use ranger;
CREATE USER 'rangeradmin'@'%' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'rangeradmin'@'%';
CREATE USER 'rangeradmin'@'localhost' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'rangeradmin'@'localhost';
CREATE USER 'rangeradmin'@'master' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'rangeradmin'@'master';
FLUSH PRIVILEGES;

CREATE DATABASE rangerkms CHARACTER SET utf8 COLLATE utf8_general_ci;
use rangerkms;
CREATE USER 'rangerkms'@'%' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'%';
CREATE USER 'rangerkms'@'localhost' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'localhost';
CREATE USER 'rangerkms'@'master' IDENTIFIED BY '123456ABcd';
GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'master';
FLUSH PRIVILEGES;

配置mysql驅動

[root@master yum.repos.d]# yum install mysql-connector-java -y
[root@master yum.repos.d]# cd /usr/share/java
[root@master yum.repos.d]# chmod 644 mysql-connector-java.jar
[root@master yum.repos.d]# cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar
[root@master yum.repos.d]# vim /etc/ambari-server/conf/ambari.properties
新增server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar

離線安裝ambari

1、安裝httpd服務 - 主伺服器

[root@namenodemaster opt]#yum -y install httpd

[root@namenodemaster opt]# systemctl start httpd

[root@namenodemaster opt]# systemctl enable httpd

2、上傳ambari-2.7.4.0-centos7.tar.gz HDP-UTILS-1.1.0.22-centos7.tar.gz HDP-3.1.4.0-centos7-rpm.tar.gz 放到/var/www/html目錄下 - 主伺服器
安裝完成後,會生成 /var/www/html目錄(相當於Tomcat的webapps目錄),進入到/var/www/html目錄下,
建立ambari和hdp目錄,用來存放安裝檔案.

[root@yum ~]# mkdir /var/www/html/ambari [root@yum~]# mkdir /var/www/html/hdp
[root@yum~]# mkdir /var/www/html/hdp/HDP-UTILS-1.1.0.22
[root@yum ~]# tar -zxvf ambari-2.7.4.0-centos7.tar.gz -C /var/www/html/ambari/
[root@yum ~]# tar -zxvf HDP-3.1.0.0-centos7-rpm.tar.gz -C /var/www/html/hdp/
[root@yum ~]# tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/HDP-UTILS-1.1.0.22/

3、現在可以通過訪問

http://122.225.77.45/ambari/
http://122.225.77.45/hdp/

4、製作本地源-主伺服器

cd /etc/yum.repos.d/

vimambari.repo

#VERSION_NUMBER=2.7.4.0-118
[ambari-2.7.4.0]
#json.url =http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json
name=ambari Version - ambari-2.7.4.0
baseurl=http://122.226.73.45/ambari/ambari/centos7/2.7.4.0-118/
gpgcheck=1
gpgkey=http://122.226.73.45/ambari/ambari/centos7/2.7.4.0-118/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

vimhdp.repo

#VERSION_NUMBER=3.1.4.0-315
[HDP-3.1.4.0]
name=HDP Version - HDP-3.1.4.0
baseurl=http://122.226.73.45/hdp/HDP/centos7/3.1.4.0-315/
gpgcheck=1
gpgkey=http://122.226.73.45/ambari/ambari/centos7/2.7.4.0-118/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

vimhdp-utils.repo

[HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://122.226.73.45/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22/
gpgcheck=1
gpgkey=http://122.226.73.45/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

清理一下yum快取

[root@master ambari]# yum clean all

[root@master ambari]# yum makecache

[root@master ambari]# yum repolist

將建立好的檔案拷貝到其他伺服器
scp -P 10022 ambari.repo hdp.repo hdp-utils.repo[email protected]:$PWD
scp -P 10022 ambari.repo hdp.repo hdp-utils.repo[email protected]:$PWD
scp -P 10022 ambari.repo hdp.repo hdp-utils.repo[email protected]:$PWD

初始化ambari-server

[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] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[3] Custom JDK
==============================================================================
Enter choice (1): 3
如果上面選擇3自定義JDK,則需要設定JAVA_HOME。輸入:/usr/local/java/
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: /usr/java/jdk1.8.0_131
Validating JDK on Ambari Server...done.
Completing setup...
(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):namenodemaster.hadoop
Port (3306): 3306
Database name (ambari): ambari
Username (ambari): ambari
Enter Database Password (bigdata):ambari123
Re-Enter password: ambari123
(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)? y
[root@master ~]# ambari-server start

錯誤處理:
如果出現錯誤,請注意檢視日誌,根據具體的錯誤內容進行處理,預設ambari-server的日誌在/var/log/ambari-server/ambari-server.log裡面。如果在處理日誌的過程中或者後面安裝的過程中出現一些莫名的錯誤,可以重置的安裝。
手動將mysql裡面建立的資料庫進行刪除,使用下面的程式碼重置ambari-server。

手動刪除資料庫

[root@master ~]# mysql -uroot -p
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ambari |
| hive |
| oozie |
| performance_schema |
+--------------------+
rows in set (0.00 sec)
mysql> drop database ambari;
mysql> drop database hive;
mysql> drop database oozie;

重置ambari-server

[root@master ~]# ambari-server stop

[root@master~]# ambari-server reset

[root@master~]# ambari-server setup

安裝部署HDP叢集

登入ambari介面

http://namenodemaster.hadoop:8080

賬戶密碼預設 admin

選擇版本,加入本地源

http://122.225.77.45/hdp/HDP/centos7/3.1.4.0-315/
http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.1.4.0/
http://122.225.77.45/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22/






檢查潛在的問題,可以通過這個檢視有什麼問題

選擇安裝元件

勾選DataNote、NameNode、Client

配置安全密碼

紅色的都要設定,原有的不用修改


提示驅動問題的話
[root@namenodemaster java] ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
[root@namenodemaster java] ambari-server restart


完成叢集部署

當叢集突然斷電之後,重啟怎麼辦?
解決辦法:
1、啟動ntpd(時間同步)服務
有的系統管理員在測試叢集上沒有讓ntpd開機啟動,就要手動啟動了,一般情況下,生產叢集上是肯定開啟的。
service ntpd start

2、重啟ambari服務和ambari代理
ambari-server restart(主節點)
ambari-agent restart(各個節點都要重啟)

3、通過圖形介面啟動和管理各個服務
通過瀏覽器訪問一下地址http://主機ip:8080進行管理即可

HDFS UI 無法開啟

其實問題很簡單,因為在CDH中hdfs-site.xml配置檔案中WEB UI配置的是域名,而域名在Hosts又被解析成內網IP。

你使用netstat -apn | grep 50700看一下監聽情況。

你會發現監聽的是你的內網IP,而不是外網IP,所以HDFS的WEB UI就無法訪問

需要更改50700繫結0.0.0.0

更改config配置

Oozie Web Console Is Disabled問題解決方法

1、登入至主伺服器

2、手動下載extjs-2.2-1.noarch.rpm庫,並安裝

wgethttp://public-repo-1.hortonworks.com/HDP-UTILS-GPL-1.1.0.22/repos/centos7-ppc/extjs/extjs-2.2-1.noarch.rpm

rpm -ivh extjs-2.2-1.noarch.rpm

3、刪掉這個/usr/hdp/current/oozie-server/.prepare_war_cmd

rm /usr/hdp/current/oozie-server/.prepare_war_cmd

4、重啟Oozie服務

重新登入