使用Ambari搭建Hadoop集羣

Hadoop 介紹

Hadoop是一個開發和運行處理大規模數據的軟件平臺,是Apache的一個用java語言實現開源軟件框架,實現在大量計算機組成的集羣中對海量數據進行分佈式計算。Hadoop框架中最核心設計就是:MapReduce和HDFS。MapReduce提供了對數據的分佈式計算,HDFS提供了海量數據的分佈式存儲。
在Hadoop家族中,收入了20多個用於計算、分析、存儲、監控、管理等組件和工具,這些家族成員極大的豐富了Hadoop的各方面的功能。

Hadoop常見家族成員

下面簡單的列舉幾個常見的組件:

  • Apache Hadoop: 是Apache開源組織的一個分佈式計算開源框架,提供了一個分佈式文件系統子項目(HDFS)和支持MapReduce分佈式計算的軟件架構。
  • Apache Hive: 是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射爲一張數據庫表,通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。
  • Apache Pig: 是一個基於Hadoop的大規模數據分析工具,它提供的SQL-LIKE語言叫Pig Latin,該語言的編譯器會把類SQL的數據分析請求轉換爲一系列經過優化處理的MapReduce運算。
  • Apache HBase: 是一個高可靠性、高性能、面向列、可伸縮的分佈式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集羣。
  • Apache Sqoop: 是一個用來將Hadoop和關係型數據庫中的數據相互轉移的工具,可以將一個關係型數據庫(MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關係型數據庫中。
  • Apache Zookeeper: 是一個爲分佈式應用所設計的分佈的、開源的協調服務,它主要是用來解決分佈式應用中經常遇到的一些數據管理問題,簡化分佈式應用協調及其管理的難度,提供高性能的分佈式服務
  • Apache Mahout:是基於Hadoop的機器學習和數據挖掘的一個分佈式框架。Mahout用MapReduce實現了部分數據挖掘算法,解決了並行挖掘的問題。
  • Apache Cassandra:是一套開源分佈式NoSQL數據庫系統。它最初由Facebook開發,用於儲存簡單格式數據,集Google BigTable的數據模型與Amazon Dynamo的完全分佈式的架構於一身
  • Apache Avro: 是一個數據序列化系統,設計用於支持數據密集型,大批量數據交換的應用。Avro是新的數據序列化格式與傳輸工具,將逐步取代Hadoop原有的IPC機制
  • Apache Ambari: 是一種基於Web的工具,支持Hadoop集羣的供應、管理和監控。
  • Apache Chukwa: 是一個開源的用於監控大型分佈式系統的數據收集系統,它可以將各種各樣類型的數據收集成適合 Hadoop 處理的文件保存在 HDFS 中供 Hadoop 進行各種 MapReduce 操作。
  • Apache Hama: 是一個基於HDFS的BSP(Bulk Synchronous Parallel)並行計算框架, Hama可用於包括圖、矩陣和網絡算法在內的大規模、大數據計算。
  • Apache Flume: 是一個分佈的、可靠的、高可用的海量日誌聚合的系統,可用於日誌數據收集,日誌數據處理,日誌數據傳輸。
  • Apache Giraph: 是一個可伸縮的分佈式迭代圖處理系統, 基於Hadoop平臺,靈感來自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。
  • Apache Oozie: 是一個工作流引擎服務器, 用於管理和協調運行在Hadoop平臺上(HDFS、Pig和MapReduce)的任務。
  • Apache Crunch: 是基於Google的FlumeJava庫編寫的Java庫,用於創建MapReduce程序。與Hive,Pig類似,Crunch提供了用於實現如連接數據、執行聚合和排序記錄等常見任務的模式庫
  • Apache Whirr: 是一套運行於雲服務的類庫(包括Hadoop),可提供高度的互補性。Whirr學支持Amazon EC2和Rackspace的服務。
  • Apache Bigtop: 是一個對Hadoop及其周邊生態進行打包,分發和測試的工具。
  • Apache HCatalog: 是基於Hadoop的數據表和存儲管理,實現中央的元數據和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供關係視圖。
  • Cloudera Hue: 是一個基於WEB的監控和管理系統,實現對HDFS,MapReduce/YARN, HBase, Hive, Pig的web化操作和管理。

Ambari介紹

Ambari 跟 Hadoop 等開源軟件一樣,也是 Apache Software Foundation 中的一個項目,並且是頂級項目。目前最新的發佈版本是 2.6.0。Ambari 是用來創建、管理、監視 Hadoop 的集羣,但是這裏的 Hadoop 是廣義,指的是 Hadoop 整個生態圈(例如 Hive,Hbase,Sqoop,Zookeeper 等),而並不僅是特指 Hadoop。用一句話來說,Ambari 就是爲了讓 Hadoop 以及相關的大數據軟件更容易使用的一個工具。

Ambari提供了對Hadoop更加方便快捷的管理功能,主要包含:

  • 通過一步一步的安裝嚮導簡化了集羣供應。
  • 預先配置好關鍵的運維指標(metrics),可以直接查看Hadoop Core(HDFS和MapReduce)及相關項目(如HBase、Hive和HCatalog)是否健康。
  • 支持作業與任務執行的可視化與分析,能夠更好地查看依賴和性能。
  • 通過一個完整的RESTful API把監控信息暴露出來,集成了現有的運維工具。
  • 用戶界面非常直觀,用戶可以輕鬆有效地查看信息並控制集羣。

使用Ambari部署Hadoop集羣

在使用Ambari安裝部署Hadoop時,需要對下載鏡像源,配置本地環境。

配置說明

  • 主機:
    node-1 : 192.168.10.11 , 配置:2C8G-30G ,yum 鏡像源,數據庫, java環境
    node-2 : 192.168.10.12, 配置:2C8G-30G ,java環境
    node-2 : 192.168.10.12, 配置:2C8G-30G , java環境
  • 軟件包 Hadoop 軟件鏡像壓縮包,Ambari鏡像壓縮包,版本2.6

    配置本地yum源

    1、在node-1上配置hadoop所有組件的yum源。安裝httpd:

    [root@node-1 ~]# yum install httpd -y

    2、在官方下載鏡像文件,此文件大概7G,可以使用p2p工具下載,其中包含兩個repo文件和4個壓縮包:

    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/HDP/centos7/2.x/updates/2.6.4.0/hdp.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
    wget http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz
    wget http://public-repo-1.hortonworks.com/HDP-GPL/centos7/2.x/updates/2.6.4.0/HDP-GPL-2.6.4.0-centos7-rpm.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

    3、將對應的tar包解壓到httpd的文件目錄:

[root@node-1 html]# tar xf ambari-2.6.1.0-centos7.tar.gz
[root@node-1 html]# tar xf HDP-2.6.4.0-centos7-rpm.tar.gz 
[root@node-1 html]# tar xf HDP-GPL-2.6.4.0-centos7-rpm.tar.gz 
[root@node-1 html]# mkdir HDP-UTILS
[root@node-1 html]# tar xf HDP-UTILS-1.1.0.22-centos7.tar.gz -C HDP-UTILS/

4、配置基礎源,創建hadoop的repo文件,修改repo文件源路徑:

# ambari 源
vim /etc/yum.repo.d/ambari.repo

[ambari-2.6.1.0]
name=ambari Version - ambari-2.6.1.0
baseurl=http://192.168.10.11/ambari/centos7/2.6.1.0-143
gpgcheck=1
gpgkey=http://192.168.10.11/ambari/centos7/2.6.1.0-143/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

# HDP源:

vim /etc/yum.repo.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://192.168.10.11/HDP/centos7/2.6.4.0-91
gpgcheck=1
gpgkey=http://192.168.10.11/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://192.168.10.11/HDP-UTILS/
gpgcheck=1
gpgkey=http://192.168.10.11/HDP-UTILS/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

[HDP-GPL-2.6.4.0]
name=HDP-GPL Version - HDP-GPL-2.6.4.0
baseurl=http://192.168.10.11/HDP-GPL/centos7/2.6.4.0-91
gpgcheck=1
gpgkey=http://192.168.10.11/HDP-GPL/centos7/2.6.4.0-91/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

啓動httpd。
5、將本地源的repo配置拷貝到其它節點,並創建緩存:

[root@node-1 ~]# scp /etc/yum.repos.d/ambari.repo 192.168.10.12:/etc/yum.repos.d/
[root@node-1 ~]# scp /etc/yum.repos.d/ambari.repo 192.168.10.13:/etc/yum.repos.d/
[root@node-1 ~]# scp /etc/yum.repos.d/hdp.repo 192.168.10.12:/etc/yum.repos.d/
[root@node-1 ~]# scp /etc/yum.repos.d/hdp.repo 192.168.10.13:/etc/yum.repos.d/

在各個節點創建緩存:

# yum clean all
# yum makecache fast

初始化環境

1、各個節點安裝java-1.8.0-openjdk:

 yum install java-1.8.0-openjdk -y

2、解析主機名:

 echo "192.168.10.11 node-1" >> /etc/hosts
 echo "192.168.10.12 node-2" >> /etc/hosts
 echo "192.168.10.13 node-3" >> /etc/hosts

3、創建主機信任關係,主要是master節點到slave節點:

 [root@node-1 ~]# ssh-keygen -t rsa
 [root@node-1 ~]# cp id_rsa.pub /root/.ssh/authorized_keys
 [root@node-1 ~]# scp id_rsa.pub 192.168.10.12:/root/.ssh/authorized_keys
 [root@node-1 ~]# scp id_rsa.pub 192.168.10.13:/root/.ssh/authorized_keys

4、安裝配置數據庫:

yum install mariadb-server -y
systemctl start mariadb
mysql_secure_installation 

# 創建數據庫:

MariaDB [(none)]> create database ambari default character set utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on ambari.* to ambari@localhost identified by 'bigdata';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all on ambari.* to ambari@'%' identified by 'bigdata';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> create database hive default character set utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on hive.* to hive@localhost identified by 'hive';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all on hive.* to hive@'%' identified by 'hive';

安裝Amabri服務

1、在node-1上安裝ambari-server,並啓動配置嚮導:

[root@node-1 ~]# yum install ambari-server -y
[root@node-1 ~]# ambari-server setup 

提示: 如果安裝配置用戶時,出現如下報錯:
ERROR: Unexpected error 'getpwuid(): uid not found: 1001',可以查看ambari.repo文件的權限,修改爲默認的root 644權限即可。

2、按照配置嚮導信息,配置用戶,java_home:

 [root@node-1 ~]# ambari-server setup
Using python  /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
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: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre  # 填寫java_home
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)? n
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): 
Configuring ambari database...
WARNING: Before starting Ambari Server, you must copy the MySQL JDBC driver JAR file to /usr/share/java and set property "server.jdbc.driver.path=[path/to/custom_jdbc_driver]" in ambari.properties.
Press <enter> to continue.

