Ambari簡述及集羣搭建(上)

一、Ambari簡述

1.1、什麼是Ambari

Apache Ambari項目旨在通過開發用於配置,管理和監控Apache Hadoop集羣的軟件來簡化Hadoop管理。Ambari提供了一個直觀,易用的Hadoop管理Web UI。

1.2、Ambari的功能

  1. 提供了跨任意數量的主機安裝Hadoop服務的分步向導。
  2. 處理羣集的Hadoop服務配置。
  3. 提供集中管理,用於在整個集羣中啓動,停止和重新配置Hadoop服務。
  4. 提供了一個儀表板,用於監控Hadoop集羣的運行狀況和狀態。
  5. 利用Ambari指標系統進行指標收集。
  6. 利用Ambari Alert Framework進行系統警報,並在需要您注意時通知您(例如,節點出現故障,剩餘磁盤空間不足等)。

二、環境準備

注意:以下操作三臺機器都需要進行

2.1、虛擬機準備

克隆三臺虛擬機(node61、node62、node63),配置好對應主機的網絡IP、主機名稱、關閉防火牆。

[root@node62 ~]# systemctl status firewalld    #查看防火牆狀態
[root@node62 ~]# systemctl start firewalld       #開啓防火牆服務
[root@node62 ~]# systemctl stop firewalld       #關閉防火牆服務

[root@node62 ~]# systemctl disable firewalld   #設置開機不啓動

2.2、關閉SELINUX安全模塊

臨時關閉:setenforce 0
修改配置文件vi /etc/selinux/config(重啓生效init 6):將 SELINUX=enforcing 改爲 SELINUX=disabled
查看 SELINUX 狀態:
 1) /usr/sbin/sestatus -v  
  SELinux status: enabled(enabled:開啓;disabled:關閉)
 2) 使用命令:getenforce 

2.3、安裝JDK

1)在hadoop102的/opt目錄下創建module和software文件夾

2)將jdk-8u144-linux-x64.tar.gz導入到hadoop102的/opt/software目錄下

3)在Linux系統下的opt目錄中查看軟件包是否導入成功

4)解壓JDK到/opt/module目錄下: [root@node61 software]# tar -zxvf jdk-8u181-linux-x64.tar.gz -C /opt/module/

5)配置JDK環境變量

(1)先獲取JDK路徑::/opt/module/jdk1.8.0_181

(2)打開/etc/profile文件:vi /etc/profile

在profile文件末尾添加JDK路徑

  • #JAVA_HOME
  • export JAVA_HOME=/opt/module/jdk1.8.0_181
  • export PATH=$PATH:$JAVA_HOME/bin

(3)保存後退出: :wq

(4)讓修改後的文件生效:source /etc/profile

6)測試JDK是否安裝成功:[root@node61 ~]# java -version

7)將node61中的JDK和環境變量分發到node62、node63兩臺主機

  • [root@node61 ~]# scp -r /opt/module/ 192.168.18.162:/opt/module/
  • [root@node61 ~]# scp -r /opt/module/ 192.168.18.163:/opt/module/
  • [root@node61 ~]# scp -r /etc/profile 192.168.18.162:/etc/profile
  • [root@node61 ~]# scp -r /etc/profile 192.168.18.163:/etc/profile

2.4、SSH免密登錄(建議提前做)

配置host文件:[root@node61 ~]# vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.18.161   node61
192.168.18.162   node62
192.168.18.163   node63

[root@node61 ~]# scp /etc/hosts 192.168.18.163:/etc/hosts
[root@node61 ~]# scp /etc/hosts 192.168.18.163:/etc/hosts

配置node61對node61、node62、node63三臺主機的免密登陸

1)生成公鑰和私鑰:

[root@node61 ~]# ssh-keygen -t rsa

然後敲(三個回車),就會生成兩個文件id_rsa(私鑰)、id_rsa.pub(公鑰)

2)將公鑰拷貝到要免密登錄的目標機器上

  • [root@node61 ~]# ssh-copy-id node61
  • [root@node61 ~]# ssh-copy-id node62
  • [root@node61 ~]# ssh-copy-id node63
     

同樣配置其它兩臺機器的免密登錄

