安装Ambari搭建大数据集群平台

简介

Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeper、Sqoop和Hcatalog等。
Apache Ambari 支持HDFS、MapReduce、Hive、Pig、Hbase、Zookeper、Sqoop和Hcatalog等的集中管理。也是5个顶级hadoop管理工具之一。Ambari能够安装安全的(基于Kerberos)Hadoop集群,以此实现了对Hadoop 安全的支持,提供了基于角色的用户认证、授权和审计功能,并为用户管理集成了LDAP和Active Directory。
Apache Ambari 是开源的。


本次安装的Ambari的版本为2.7.3.0官方参考文档
Ambari 2.7.3 supports only HDP-3.1.0 and HDF-3.2.0
Ambari只能管理一个集群。

环境准备

节点准备

本次准备4个节点

名称 IP 系统 CPU 内存 磁盘
master 10.186.63.57 centos7.5 4 8G 60G
node01 10.186.63.112 centos7.5 4 8G 60G
node02 10.186.63.119 centos7.5 4 8G 60G
node03 10.186.63.174 centos7.5 4 8G 60G

系统初始化(所有节点)

初始化系统安装更新及常用软件

1
2
yum update -y
yum install wget zip unzip gcc* openssl ntpdate lrzsz vim -y

安装Ambari需要的应用有:yum、rpm、scp、curl、unzip、tar、wget、gcc*、openssl、python
部分应用系统已经自带不用安装。

修改打开最大文件数(所有节点)

建议的最大文件数配置为大于等于10000,运行命令检查

1
2
ulimit -Sn
ulimit -Hn

如果数值小于10000,运行以下命令配置

1
ulimit -n 10000

配置主机名和hosts解析(所有节点)

配置主机名

1
hostnamectl set-hostname master

其他节点命令相同
修改hosts解析,编辑文件/etc/hosts,增加如下内容。

1
2
3
4
10.186.63.57	master
10.186.63.112 node01
10.186.63.119 node02
10.186.63.174 node03

时间同步(所有节点)

添加定时任务

1
echo "0 */1 * * * /usr/sbin/ntpdate 10.186.61.39" >> /var/spool/cron/root

10.186.61.39为内网中一台时间服务器,也可以使用其他地址。
修改时区

1
2
mv /etc/localtime /etc/localtime.bak
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

SSH免密登录

在master节点上安装ambari server,在其他节点安装ambari agent,server端控制agent端通过ssh,所以在此处配置ssh免密登录。
server端执行

1
ssh-keygen

在根目录会生成以下两个文件

1
2
.ssh/id_rsa
.ssh/id_rsa.pub

添加公钥到所有的节点
授权

1
2
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

连接测试

1
ssh root@node01

修改网络配置

1
vim /etc/sysconfig/network

增加以下两行

1
2
NETWORKING=yes
HOSTNAME=<fully.qualified.domain.name>

个人认为第二行不用加

关闭防火墙(所有节点)

1
2
systemctl stop firewalld.service
systemctl disable firewalld.service

关闭SELinux(所有节点)

1
2
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
setenforce 0

安装MySQL JDBC驱动(所有节点)

1
2
3
4
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar -zxvf mysql-connector-java-5.1.46.tar.gz
mkdir -p /usr/share/java/
cp mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

或者

1
yum install mysql-connector-java -y

配置JDK(所有节点)

1
rpm -ivh jdk-8u211-linux-x64.rpm

也可以不用安装,参考步骤配置ambari server

安装Mysql

在master节点上安装,也可以在其他节点。
版本要求:5.5及其以后版本。
数据库使用mysql数据库,具体安装步骤参考:
Mysql自动安装脚本
Mysql安装
创建需要用到的数据库及数据库用户并配置赋权

1
2
3
4
5
CREATE DATABASE ambari DEFAULT CHARACTER SET utf8;
CREATE USER 'ambari'@'%' IDENTIFIED BY 'francis';
GRANT ALL PRIVILEGES ON ambari.* TO 'ambari'@'%' WITH GRANT OPTION;
commit;
flush privileges;

暂时只创建ambari的数据库,其他数据库根据需求自行创建。

配置本地源

网络情况比较好,我就是不配置!
因为ambari 和 hdp 安装文件比较大,如果在线安装的话会很慢,所以最好选择本地源。
(可以在集群可以访问的任何机器上制作本地源)

