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
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
配置安全密碼
紅色的都要設定,原有的不用修改
完成叢集部署
當叢集突然斷電之後,重啟怎麼辦?
解決辦法:
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庫,並安裝
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服務
重新登入