Apache Ambari是一個基於Web的支持Apache Hadoop集群的供應、管理和監控的開源工具,Ambari已支持大多數Hadoop組件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。提供Web UI進行可視化的集群管理,簡化了大數據平台的安裝、使用難度。
主機配置規划
主機名 | IP | 配置 | 操作系統 | 角色 |
c1.heboan.com | 10.1.1.121 | 2核/8G | CentOS Linux release 7.2.1511 | Ambari server, mariadb |
c2.heboan.com | 10.1.1.120 | 2核/8G | CentOS Linux release 7.2.1511 | agent |
c3.heboan.com | 10.1.1.120 | 2核/8G | CentOS Linux release 7.2.1511 | agent |
准備好軟件包放到/root/rools/目錄下
設置主機名
綁定主機名與ip的關系

10.1.1.120 c1.heboan.com 10.1.1.121 c2.heboan.com 10.1.1.122 c3.heboan.com
配置文件打開數

#vim /etc/security/limits.conf //末尾加上 * soft nofile 32768 * hard nofile 1048576 * soft nproc 65536 * hard nproc unlimited * hard memlock ulimited * soft memlock unlimited
關閉防火牆和selinux
ntp服務配置
設置swap

echo vm.swappiness = 10 >> /etc/sysctl.conf sysctl -p
設置透明大頁面

# echo never > /sys/kernel/mm/transparent_hugepage/defrag # echo never > /sys/kernel/mm/transparent_hugepage/enabled 將如下腳本添加到/etc/rc.d/rc.local文件中 if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi
安裝jdk

tar xf jdk-8u131-linux-x64.tar.gz -C /usr/local/ cd /usr/local/;ln -s jdk1.8.0_131 jdk vim /etc/profile.d/jdk.sh export JAVA_HOME=/usr/local/jdk export JAVA_BIN=/usr/local/jdk/bin export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME JAVA_BIN PATH CLASSPATH source /etc/profile.d/jdk.sh
安裝jdbc驅動
mkdir /usr/share/java mv mysql-connector-java-5.1.22.jar /usr/share/java/mysql-connector-java.jar chmod +x /usr/share/java/mysql-connector-java.jar
配置ssh免密互信

ssh-keygen ssh-copy-id -i ~/.ssh/id_rsa.pub c1.heboan.com ssh-copy-id -i ~/.ssh/id_rsa.pub c2.heboan.com ssh-copy-id -i ~/.ssh/id_rsa.pub c3.heboan.com cd .ssh/ scp id_rsa id_rsa.pub c2.heboan.com:/root/.ssh/ scp id_rsa id_rsa.pub c3.heboan.com:/root/.ssh/
搭建本地yum源(c1.heboan.com)
安裝httpd服務
yum install -y httpd systemctl start httpd
配置倉庫

yum install -y createrepo tar xf ambari-2.7.3.0-centos7.tar.gz -C /var/www/html/ tar xf HDP-3.1.0.0-centos7-rpm.tar.gz -C /var/www/html/ tar xf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/ tar xf HDP-GPL-3.1.0.0-centos7-gpl.tar.gz -C /var/www/html/ cd /var/www/html/ambari/;createrepo . cd /var/www/html/HDP;createrepo . cd /var/www/html/HDP-UTILS/;createrepo . cd /var/www/html/HDP-GPL;createrepo . #/etc/yum.repos.d/am.repo [amrepo] name = am_repo baseurl = http://c1.heboan.com/ambari enable = true gpgcheck = false #/etc/yum.repos.d/hdp.repo [hdprepo] name = hdp_repo baseurl = http://c1.heboan.com/HDP enable = true gpgcheck = false #/etc/yum.repos.d/hdp-utils.repo [hdp-utils-repo] name = hdp-utils_repo baseurl = http://c1.heboan.com/HDP-UTILS enable = true gpgcheck = false #/etc/yum.repos.d/hdp-gpl.repo [hdp-gpl-repo] name = hdp-gpl_repo baseurl = http://c1.heboan.com/HDP-GPL enable = true gpgcheck = false yum repolist #然后也am.repo, hdp.repo, hdp-utils.repo,hdp-gpl.repo 傳到其他機器節點
配置數據庫MariaDB(c1.heboan.com)
安裝數據庫
yum install -y mariadb mariadb-server mariadb-devel
修改字符集
# vim /etc/my.cnf.d/server.cnf ... [mysqld] lower_case_table_names=1 character-set-server = utf8 collation-server = utf8_general_ci
啟動數據庫並且初始化配置
systemctl start mariadb
systemctl enable mariadb
mysql_secure_installation
創建庫並賬號授權
> create database ambari; > grant all privileges on *.* to 'bigdata'@'%' identified by 'Bigdata@123'; > flush privileges;
部署ambari(c1.heoan.com)
安裝ambari
yum -y install ambari-server
導入數據庫
> use ambari
> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
配置ambari

[root@c1 ~]# 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)? Adjusting ambari-server permissions and ownership... Checking firewall status... Checking JDK... Do you want to change Oracle JDK [y/n] (n)? y [1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8 [2] Custom JDK ============================================================================== Enter choice (1): 2 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/local/jdk Validating JDK on Ambari Server...done. Check JDK version for Ambari Server... JDK version found: 8 Minimum JDK version is 8 for Ambari. Skipping to setup different JDK for Ambari Server. Checking GPL software agreement... 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 (3): 3 Hostname (localhost): Port (3306): Database name (ambari): Username (bigdata): bigdata Enter Database Password (123456789): Configuring ambari database... Should ambari use existing default jdbc /usr/share/java/mysql-connector-java.jar [y/n] (y)? y Configuring remote database connection properties... 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 doesn't contain latest json url, skipping repoinfos modification Adjusting ambari-server permissions and ownership... Ambari Server 'setup' completed successfully.
啟動ambari-server
[root@c1 ~]# 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 8080 DB configs consistency check: no errors and warnings were found. Ambari Server 'start' completed successfully.
瀏覽器訪問http://10.1.1.120:8080, 賬號密碼:admin/admin
啟動向導創建集群
配置集群名字
配置本地倉庫
配置主機和私鑰
配置主機
根據實際需求選擇安裝的組件
服務節點分布
選擇安裝slaves and clients
配置密碼
配置hive 元數據存儲數據庫,選擇新的mysql
[root@c1 ~]# ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
相關服務數據目錄配置
服務運行用戶
服務資源配置
開始部署
部署完成