3、到上面一步時,根據提示上傳mysql的 jdbc驅動,並修改配置文件,指定jdbc驅動文件位置:

[root@node-1 ~]# cd /usr/share/java
[root@node-1 java]# ll
total 3388
-rw-r--r-- 1 root root 3467861 Jan 22 16:16 mysql-connector-java-5.1.45.tar.gz
[root@node-1 java]# tar xf mysql-connector-java-5.1.45.tar.gz 
[root@node-1 java]# mv mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jar ./

修改配置文件:

 vim /etc/ambari-server/conf/ambari.properties 

server.jdbc.driver.path=/usr/share/java/mysql-connector-java-5.1.45-bin.jar

配置完成後繼續,會出現如下提示:

Press <enter> to continue.
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)? 

4、出現上述提示時,根據信息導入數據庫:

[root@node-1 ~]# mysql -uroot -p ambari < /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

5、啓動服務:

[root@node-1 ~]# ambari-server start

6、服務啓動成功後,會監聽8080端口,使用瀏覽器登錄,賬號密碼admin/admin正常登錄,則安裝完成。
使用Ambari搭建Hadoop集羣

創建集羣

使用ambari的web界面課完成對集羣的所有管理操作,創建一個實例集羣。
使用Ambari搭建Hadoop集羣

選擇本地源,移除不必要的版本:
使用Ambari搭建Hadoop集羣

添加主機節點,上傳id_rsa文件:
使用Ambari搭建Hadoop集羣

安裝成功後,會顯示如下界面:
使用Ambari搭建Hadoop集羣

選擇需要安裝的服務:
使用Ambari搭建Hadoop集羣

根據需要選擇服務配置:
使用Ambari搭建Hadoop集羣

在後續的配置中,會提示配置賬戶密碼,數據庫等信息,根據提示配置即可。

使用Ambari搭建Hadoop集羣

 

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