CentOS-7.2安裝Ambari-2.6.1
一、Ambari 是什麼?
Ambari 跟 Hadoop 等開源軟體一樣,也是 Apache Software Foundation 中的一個專案,並且是頂級專案。目前最新的釋出版本是 2.6.1。就 Ambari 的作用來說,就是建立、管理、監視 Hadoop 的叢集,但是這裡的 Hadoop 是廣義,指的是 Hadoop 整個生態圈(例如 Hive,Hbase,Sqoop,Zookeeper 等等),而並不僅是特指 Hadoop。用一句話來說,Ambari 就是為了讓 Hadoop 以及相關的大資料軟體更容易使用的一個工具。
現在,大家應該知道什麼人最需要Ambari了。那些苦苦花費好幾天去安裝、除錯 Hadoop 的初學者是最能體會到 Ambari 的方便之處的。而且,Ambari 現在所支援的平臺元件也越來越多,例如流行的 Spark,Storm 等計算框架,以及資源排程平臺 YARN 等,我們都能輕鬆地通過 Ambari 來進行部署。
Ambari 自身也是一個分散式架構的軟體,主要由兩部分組成:Ambari Server 和 Ambari Agent。簡單來說,使用者通過 Ambari Server 通知 Ambari Agent 安裝對應的軟體;Agent 會定時地傳送各個機器每個軟體模組的狀態給 Ambari Server,最終這些狀態資訊會呈現在 Ambari 的 GUI,方便使用者瞭解到叢集的各種狀態,並進行相應的維護。
二、Ambari安裝詳解(線上安裝)
1.安裝準備
關於 Ambari 的安裝,目前網上能找到兩個發行版,一個是 Apache 的 Ambari,另一個是 Hortonworks 的,兩者區別不大。安裝 Ambari 最方便的方式就是使用公共的庫源(public repository)。這個不是重點,所以不在此贅述,下面只給出安裝思路,注重說下離線安裝。
在進行具體的安裝之前,需要做幾個準備工作。
SSH 的無密碼登入;
Ambari 的 Server 會 SSH 到 Agent 的機器,拷貝並執行一些命令。因此我們需要配置 Ambari Server 到 Agent 的 SSH 無密碼登入。在這個例子裡,namenode 可以 SSH 無密碼登入datanode1,datanode2,SecondNamenode。
確保 Yum 可以正常工作;
通過公共庫(public repository),安裝 Hadoop 這些軟體,背後其實就是應用 Yum 在安裝公共庫裡面的 rpm 包。所以這裡需要您的機器都能訪問 Internet。
確保 home 目錄的寫許可權。
Ambari 會建立一些 OS 使用者(我安裝ambari的時候使用root使用者以避免許可權問題)。
2.獲取 Ambari 的公共庫檔案(public repository)
登入到 Linux 主機並執行下面的命令(也可以自己手工下載):
1 wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.1.0/ambari.repo
將下載的 ambari.repo 檔案拷貝到 Linux 的系統目錄/etc/yum.repos.d/。拷貝完後,我們需要獲取該公共庫的所有的原始檔列表。依次執行以下命令。
1 yum clean all
2 yum list|grep ambari
如果可以看到 Ambari 的對應版本的安裝包列表,說明公共庫已配置成功。然後就可以安裝 Ambari 的 package 了。執行下面的命令安裝 Ambari Server 到該機器。
1 yum install ambari-server
待安裝完成後,便需要對 Ambari Server 做一個簡單的配置。執行下面的命令。
1 amari-server setup
在這個互動式的設定中,採用預設配置即可。Ambari 會使用 Postgres 資料庫,預設會安裝並使用 Oracle 的 JDK。預設設定了 Ambari GUI 的登入使用者為 admin/admin。並且指定 Ambari Server 的執行使用者為 root。
簡單的 setup 配置完成後。就可以啟動 Ambari 了。執行下面的命令。
1 ambari-server start
當成功啟動 Ambari Server 之後,便可以從瀏覽器登入,預設的埠為 8080。以本文環境為例,在瀏覽器的位址列輸入 http://www.namenode:8080,登入密碼預設為 admin/admin。Ambari的線上安裝相對比較簡單,在此就不太詳細敘述,有什麼不清楚的可以看下下面的離線安裝。
三、Ambari安裝詳解(離線安裝)
1.安裝環境說明
安裝ambari前先安裝好 Centos 7並更新。要確保之前沒有安裝過Ambari,並且沒有搭建過hadoop環境,均是新安裝的系統,未做任何設定。
2.作業系統環境準備
2.1 配置SSH免密碼登入
主節點裡root使用者登入執行如下步驟,生成sshkey
ssh-keygen
一路回車鍵,直到結束,執行完成後會在~目錄下生成.ssh資料夾,其中包含id_rsa 和 id_rsa.pub兩個檔案。
生成authorized_keys
cat id_rsa.pub >> authorized_keys
其他centos主機也依次執行 ssh-keygen命令
ssh-keygen
scp拷貝authorized_keys 到ssh連線主機
scp ~/.ssh/authorized_keys hadoop61:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys hadoop62:~/.ssh/authorized_keys
...
scp ~/.ssh/authorized_keys hadoop70:~/.ssh/authorized_keys
驗證ssh登入
ssh hadoop61
2.2 關閉防火牆(也可以不關閉防火牆,給需要的應用開方埠。所有節點都要設定)
systemctl disable firewalld
systemctl stop firewalld
2.3 關閉SELinux(所有節點都要設定)
檢視SELinux狀態:
sestatus
如果SELinux status引數為enabled即為開啟狀態
臨時關閉,不用重啟機器:
setenforce
修改配置檔案需要重啟機器:
vi /etc/sysconfig/selinux
SELINUX=disabled
3.製作本地源
製作本地源只需在主節點上進行即可。
3.1 安裝 Apache HTTP 伺服器
允許 http 服務通過防火牆(永久,如果已經關閉防火牆,則可以不用執行2、3行命令)。
yum install httpd
firewall-cmd --add-service=http
firewall-cmd --permanent --add-service=http
新增 Apache 服務到系統層使其隨系統自動啟動。
systemctl start httpd.service
systemctl enable httpd.service
3.2 安裝本地源製作相關工具
yum install yum-utils createrepo
3.3下載安裝資源
下載 Ambari 2.6.1 , HDP 2.6.5 的安裝資源,本次安裝是在Centos 7 上,只列出centos7的資源,其他系統的請現在對用系統的資源。
ambari下載資源
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.1.0/ambari.repo
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.1.0/ambari-2.6.1.0-centos7.tar.gz
hdp下載資源
wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.5.0/hdp.repo
wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.5.0/HDP-2.6.5.0-centos7-rpm.tar.gz
wget http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz
其他版本,下載地址請參考:
Ambari:
HDP和HDP UTILS:
在httpd網站根目錄,預設是即/var/www/html/,建立目錄repository(自定義名字,自己根據情況命名),並且將下載的壓縮包解壓到/var/www/html/ambari目錄。
tar -zxvf ambari-2.6.1.0-centos7.tar.gz -C /var/www/html/repository/
tar -zxvf HDP-2.6.5.0-centos7-rpm.tar.gz -C /var/www/html/repository/
tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/repository/
curl命令驗證本地源地址是否可用
curl http://localhost/repository
3.4 配置ambari、HDP、HDP-UTILS的本地源
(ambari.repo、hdp.repo可以在解壓後的包中找到,修改檔案中地址為本地源地址即可)
vi ambari.repo
#VERSION_NUMBER=2.6.1.0-
[ambari-2.6.1.0]
name=ambari Version - ambari-2.6.1.0
baseurl=http://master/repository/ambari/centos7/2.6.1.0-143/
gpgcheck=
gpgkey=http://master/repository/ambari/centos7/2.6.1.0-143//RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=
priority=
vi hdp.repo
#VERSION_NUMBER=2.6.5.0-
[HDP-2.6.5.0]
name=HDP Version - HDP-2.6.5.0
baseurl=http://master/repository/HDP/centos7/2.6.5.0-292/
gpgcheck=
gpgkey=http://master/repository/HDP/centos7/2.6.5.0-292/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=
priority= [HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://master/repository/HDP-UTILS/centos7/1.1.0.22/
gpgcheck=
gpgkey=http://master/repository/HDP-UTILS/centos7/1.1.0.22//RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=
priority=
將上面的修改過的源放到/etc/yum.repos.d/下面
mv ambari.repo /etc/yum.repos.d/
mv hdp.repo /etc/yum.repos.d/
然後更新yum
yum clean all
yum list update
yum makecache
yum repolist
3.5 安裝Mysql資料庫
Ambari安裝會將安裝等資訊寫入資料庫,建議使用自己安裝的MySQL資料庫,也可以不安裝而使用預設資料庫PostgreSQL。
Mysql資料庫安裝過程如下:
3.5.1. 下載mysql的repo源(CentOS 7的yum源中預設沒有mysql,要先下載mysql的repo源)
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
3.5.2. 安裝mysql57-community-release-el7-8.noarch.rpm包
rpm -ivh mysql57-community-release-el7-.noarch.rpm --nodeps --force
安裝這個包後,會獲得兩個mysql的yum repo源
/etc/yum.repos.d/mysql-community.repo
/etc/yum.repos.d/mysql-community-source.repo
3.5.3.安裝mysql
yum install mysql-server
3.5.4. 啟動mysql服務
檢視MySQL服務是否已啟動
service mysqld status
啟動服務:
systemctl start mysqld
3.5.5. 重置root密碼(如果需要設定簡單密碼,請檢視另外一篇文章:mysql密碼策略修改)
MySQL5.7會在安裝後為root使用者生成一個隨機密碼,而不是像以往版本的空密碼。 可以安全模式修改root登入密碼或者用隨機密碼登入修改密碼。下面用隨機密碼方式
MySQL為root使用者生成的隨機密碼通過mysqld.log檔案可以查詢到:
grep 'temporary password' /var/log/mysqld.log
修改root使用者密碼:(MySQL的密碼策略比較複雜,過於簡單的密碼會被拒絕)
mysql -u root -p
mysql> Enter password: (輸入剛才查詢到的隨機密碼)
mysql> SET PASSWORD FOR 'root'@'localhost'= "Zgw-123";
mysql> exit
3.5.6. 開放3306埠
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Zgw-123' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql>exit;
開啟防火牆mysql 3306埠的外部訪問:
firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --reload
安裝完成後建立ambari資料庫及使用者,登入root使用者執行下面語句:
create database ambari character set utf8 ;
CREATE USER 'ambari'@'%'IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
如果要安裝Hive,再建立Hive資料庫和使用者 再執行下面的語句:
create database hive character set utf8 ;
CREATE USER 'hive'@'%'IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
如果要安裝Oozie,再建立Oozie資料庫和使用者 再執行下面的語句:
create database oozie character set utf8 ;
CREATE USER 'oozie'@'%'IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';
FLUSH PRIVILEGES;
安裝mysql jdbc 驅動:
yum install mysql-connector-java
4.進行安裝Ambari
4.1.1安裝Ambari
yum install ambari-server
4.1.2 配置Ambari
ambari-server setup
1.檢查SELinux是否關閉,如果關閉不用操作。
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
2.提示是否自定義設定。輸入:y
Customize user account for ambari-server daemon [y/n] (n)?
3.ambari-server 賬號。輸入:ambari,預設為root
Enter user account for ambari-server daemon (root):ambariAdjusting ambari-server permissions and ownership...
4.檢查防火牆,如果關閉則不用操作。
Enter user account for ambari-server daemon (root):ambariAdjusting ambari-server permissions and ownership...
5.檢查JDK。
Checking JDK...
[] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files
[] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files
[] Custom JDK
==============================================================================
Enter choice ():3
6.置JAVA_HOME
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: /opt/java/jdk1.8.0_121
7.配置資料庫
Configuring database...
Enter advanced database configuration [y/n] (n)? y
8.選擇資料庫
Configuring database...
==============================================================================
Choose one of the following options:
[] - PostgreSQL (Embedded)
[] - Oracle
[] - MySQL / MariaDB
[] - PostgreSQL
[] - Microsoft SQL Server (Tech Preview)
[] - SQL Anywhere
[] - BDB
==============================================================================
Enter choice ():
9.設定資料庫的具體配置資訊,根據實際情況輸入,如果和括號內相同,則可以直接回車。
Enter choice ():
Hostname (localhost):
Port ():
Database name (ambari):
Username (ambari):
Enter Database Password (bigdata):
Re-enter password:
Configuring ambari database...
10.設定資料庫連線屬性,完成配置。
Configuring remote database connection properties...
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
Extracting system views...
....ambari-admin-2.6.2.0..jar
.......
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
Configuring remote database connection properties...
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
Extracting system views...
....ambari-admin-2.6.2.0..jar
.......
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
11.將Ambari資料庫指令碼匯入到資料庫
mysql> use ambari;
Database changed
mysql> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
4.1.3啟動Amabri
ambari-server start
Using python /usr/bin/python
Starting ambari-server
Ambari Server running with administrator privileges.
Organizing resource files at /var/lib/ambari-server/resources...
Ambari database consistency check started...
Server PID at: /var/run/ambari-server/ambari-server.pid
Server out at: /var/log/ambari-server/ambari-server.out
Server log at: /var/log/ambari-server/ambari-server.log
Waiting for server start......................
Server started listening on DB configs consistency check: no errors and warnings were found.
Ambari Server 'start' completed successfully.
成功啟動後在瀏覽器輸入Ambari地址:http://yourhostname:8080
出現登入介面,預設管理員賬戶登入, 賬戶:admin 密碼:admin。
登入成功後出現下面的介面,至此Ambari的安裝成功。
4.2 安裝安裝HDP 2.4.2 配置叢集
點選上面登入成功頁面的Launch Install Wizard 按鈕進行叢集配置
4.2.1設定叢集名稱
4.2.2設定HDP版本資訊
點選Add Version新增自己下載的HDP版本。
彈出的視窗中指定之前配置的HDP源中HDP版本檔案,然後點選Read Version Info按鈕,確定版本資訊。
4.3.設定HDP 安裝源
因為HDP安裝包非常大,不建議採用Public Repository,本次安裝採用Local Repository,前邊已經配置完成,此處只需指定為前邊所配置的本地源地址即可,如下圖所示。
4.4設定叢集資訊,並配置ambari-server ssh私鑰資訊(前提是已經完成叢集機器ssh的配置)。
配置完成後,點選Register and Confirm,確認叢集配置資訊,ambari-server會通過ssh自動在叢集中剛才所配置的機器上安裝ambari-agent。
如果ssh配置的沒有問題的話,安裝會在幾分鐘之內結束,如下圖所示。
注意:此處安裝完成後,表格下邊可能會有警告資訊,開啟檢視警告資訊,根據出現的問題進行修復,然後再執行下一步。