2.5、修改yum源爲阿里雲鏡像(可選)

[root@node61 ~]# yum install -y wget

[root@node61 ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bk

[root@node61 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.rep

[root@node61 ~]# yum makecache  #把服務器的包下載到本地緩存

2.6、安裝ntp(CentOS7可選,CentOS6必選)

[root@node61 ~]# yum install -y ntp
[root@node61 ~]# chkconfig --list ntpd
[root@node61 ~]# chkconfig ntpd on
[root@node61 ~]# service ntpd start

2.7、關閉Linux的THP服務(可選)

如果不關閉transparent_hugepage,HDFS會因爲這個性能嚴重受影響。

關閉transparent_hugepage方法是:

[root@node61 ~]# vim /etc/grub.conf 
添加 transparent_hugepage=never

[root@node61 ~]#     vim /etc/rc.local
添加:
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
  echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
  echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
exit 0

重啓之後,用下面的命令檢查:

[root@node61 yum.repos.d]# 
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled

always madvise [never]

有 [never]則表示THP被禁用

2.8、配置UMASK

設定用戶所創建目錄的初始權限:[root@node61 ~]# umask 0022

2.9、禁止離線更新(可選)

修改文件:vi /etc/yum/pluginconf.d/refresh-packagekit.conf

新增:enabled=0

三、安裝Ambari集羣

注意:以下操作主節點操作即可

3.1、製作本地源

製作本地源是因爲在線安裝Ambari太慢。製作本地源只需在主節點上進行。

3.1.1 配置HTTPD 服務

配置HTTPD 服務到系統層使其隨系統自動啓動

[root@node61 ~]# yum list installed | grep httpd
[root@node61 ~]# yum install -y httpd

[root@node61 ~]# systemctl status httpd.service

[root@node61 ~]# systemctl enable httpd.service

3.1.2 安裝工具

安裝本地源製作相關工具

[root@node61 ~]# yum install yum-utils createrepo yum-plugin-priorities -y
[root@hadoop102 ~]# vi /etc/yum/pluginconf.d/priorities.conf

      添加gpgcheck=0(關閉權限檢查)

3.1.3 將下載的3個tar包解壓

使用wget獲取,實在太慢,我是這樣做的,先用迅雷下載到本地,然後才上傳到服務器。

注意一下,是否下載完整:

[root@node61 software]# tar -zxvf /opt/software/ambari-2.7.3.0-centos7.tar.gz -C /var/www/html/
[root@node61 software]# mkdir -p /var/www/html/hdp
[root@node61 software]# tar -zxvf /opt/software/HDP-3.1.0.0-centos7-rpm.tar.gz -C /var/www/html/hdp
[root@node61 software]# tar -zxvf /opt/software/HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp

[root@node61 software]# tar -zxvf /opt/software/HDP-GPL-3.1.0.0-centos7-gpl.tar.gz -C /var/www/html/hdp

注:各級目錄的用戶權限一致 ,否者容易訪問不到([root@node61 centos7]# chown root:root ./2.7.3.0-139/ -R)

3.1.4 創建本地源

[root@node61 software]# cd /var/www/html/
[root@node61 html]# createrepo ./

3.1.5 將Ambari存儲庫文件下載到安裝主機上的目錄中

[root@node61 html]# wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari.repo -O /etc/yum.repos.d/ambari.repo
2020-03-15 00:36:19 URL:http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari.repo [376/376] -> "/etc/yum.repos.d/ambari.repo" [1]
[root@node61 html]#

3.1.6 修改配置文件,配置爲本地源

  • 修改ambari.repo,配置爲本地源(可選,同時修改/var/www/html/ambari/centos7/2.7.3.0-139/ambari.repo

[root@node61 html]# vi /etc/yum.repos.d/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://node61/ambari/centos7/2.7.3.0-139/
gpgcheck=0
gpgkey=http://node61/ambari/centos7/
2.7.3.0-139/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

  •  修改hdp-util.repo,配置爲本地源

[root@node61 html]# vci /var/www/html/hdp/HDP-UTILS/centos7/1.1.0.22/hdp-util.repo
[HDP-UTILS-1.1.0.22]
name=Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.22
baseurl=http://node61/hdp/HDP-UTILS/centos7/1.1.0.22/
gpgcheck=0

enabled=1
priority=1
 

  • 修改hdp.repo,配置爲本地源

[root@node61 html]# vi /var/www/html/hdp/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://node61/hdp/HDP/centos7/3.1.0.0-78/
gpgcheck=0
gpgkey=http://node61/hdp/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://node61/hdp/HDP-UTILS/centos7/1.1.0.22/
gpgcheck=0
gpgkey=http://node61/hdp/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

enabled=1
priority=1

  •  修改hdp.gpl.repo,配置爲本地源

[root@node61 3.1.0.0-78]# vi /var/www/html/hdp/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://node61/hdp/HDP-GPL/centos7/3.1.0.0-78/
gpgcheck=0
gpgkey=http://node61/hdp/HDP-GPL/centos7/3.1.0.0-78/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

enabled=1
priority=1

  • #清除YUM緩存:[root@node61~]# yum clean all
  • #把服務器的包信息下載到本地電腦緩存起來配合:[root@node61~]# yum makecache
  • #查看是否有Ambari:[root@node61~]# yum repolist

 

查看Ambari 與 HDP 資源的資源庫。

也可以打開瀏覽器查看一下:

3.2、安裝MySQL

Ambari使用的默認數據庫是PostgreSQL,用於存儲安裝元數據,可以使用自己安裝MySQL數據庫作爲Ambari元數據庫。

注意一定要用root用戶操作如下步驟;先卸載MySQL再安裝

參考:https://lixinkuan.blog.csdn.net/article/details/99699411

3.3、安裝Ambari

1)安裝ambari-server:[root@node61 ~]# yum install ambari-server

2) 拷貝mysql驅動

將mysql-connector-java.jar複製到/usr/share/java目錄下並改名爲mysql-connector-java.jar

[root@node61 software]# mkdir /usr/share/java
[root@node61 software]# cp ./mysql-connector-java.jar /usr/share/java/

將mysql-connector-java.jar複製到/var/lib/ambari-server/resources目錄下並改名爲mysql-jdbc-driver.jar

[root@node61 software]# cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar

修改ambari.properties文件

[root@node61 software]# vi /etc/ambari-server/conf/ambari.properties

添加:server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar

 

3.4、在MySQL中創建數據庫

1)創建ambari庫


[root@node61 mysql-libs]# rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
準備中...                          ################################# [100%]
正在升級/安裝...
   1:MySQL-client-5.6.24-1.el6        ################################# [100%]
[root@node61 mysql-libs]#
[root@node61 mysql-libs]#
[root@node61 mysql-libs]# mysql -h 192.168.18.102  -P 3306 -u root -p123

mysql> create database ambari;

2)使用Ambari自帶腳本創建表

