天天看點

centos7 ambari2.6.1.5+hdp2.6.4.0 大資料叢集安裝部署

版權聲明:本文由董可倫首發于https://dongkelun.com,非商業轉載請注明作者及原創出處。商業轉載請聯系作者本人。 https://blog.csdn.net/dkl12/article/details/80234675

我的原創位址:

https://dongkelun.com/2018/04/25/ambariConf/

前言

本文是講如何在centos7(64位) 安裝ambari+hdp,如果在裝有原生hadoop等叢集的機器上安裝,需要先将叢集服務停掉,然後将不需要的環境變量注釋掉即可,如果不注釋掉,後面雖然可以安裝成功,但是在啟動某些服務的時候可能會有異常,比如最後提到的hive啟動異常。本文适合系統: RedHat7、CentOS7、Oracle Linux7(都是64位)

注意:centos7中文系統有bug(python腳本中文識别問題),需要使用英文系統。

本文僅作參考(基本每個配置部落格都有局限性和坑~),推薦先參考官方文檔:

https://docs.hortonworks.com/HDPDocuments/Ambari-2.6.1.5/bk_ambari-installation/content/ch_Getting_Ready.html

以下均在root使用者下執行。

1、滿足最低系統要求

1.1 浏覽器

建議您将浏覽器(自己使用的windows既可)更新至最新的穩定版本

1.2 軟體要求(在每台主機上)

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 初始環境配置

2、環境準備(在每台主機上)

2.1 ssh 免密

隻需master 免密到其他節點(包含自身),不需要互通,參考:

linux ssh 免密登入

2.2 啟用NTP

yum install -y ntp
systemctl enable ntpd           

2.3 編輯主機檔案

vim /etc/hosts           

本文隻是在個人虛拟機上進行安裝測試,是以隻選擇兩個節點,在公司真實環境下多個節點安裝是一樣的,ambari對記憶體要求較高,如果個人電腦組態不高的話,建議學習一下即可。

192.168.44.138 ambari.master.com
192.168.44.139 ambari.slave1.com           

其中後面的如ambari.master.com為完全限定域名(FQDN)(通過符号“.”),不能簡單的設為master等,如果該檔案裡有其他映射,如上面的配置必須要在最前面(自帶的localhost下面一行),否則後面安裝會報錯。

2.4 設定主機名

以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才行

2.5 編輯網絡配置檔案

vim /etc/sysconfig/network           

修改HOSTNAME屬性為FQDN

NETWORKING=yes
HOSTNAME=ambari.master.com           

2.6 禁用iptables

systemctl disable firewalld
service firewalld stop           

2.7 禁用SELinux

2.7.1 臨時禁用

setenforce 0           

2.7.2 永久禁用(重新開機機器)

vim /etc/sysconfig/selinux           

将SELINUX改為disabled

SELINUX=disabled           

這樣伺服器或虛拟機重新開機也沒有問題。

3、制作本地源(僅在master)

因為ambari 和 hdp 安裝檔案比較大,如果線上安裝的話會很慢,是以最好選擇本地源。

(可以在叢集可以通路的任何機器上制作本地源)

3.1 安裝制作本地源工具

yum install yum-utils createrepo           

3.2 建立一個HTTP伺服器

yum install httpd -y
systemctl enable httpd && systemctl start httpd           

3.3 為Web伺服器建立目錄

mkdir -p /var/www/html/hdp/HDP-UTILS           

3.4 下載下傳系統對應的最新版相關安裝包

其中包括Ambari、HDP、HDP-UTILS,由于HDP-GPL較小隻有幾百k,是以沒有配置為本地源。

3.4.1 下載下傳

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           

下載下傳位址見官方文檔:

https://docs.hortonworks.com/HDPDocuments/Ambari-2.6.1.5/bk_ambari-installation/content/ch_obtaining-public-repos.html

3.4.2 解壓

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/           

3.4.3 解決在浏覽器通路 http://ambari.master.com/hdp/HDP/centos7/2.6.4.0-91 為空白

原因:該目錄下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           

3.5 配置ambari、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           

3.6 (可選)如果您的環境中配置了多個存儲庫,請在叢集中的所有節點上部署以下插件

yum install yum-plugin-priorities -y
vim /etc/yum/pluginconf.d/priorities.conf           
[main]
enabled = 1
gpgcheck=0                           

4、安裝ambari(僅在master)

4.1安裝ambari-server

yum install ambari-server -y           

4.2 設定mysql連接配接器

ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar           

(如果使用mysql作為hive的中繼資料庫)

4.3 建立相關的mysql資料庫

建立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使用者可以不用指定全部庫的權限。

4.4 配置ambari-server

4.4.1 setup

ambari-server setup           

4.4.2 配置流程

以下為全部的配置過程,其中主要是自定義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.           

4.4.3将Ambari資料庫腳本導入到資料庫

mysql -uambari -pAmbari-123
use ambari;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql           

4.4.4 啟動ambari

ambari-server start           

4.4.5 啟動成功,可以通過如下位址通路:

http://ambari.master.com:8080

使用者名,密碼為admin admin

5、使用ambari浏覽器界面安裝hadoop,hive等元件

5.1 登入到ambari管理界面

5.2 安裝hdp叢集,點選Launch Install Wizard

5.3,設定叢集名稱

5.4 配置本地源

其中HDP-GPL較小,用預設的即可

5.5 設定host

其中下面的為master上ssh的私鑰(~/.ssh/id_rsa)

5.6 Host确認

如果失敗或者卡住不動可根據日志解決,如果warn根據提示資訊解決,知道全部為Success才可以進行下一步。

5.7 選擇要安裝的服務

如果有依賴其他元件選擇ok即可,如安裝hive依賴tez,pig等

5.8 設定各個服務Master

5.9 設定Slaves 和 Clients

5.10 自定義配置

其中紅色的必須要改,大緻是設定路徑,密碼等,如hive要設定hive中繼資料的資料庫資訊,我用的master上的mysql

測試一下連接配接

沒有了紅色的即可進行下一步,如遇到warn,可根據提示資訊進行修改配置,也可以忽略警告,等裝完以後再改。

5.11 review前面的配置

5.12 安裝、啟動、測試

這裡因為個人電腦組態較低,浏覽器有點卡,進度條沒有顯示出來。

5.13 安裝完成

若最後出現警告,可以裝完重新開機所有服務,再檢檢視看有沒有問題,如有警告或啟動失敗,可根據日志排查原因,一開始安裝的的元件較多的話,出現警告的可能性會大一些,是以可以先裝幾個必要的元件,之後一個一個元件裝。

5.14 概要

5.15 hive啟動異常

這次安裝重新開機之後發現hive等服務啟動不成功,我就把hive等解除安裝然後重裝,本來以為是開始是hive沒安裝成功,但是重裝後hive還是啟動不成功,看了一下日志,發現是之前手動安裝的原生的hive的環境變量沒有注釋掉,注釋掉,重新開機ambari之後,再啟動所有服務,就成功了(再在hive shell 裡建表、插入資料、查詢驗證一下),是以如果在已經安裝好的大資料叢集上安裝ambari,最好先把之前配的環境變量注釋掉。

5.16 啟動成功