安装制作本地源工具

1
yum install yum-utils createrepo

创建一个HTTP服务器

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

为Web服务器创建目录

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

下载系统对应的最新版相关安装包

其中包括Ambari、HDP、HDP-UTILS,由于HDP-GPL较小只有几百k,所以没有配置为本地源。

下载

1
2
3
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari-2.7.3.0-centos7.tar.gz
wget http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.1.0.0/HDP-3.1.0.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.7.3.0/bk_ambari-installation/content/ch_using-local-repos.html

1
2
3
tar -zxvf ambari-2.7.3.0-centos7.tar.gz -C /var/www/html
tar -zxvf HDP-3.1.0.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/

解决在浏览器访问http://10.186.63.57/hdp/HDP/centos7/2.7.3.0 为空白

原因:该目录下index.xml使用了 https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js 国内访问不了谷歌,将index.xml注释掉即可

1
2
cd /var/www/html/hdp/HDP/centos7/3.1.0.0-91
mv index.xml index.xml.bak

此时应该可以在浏览器访问下面的地址了,可以验证一下
http://10.186.63.57/ambari/centos7/2.7.3.0-3
http://10.186.63.57/hdp/HDP/centos7/3.1.0.0-91
http://10.186.63.57/hdp/HDP-UTILS

配置ambari、HDP、HDP-UTILS的本地源

1
2
cp /var/www/html/ambari/centos7/2.7.3.0-3/ambari.repo /etc/yum.repos.d/
cp /var/www/html/hdp/HDP/centos7/3.1.0.0-91/hdp.repo /etc/yum.repos.d/

将每个repo里的baseurl和gpgkey的地址修改为本地的

1
vim /etc/yum.repos.d/ambari.repo

1
2
3
4
5
6
7
8
#VERSION_NUMBER=2.7.3.0-3
[ambari-2.7.3.0]
name=ambari Version - ambari-2.7.3.0
baseurl=http://10.186.63.57/ambari/centos7/2.7.3.0-3
gpgcheck=1
gpgkey=http://10.186.63.57/ambari/centos7/2.7.3.0-3/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
1
vim /etc/yum.repos.d/hdp.repo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#VERSION_NUMBER=3.1.0.0-91
[HDP-3.1.0.0]
name=HDP Version - HDP-3.1.0.0
baseurl=http://10.186.63.57/hdp/HDP/centos7/3.1.0.0-91
gpgcheck=1
gpgkey=http://10.186.63.57/hdp/HDP/centos7/3.1.0.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://10.186.63.57/hdp/HDP-UTILS
gpgcheck=1
gpgkey=http://10.186.63.57/hdp/HDP/centos7/3.1.0.0-91/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
1
2
3
4
yum clean all
yum list update
yum makecache
yum repolist

(可选)如果您的环境中配置了多个存储库,请在集群中的所有节点上部署以下插件

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

安装Ambari

配置yum源(所有节点)

1
2
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
yum repolist

安装ambari server

master节点操作

1
yum install ambari-server -y

配置ambari server

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 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] 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/java/jdk1.8.0_211-amd64
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...
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...
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 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.

选择JDK步骤,因为我们已经安装了JDK环境,可以选择2。
配置的结果保存在/etc/ambari-server/conf,主要是文件/etc/ambari-server/conf/ambari.properties,可以打开文件去验证。

启动ambari server

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 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.186.63.57:8080,默认用户admin,密码为admin。

安装大数据库平台过程

进入web页面,一切按照提示进行即可,以下截图为提示步骤!
此处如果没有配置本地源,可以直接NEXT,如果配置了本地源可以选择使用Use Local Repository
Alt text
此处选择添加节点,已经配置过hosts,所以可以直接写hostname。密钥即为在master生成的id_rsa文件。
Alt text
此处选择要安装的服务,根据自己的需求安装即可。
其中SmartSense为必选项,其他需要添加服务根据提示。
写文档时中选择了HDFS、Zookeeper、Ambari Metrics、Smart Sense服务。
Alt text
以下截图为安装完成后,整个界面的概览。
Alt text
到此,安装Ambari过程已结束。

本文标题:安装Ambari搭建大数据集群平台

文章作者:Francis

原始链接:http://www.cnops.com/posts/bfbe0eca.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。