mysql> use ambari;
Database changed
mysql> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;
Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

3.5、配置Ambari

執行:[root@node61 ~]# 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用戶

3)設置JDK。輸入:2

Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
==============================================================================
Enter choice (1): 2

如果上面選擇3自定義JDK,則需要設置JAVA_HOME。輸入:/opt/module/jdk1.8.0_144

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/module/jdk1.8.0_18

Validating JDK on Ambari Server...done.

Completing setup...

4)數據庫配置。選擇:y

Configuring database...

Enter advanced database configuration [y/n] (n)? y

5)選擇數據庫類型。輸入:3

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

6)設置數據庫的具體配置信息,根據實際情況輸入,如果和括號內相同,則可以直接回車。如果想重命名,就輸入。

Hostname (localhost): 192.168.18.102
Port (3306):
Database name (ambari):
Username (ambari): root
Enter Database Password (bigdata):
Re-enter password:
Configuring ambari database...

7)將Ambari數據庫腳本導入到數據庫

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)? y
Extracting system views...
ambari-admin-2.7.3.0.139.jar
....
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.

如果使用自己定義的數據庫,必須在啓動Ambari服務之前導入Ambari的sql腳本。

3.6、啓動Ambari

  • 啓動命令爲:ambari-server start
  • 停止命令爲:ambari-server stop

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章