轉載請務必註明原創地址爲:http://dongkelun.com/2018/04/25/ambariConf/html
本文是講如何在centos7(64位) 安裝ambari+hdp,若是在裝有原生hadoop等集羣的機器上安裝,須要先將集羣服務停掉,而後將不須要的環境變量註釋掉便可,若是不註釋掉,後面雖然能夠安裝成功,可是在啓動某些服務的時候可能會有異常,好比最後提到的hive啓動異常。本文適合系統: RedHat七、CentOS七、Oracle Linux7(都是64位)java
注意:centos7中文系統有bug(python腳本中文識別問題),須要使用英文系統。python
本文僅做參考(基本每一個配置博客都有侷限性和坑~),推薦先參考官方文檔:mysql
如下均在root用戶下執行。linux
建議您將瀏覽器(本身使用的windows既可)更新至最新的穩定版本ajax
1.2.1 yum和rpm 1.2.2 scp, curl, unzip, tar、 wget 1.2.3 OpenSSL(v1.01,build 16或更高版本) 1.2.4 python:2.7(注意若是有使用python3.x的需求,不要改變python環境變量,不然3.x會報錯) 1.2.5 jdk:1.8 1.2.6 mysql:5.6(官網上寫的5.6,不肯定更高版本有沒有問題,也可使用其餘數據庫,根據本身習慣) 1.2.7 內存要求:Ambari主機應該至少有1 GB RAM,500 MB空閒,(但若是使用的話,建議內存8g以上,我本身的虛擬機內存4g搭好後跑起來會很卡,配置低的話警告也會不少) 1.2.8 檢查最大打開文件描述符,推薦的最大打開文件描述符數爲10000或更多 1.2.9 mysql-connector-java
以上軟件大部分系統自帶,其他可參考:CentOS 初始環境配置sql
只需master 免密到其餘節點(包含自身),不須要互通,參考:linux ssh 免密登陸shell
yum install -y ntp systemctl enable ntpd
vim /etc/hosts
本文只是在我的虛擬機上進行安裝測試,因此只選擇兩個節點,在公司真實環境下多個節點安裝是同樣的,ambari對內存要求較高,若是我的電腦配置不高的話,建議學習一下便可。數據庫
192.168.44.138 ambari.master.com 192.168.44.139 ambari.slave1.com
其中後面的如ambari.master.com爲徹底限定域名(FQDN)(經過符號「.」),不能簡單的設爲master等,若是該文件裏有其餘映射,如上面的配置必需要在最前面(自帶的localhost下面一行),不然後面安裝會報錯。
以ambari.master.com爲例
2.4.1
hostname ambari.master.com
2.4.2
vim /etc/hostname
ambari.master.com
兩步缺一不可,經過命令驗證
hostname hostname -f
兩個必須都爲ambari.master.com才行
vim /etc/sysconfig/network
修改HOSTNAME屬性爲FQDN
NETWORKING=yes HOSTNAME=ambari.master.com
systemctl disable firewalld service firewalld stop
2.7.1 臨時禁用
setenforce 0
2.7.2 永久禁用(重啓機器)
vim /etc/sysconfig/selinux
將SELINUX改成disabled
SELINUX=disabled
這樣服務器或虛擬機重啓也沒有問題。
由於ambari 和 hdp 安裝文件比較大,若是在線安裝的話會很慢,因此最好選擇本地源。
(能夠在集羣能夠訪問的任何機器上製做本地源)
yum install yum-utils createrepo
yum install httpd -y systemctl enable httpd && systemctl start httpd
mkdir -p /var/www/html/hdp/HDP-UTILS
其中包括Ambari、HDP、HDP-UTILS,因爲HDP-GPL較小隻有幾百k,因此沒有配置爲本地源。
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.1.5/ambari-2.6.1.5-centos7.tar.gz wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.4.0/HDP-2.6.4.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
tar -zxvf ambari-2.6.1.5-centos7.tar.gz -C /var/www/html tar -zxvf HDP-2.6.4.0-centos7-rpm.tar.gz -C /var/www/html/hdp/ tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/HDP-UTILS/
緣由:該目錄下index.xml使用了 https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js 國內訪問不了谷歌,將index.xml註釋掉便可
cd /var/www/html/hdp/HDP/centos7/2.6.4.0-91 mv index.xml index.xml.bak
此時應該能夠在瀏覽器訪問下面的地址了,能夠驗證一下
http://ambari.master.com/ambari/centos7/2.6.1.5-3/ http://ambari.master.com/hdp/HDP/centos7/2.6.4.0-91 http://ambari.master.com/hdp/HDP-UTILS
cp /var/www/html/ambari/centos7/2.6.1.5-3/ambari.repo /etc/yum.repos.d/ cp /var/www/html/hdp/HDP/centos7/2.6.4.0-91/hdp.repo /etc/yum.repos.d/
將每一個repo裏的baseurl和gpgkey的地址修改成本地的
vim /etc/yum.repos.d/ambari.repo
#VERSION_NUMBER=2.6.1.5-3 [ambari-2.6.1.5] name=ambari Version - ambari-2.6.1.5 baseurl=http://ambari.master.com/ambari/centos7/2.6.1.5-3 gpgcheck=1 gpgkey=http://ambari.master.com/ambari/centos7/2.6.1.5-3/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1
vim /etc/yum.repos.d/hdp.repo
#VERSION_NUMBER=2.6.4.0-91 [HDP-2.6.4.0] name=HDP Version - HDP-2.6.4.0 baseurl=http://ambari.master.com/hdp/HDP/centos7/2.6.4.0-91 gpgcheck=1 gpgkey=http://ambari.master.com/hdp/HDP/centos7/2.6.4.0-91/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://ambari.master.com/hdp/HDP-UTILS gpgcheck=1 gpgkey=http://ambari.master.com/hdp/HDP/centos7/2.6.4.0-91/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1
yum clean all yum list update yum makecache yum repolist
yum install yum-plugin-priorities -y vim /etc/yum/pluginconf.d/priorities.conf
[main] enabled = 1 gpgcheck=0
yum install ambari-server -y
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
(若是使用mysql做爲hive的元數據庫)
建立ambari數據庫及用戶,登陸root用戶執行下面語句:
mysql -uroot -pRoot-123
create database ambari character set utf8 ; CREATE USER 'ambari'@'%'IDENTIFIED BY 'Ambari-123'; GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%'; FLUSH PRIVILEGES;
若是要安裝Hive,再建立Hive數據庫和用戶,再執行下面的語句:
create database hive character set utf8 ; CREATE USER 'hive'@'%'IDENTIFIED BY 'Hive-123'; GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%'; FLUSH PRIVILEGES;
hive用戶能夠不用指定所有庫的權限。
ambari-server setup
如下爲所有的配置過程,其中主要是自定義jdk,輸入JAVA_HOME路徑,自定義數據庫選mysql,輸入數據庫用戶名,密碼等
ambari-server setup Using python /usr/bin/python2 Setup ambari-server Checking SELinux... SELinux status is 'enabled' SELinux mode is 'permissive' WARNING: SELinux is set to 'permissive' mode and temporarily disabled. OK to continue [y/n] (y)? y Customize user account for ambari-server daemon [y/n] (n)? y Enter user account for ambari-server daemon (root):ambari Adjusting ambari-server permissions and ownership... Checking firewall status... Checking JDK... [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 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/jdk1.8.0_151 Validating JDK on Ambari Server...done. 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)? y Completing setup... Configuring database... Enter advanced database configuration [y/n] (n)? 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 (1): 3 Hostname (localhost): Port (3306): Database name (ambari): Username (ambari): Enter Database Password (bigdata): Re-enter password: Configuring ambari database... 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.1.5.3.jar ........... Adjusting ambari-server permissions and ownership... Ambari Server 'setup' completed successfully.
mysql -uambari -pAmbari-123 use ambari; source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
ambari-server start
用戶名,密碼爲admin admin
其中HDP-GPL較小,用默認的便可
其中下面的爲master上ssh的私鑰(~/.ssh/id_rsa)
若是失敗或者卡住不動可根據日誌解決,若是warn根據提示信息解決,知道所有爲Success才能夠進行下一步。
若是有依賴其餘組件選擇ok便可,如安裝hive依賴tez,pig等
其中紅色的必需要改,大體是設置路徑,密碼等,如hive要設置hive元數據的數據庫信息,我用的master上的mysql
測試一下鏈接
沒有了紅色的便可進行下一步,如遇到warn,可根據提示信息進行修改配置,也能夠忽略警告,等裝完之後再改。
這裏由於我的電腦配置較低,瀏覽器有點卡,進度條沒有顯示出來。
若最後出現警告,能夠裝完重啓全部服務,再檢查看看有沒有問題,若有警告或啓動失敗,可根據日誌排查緣由,一開始安裝的的組件較多的話,出現警告的可能性會大一些,因此能夠先裝幾個必要的組件,以後一個一個組件裝。
此次安裝重啓以後發現hive等服務啓動不成功,我就把hive等卸載而後重裝,原本覺得是開始是hive沒安裝成功,可是重裝後hive仍是啓動不成功,看了一下日誌,發現是以前手動安裝的原生的hive的環境變量沒有註釋掉,註釋掉,重啓ambari以後,再啓動全部服務,就成功了(再在hive shell 裏建表、插入數據、查詢驗證一下),因此若是在已經安裝好的大數據集羣上安裝ambari,最好先把以前配的環境變量註釋掉。