一、Ambari 介紹
Apache Ambari是一個(gè)開源的管理和監(jiān)控hadoop集群的web工具,hadoop有多個(gè)發(fā)行版本,Apache社區(qū)版本需要手動(dòng)安裝配置和管理,主要用于學(xué)習(xí)使用,生產(chǎn)環(huán)境一般是幾十上百臺(tái)集群,甚至上千臺(tái),社區(qū)版本效率低下維護(hù)也困難,所以我們一般選擇其他版本,本文檔使用的是HDP,因?yàn)锳pache Ambari就是基于這個(gè)版本,它安裝方式有兩種,第一種是拉取源碼編譯安裝,第二種是離線安裝,本文介紹的是離線安裝方式。
二、Ambari 離線安裝
1. 下載以下4個(gè)包
- ambari-2.7.3.0-centos7.tar.gz.tar
- HDP-3.1.0.0-centos7-rpm.tar.gz
- HDP-GPL-3.1.0.0-centos7-gpl.tar.gz
- HDP-UTILS-1.1.0.22-centos7.tar.gz
第一個(gè)ambari下載地址:
https://docs.cloudera.com/HDPDocuments/Ambari-2.7.3.0/bk_ambari-installation/content/ambari_repositories.html
另外3個(gè)關(guān)于HDP相關(guān)下載地址:
https://docs.cloudera.com/HDPDocuments/Ambari-2.7.3.0/bk_ambari-installation/content/hdp_31_repositories.html
2. jdk1.8
我在測(cè)試的時(shí)候發(fā)現(xiàn)jdk13和jdk9都不支持,所以直接選擇了官方推薦的jdk1.8
下載地址:
http://public-repo-1.hortonworks.com/ARTIFACTS/jdk-8u112-linux-x64.tar.gzto/var/lib/ambari-server/resources/jdk-8u112-linux-x64.tar.gz
3. 準(zhǔn)備3臺(tái)機(jī)器
3.1. hosts配置,3臺(tái)機(jī)器一致
192.168.56.110 node-1
192.168.56.111 node-2
192.168.56.112 node-3
3.2. 修改主機(jī)名,分別為node-1,node-2和node-3
vi /etc/hostname
3.3 關(guān)閉防火墻
#停止防火墻
systemctl stop firewalld
#關(guān)閉開機(jī)啟動(dòng)
systemctl disable firewalld
3.4 禁用selinux
vi /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
4. 設(shè)置免密登錄
node-1作為主服務(wù)器,ambari需要免密登錄到其它機(jī)器上進(jìn)行安裝組件和啟動(dòng)服務(wù)等
4.1. node-1生成公私鑰
ssh-keygen -t rsa
4.2. node-1復(fù)制公鑰到其它機(jī)器的authorized_keys(免密使用的授權(quán))
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node-2
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node-3
5. 制作yum本地源
在第一步將相關(guān)包下載完成之后用來制作yum本地源,這樣就可以通過yum進(jìn)行安裝了,提高了下載速度
5.1 安裝nginx提供yum本地源的路徑
使用官方y(tǒng)um源安裝:
#Nginx 不在默認(rèn)的 yum 源中,使用官網(wǎng)的 yum 源
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install -y nginx
也可以使用epel源:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y nginx
然后
#啟動(dòng)nginx
systemctl start nginx
#開機(jī)啟動(dòng)
systemctl enable nginx
nginx安裝后默認(rèn)訪問目錄在/usr/share/nginx/html,在這個(gè)目錄建立yum目錄,并且將第一步下載的包解壓到y(tǒng)um目錄中,/usr/share/nginx/html看起來應(yīng)該像下面這樣:

接下來設(shè)置源,在解壓的包中含有yum源的配置文件,將baseurl和gpgkey改為自己nginx訪問的地址,然后復(fù)制到/etc/yum.repos.d 目錄中。
5.1.1 修改ambari
vi /usr/share/nginx/html/yum/ambari/centos7/2.7.3.0-139/ambari.repo
#VERSION_NUMBER=2.7.3.0-139
[ambari-2.7.3.0]
#json.url = http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json
name=ambari Version - ambari-2.7.3.0
#baseurl=http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0
baseurl=http://192.168.56.110/yum/ambari/centos7/2.7.3.0-139
gpgcheck=1
gpgkey=http://192.168.56.110/yum/ambari/centos7/2.7.3.0-139/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
cp /usr/share/nginx/html/yum/ambari/centos7/2.7.3.0-139/ambari.repo /etc/yum.repos.d
5.1.2 修改HDP
vi /usr/share/nginx/html/yum/HDP/centos7/3.1.0.0-78/hdp.repo
#VERSION_NUMBER=3.1.0.0-78
[HDP-3.1.0.0]
name=HDP Version - HDP-3.1.0.0
#baseurl=http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.1.0.0
baseurl=http://192.168.56.110/yum/HDP/centos7/3.1.0.0-78
gpgcheck=1
gpgkey=http://192.168.56.110/yum/HDP/centos7/3.1.0.0-78/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://192.168.56.110/yum/HDP-UTILS/centos7/1.1.0.22
gpgcheck=1
gpgkey=http://192.168.56.110/yum/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
cp /usr/share/nginx/html/yum/HDP/centos7/3.1.0.0-78/hdp.repo /etc/yum.repos.d
5.1.3 修改HDP-GPL
vi /usr/share/nginx/html/yum/HDP-GPL/centos7/3.1.0.0-78/hdp.gpl.repo
#VERSION_NUMBER=3.1.0.0-78
[HDP-GPL-3.1.0.0]
name=HDP-GPL Version - HDP-GPL-3.1.0.0
baseurl=http://192.168.56.110/yum/HDP-GPL/centos7/3.1.0.0-78
gpgcheck=1
gpgkey=http://192.168.56.110/yum/HDP-GPL/centos7/3.1.0.0-78/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
~
cp /usr/share/nginx/html/yum/HDP-GPL/centos7/3.1.0.0-78/hdp.gpl.repo /etc/yum.repos.d
6. 安裝mysql5.7
因?yàn)閍mbari會(huì)將安裝的組件和配置信息存到數(shù)據(jù)庫中,所以安裝時(shí)會(huì)要求你填入數(shù)據(jù)庫的連接地址并設(shè)置驅(qū)動(dòng)路徑,下面是安裝mysql的步驟
#下載mysql源安裝包
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
#安裝mysql源
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
#yum 安裝mysql
yum -y install mysql-community-server
#啟動(dòng)服務(wù)
systemctl start mysqld
#查看root默認(rèn)密碼(啟動(dòng)后才能看到密碼)
grep 'A temporary password' /var/log/mysqld.log
#登錄
mysql -uroot -p
#首次進(jìn)入后mysql要求必須修改密碼才能做其他操作,因安全策略很高要包含大小字母、數(shù)字和字符
ALTER USER USER() IDENTIFIED BY 'Jxxxxx12!';
#現(xiàn)在修改安全策略
set global validate_password_policy=0;
set global validate_password_length=1;
#然后就可以把密碼修改為簡(jiǎn)單密碼
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql驅(qū)動(dòng)下載,安裝ambari的時(shí)候會(huì)讓你填驅(qū)動(dòng)路徑
https://jhxz-oss.oss-cn-chengdu.aliyuncs.com/download/mysql-connector-java-8.0.16.jar
7. 安裝ambari
#安裝
yum install -y ambari-server
#開始配置
ambari-server setup
#上面命令執(zhí)行后會(huì)打印下面相關(guān)信息,并做一些交互設(shè)置
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
Customize user account for ambari-server daemon [y/n] (n)? #問是否自定義登錄賬戶名稱,不需要,直接回車即可
Do you want to change Oracle JDK [y/n] (n)? y #問是否改變JDK,選y
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
==============================================================================
Enter choice (1): #這里選擇2,自定義JDK
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: #這里填入JDK路徑
Validating JDK on Ambari Server...done.
Check JDK version for Ambari Server...
JDK version found: 8
Minimum JDK version is 8 for Ambari. Skipping to setup different JDK for Ambari Server.
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)? #直接回車
Completing setup...
Configuring database...
Enter advanced database configuration [y/n] (n)? #進(jìn)入高級(jí)數(shù)據(jù)庫配置,選擇y
Configuring database...
==============================================================================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL / MariaDB
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
[7] - BDB
==============================================================================
Enter choice (3): #這里選擇3,使用mysql
Enter choice (3): 3
Hostname (localhost):
Port (3306):
Database name (ambari):
Username (root):
Enter Database Password (xxx):#輸入密碼
Configuring ambari database...
Enter full path to custom jdbc driver: #設(shè)置mysql驅(qū)動(dòng)路徑
Configuring remote database connection properties...
WARNING: Before starting Ambari Server, you must run the following DDL directly from the database shell to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
Proceed with configuring remote database connection properties [y/n] (y)?#需要將上面的SQL腳本放到數(shù)據(jù)庫執(zhí)行,執(zhí)行完了選y
Extracting system views...
.....
Ambari repo file contains latest json url http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json, updating stacks repoinfos with it...
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
#啟動(dòng)
ambari-server start
然后可以通過http://192.168.56.110:8080 進(jìn)行訪問了,默認(rèn)賬號(hào)密碼admin/admin

node:
通過web界面安裝的hadoop配置文件在這個(gè)路徑中 /usr/hdp/3.1.0.0-78/hadoop/conf,主節(jié)點(diǎn)在/etc/hadoop/conf