CentOS-7.2安装Ambari-2.6.1
一、Ambari 是什么?
Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是*项目。目前最新的发布版本是 2.6.1。就 Ambari 的作用来说,就是创建、管理、监视 Hadoop 的集群,但是这里的 Hadoop 是广义,指的是 Hadoop 整个生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等等),而并不仅是特指 Hadoop。用一句话来说,Ambari 就是为了让 Hadoop 以及相关的大数据软件更容易使用的一个工具。
现在,大家应该知道什么人最需要Ambari了。那些苦苦花费好几天去安装、调试 Hadoop 的初学者是最能体会到 Ambari 的方便之处的。而且,Ambari 现在所支持的平台组件也越来越多,例如流行的 Spark,Storm 等计算框架,以及资源调度平台 YARN 等,我们都能轻松地通过 Ambari 来进行部署。
Ambari 自身也是一个分布式架构的软件,主要由两部分组成:Ambari Server 和 Ambari Agent。简单来说,用户通过 Ambari Server 通知 Ambari Agent 安装对应的软件;Agent 会定时地发送各个机器每个软件模块的状态给 Ambari Server,最终这些状态信息会呈现在 Ambari 的 GUI,方便用户了解到集群的各种状态,并进行相应的维护。
二、Ambari安装详解(在线安装)
1.安装准备
关于 Ambari 的安装,目前网上能找到两个发行版,一个是 Apache 的 Ambari,另一个是 Hortonworks 的,两者区别不大。安装 Ambari 最方便的方式就是使用公共的库源(public repository)。这个不是重点,所以不在此赘述,下面只给出安装思路,注重说下离线安装。
在进行具体的安装之前,需要做几个准备工作。
SSH 的无密码登录;
Ambari 的 Server 会 SSH 到 Agent 的机器,拷贝并执行一些命令。因此我们需要配置 Ambari Server 到 Agent 的 SSH 无密码登录。在这个例子里,namenode 可以 SSH 无密码登录datanode1,datanode2,SecondNamenode。
确保 Yum 可以正常工作;
通过公共库(public repository),安装 Hadoop 这些软件,背后其实就是应用 Yum 在安装公共库里面的 rpm 包。所以这里需要您的机器都能访问 Internet。
确保 home 目录的写权限。
Ambari 会创建一些 OS 用户(我安装ambari的时候使用root用户以避免权限问题)。
2.获取 Ambari 的公共库文件(public repository)
登录到 Linux 主机并执行下面的命令(也可以自己手工下载):
1 wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.1.0/ambari.repo
将下载的 ambari.repo 文件拷贝到 Linux 的系统目录/etc/yum.repos.d/。拷贝完后,我们需要获取该公共库的所有的源文件列表。依次执行以下命令。
1 yum clean all
2 yum list|grep ambari
如果可以看到 Ambari 的对应版本的安装包列表,说明公共库已配置成功。然后就可以安装 Ambari 的 package 了。执行下面的命令安装 Ambari Server 到该机器。
1 yum install ambari-server
待安装完成后,便需要对 Ambari Server 做一个简单的配置。执行下面的命令。
1 amari-server setup
在这个交互式的设置中,采用默认配置即可。Ambari 会使用 Postgres 数据库,默认会安装并使用 Oracle 的 JDK。默认设置了 Ambari GUI 的登录用户为 admin/admin。并且指定 Ambari Server 的运行用户为 root。
简单的 setup 配置完成后。就可以启动 Ambari 了。运行下面的命令。
1 ambari-server start
当成功启动 Ambari Server 之后,便可以从浏览器登录,默认的端口为 8080。以本文环境为例,在浏览器的地址栏输入 http://www.namenode:8080,登录密码默认为 admin/admin。Ambari的在线安装相对比较简单,在此就不太详细叙述,有什么不清楚的可以看下下面的离线安装。
三、Ambari安装详解(离线安装)
1.安装环境说明
安装ambari前先安装好 Centos 7并更新。要确保之前没有安装过Ambari,并且没有搭建过hadoop环境,均是新安装的系统,未做任何设置。
2.操作系统环境准备
2.1 配置SSH免密码登录
主节点里root用户登录执行如下步骤,生成sshkey
ssh-keygen
一路回车键,直到结束,执行完成后会在~目录下生成.ssh文件夹,其中包含id_rsa 和 id_rsa.pub两个文件。
生成authorized_keys
cat id_rsa.pub >> authorized_keys
其他centos主机也依次执行 ssh-keygen命令
ssh-keygen
scp拷贝authorized_keys 到ssh连接主机
scp ~/.ssh/authorized_keys hadoop61:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys hadoop62:~/.ssh/authorized_keys
...
scp ~/.ssh/authorized_keys hadoop70:~/.ssh/authorized_keys
验证ssh登录
ssh hadoop61
2.2 关闭防火墙(也可以不关闭防火墙,给需要的应用开方端口。所有节点都要设置)
systemctl disable firewalld
systemctl stop firewalld
2.3 关闭SELinux(所有节点都要设置)
查看SELinux状态:
sestatus
如果SELinux status参数为enabled即为开启状态
临时关闭,不用重启机器:
setenforce
修改配置文件需要重启机器:
vi /etc/sysconfig/selinux
SELINUX=disabled
3.制作本地源
制作本地源只需在主节点上进行即可。
3.1 安装 Apache HTTP 服务器
允许 http 服务通过防火墙(永久,如果已经关闭防火墙,则可以不用执行2、3行命令)。
yum install httpd
firewall-cmd --add-service=http
firewall-cmd --permanent --add-service=http
添加 Apache 服务到系统层使其随系统自动启动。
systemctl start httpd.service
systemctl enable httpd.service
3.2 安装本地源制作相关工具
yum install yum-utils createrepo
3.3下载安装资源
下载 Ambari 2.6.1 , HDP 2.6.5 的安装资源,本次安装是在Centos 7 上,只列出centos7的资源,其他系统的请现在对用系统的资源。
ambari下载资源
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/ambari/centos7/2.x/updates/2.6.1.0/ambari-2.6.1.0-centos7.tar.gz
hdp下载资源
wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.5.0/hdp.repo
wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.5.0/HDP-2.6.5.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
其他版本,下载地址请参考:
Ambari:
HDP和HDP UTILS:
在httpd网站根目录,默认是即/var/www/html/,创建目录repository(自定义名字,自己根据情况命名),并且将下载的压缩包解压到/var/www/html/ambari目录。
tar -zxvf ambari-2.6.1.0-centos7.tar.gz -C /var/www/html/repository/
tar -zxvf HDP-2.6.5.0-centos7-rpm.tar.gz -C /var/www/html/repository/
tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/repository/
curl命令验证本地源地址是否可用
curl http://localhost/repository
3.4 配置ambari、HDP、HDP-UTILS的本地源
(ambari.repo、hdp.repo可以在解压后的包中找到,修改文件中地址为本地源地址即可)
vi ambari.repo
#VERSION_NUMBER=2.6.1.0-
[ambari-2.6.1.0]
name=ambari Version - ambari-2.6.1.0
baseurl=http://master/repository/ambari/centos7/2.6.1.0-143/
gpgcheck=
gpgkey=http://master/repository/ambari/centos7/2.6.1.0-143//RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=
priority=
vi hdp.repo
#VERSION_NUMBER=2.6.5.0-
[HDP-2.6.5.0]
name=HDP Version - HDP-2.6.5.0
baseurl=http://master/repository/HDP/centos7/2.6.5.0-292/
gpgcheck=
gpgkey=http://master/repository/HDP/centos7/2.6.5.0-292/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=
priority= [HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://master/repository/HDP-UTILS/centos7/1.1.0.22/
gpgcheck=
gpgkey=http://master/repository/HDP-UTILS/centos7/1.1.0.22//RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=
priority=
将上面的修改过的源放到/etc/yum.repos.d/下面
mv ambari.repo /etc/yum.repos.d/
mv hdp.repo /etc/yum.repos.d/
然后更新yum
yum clean all
yum list update
yum makecache
yum repolist
3.5 安装Mysql数据库
Ambari安装会将安装等信息写入数据库,建议使用自己安装的MySQL数据库,也可以不安装而使用默认数据库PostgreSQL。
Mysql数据库安装过程如下:
3.5.1. 下载mysql的repo源(CentOS 7的yum源中默认没有mysql,要先下载mysql的repo源)
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
3.5.2. 安装mysql57-community-release-el7-8.noarch.rpm包
rpm -ivh mysql57-community-release-el7-.noarch.rpm --nodeps --force
安装这个包后,会获得两个mysql的yum repo源
/etc/yum.repos.d/mysql-community.repo
/etc/yum.repos.d/mysql-community-source.repo
3.5.3.安装mysql
yum install mysql-server
3.5.4. 启动mysql服务
查看MySQL服务是否已启动
service mysqld status
启动服务:
systemctl start mysqld
3.5.5. 重置root密码(如果需要设置简单密码,请查看另外一篇文章:mysql密码策略修改)
MySQL5.7会在安装后为root用户生成一个随机密码,而不是像以往版本的空密码。 可以安全模式修改root登录密码或者用随机密码登录修改密码。下面用随机密码方式
MySQL为root用户生成的随机密码通过mysqld.log文件可以查找到:
grep 'temporary password' /var/log/mysqld.log
修改root用户密码:(MySQL的密码策略比较复杂,过于简单的密码会被拒绝)
mysql -u root -p
mysql> Enter password: (输入刚才查询到的随机密码)
mysql> SET PASSWORD FOR 'root'@'localhost'= "Zgw-123";
mysql> exit
3.5.6. 开放3306端口
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Zgw-123' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql>exit;
开启防火墙mysql 3306端口的外部访问:
firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --reload
安装完成后创建ambari数据库及用户,登录root用户执行下面语句:
create database ambari character set utf8 ;
CREATE USER 'ambari'@'%'IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
如果要安装Hive,再创建Hive数据库和用户 再执行下面的语句:
create database hive character set utf8 ;
CREATE USER 'hive'@'%'IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
如果要安装Oozie,再创建Oozie数据库和用户 再执行下面的语句:
create database oozie character set utf8 ;
CREATE USER 'oozie'@'%'IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';
FLUSH PRIVILEGES;
安装mysql jdbc 驱动:
yum install mysql-connector-java
4.进行安装Ambari
4.1.1安装Ambari
yum install ambari-server
4.1.2 配置Ambari
ambari-server setup
1.检查SELinux是否关闭,如果关闭不用操作。
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
2.提示是否自定义设置。输入:y
Customize user account for ambari-server daemon [y/n] (n)?
3.ambari-server 账号。输入:ambari,默认为root
Enter user account for ambari-server daemon (root):ambariAdjusting ambari-server permissions and ownership...
4.检查防火墙,如果关闭则不用操作。
Enter user account for ambari-server daemon (root):ambariAdjusting ambari-server permissions and ownership...
5.检查JDK。
Checking JDK...
[] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files
[] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files
[] Custom JDK
==============================================================================
Enter choice ():3
6.置JAVA_HOME
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/java/jdk1.8.0_121
7.配置数据库
Configuring database...
Enter advanced database configuration [y/n] (n)? y
8.选择数据库
Configuring database...
==============================================================================
Choose one of the following options:
[] - PostgreSQL (Embedded)
[] - Oracle
[] - MySQL / MariaDB
[] - PostgreSQL
[] - Microsoft SQL Server (Tech Preview)
[] - SQL Anywhere
[] - BDB
==============================================================================
Enter choice ():
9.设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。
Enter choice ():
Hostname (localhost):
Port ():
Database name (ambari):
Username (ambari):
Enter Database Password (bigdata):
Re-enter password:
Configuring ambari database...
10.设置数据库连接属性,完成配置。
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.2.0..jar
.......
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
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.2.0..jar
.......
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
11.将Ambari数据库脚本导入到数据库
mysql> use ambari;
Database changed
mysql> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
4.1.3启动Amabri
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 DB configs consistency check: no errors and warnings were found.
Ambari Server 'start' completed successfully.
成功启动后在浏览器输入Ambari地址:http://yourhostname:8080
出现登录界面,默认管理员账户登录, 账户:admin 密码:admin。
登录成功后出现下面的界面,至此Ambari的安装成功。
4.2 安装安装HDP 2.4.2 配置集群
点击上面登录成功页面的Launch Install Wizard 按钮进行集群配置
4.2.1设置集群名称
4.2.2设置HDP版本信息
点击Add Version添加自己下载的HDP版本。
弹出的窗口中指定之前配置的HDP源中HDP版本文件,然后点击Read Version Info按钮,确定版本信息。
4.3.设置HDP 安装源
因为HDP安装包非常大,不建议采用Public Repository,本次安装采用Local Repository,前边已经配置完成,此处只需指定为前边所配置的本地源地址即可,如下图所示。
4.4设置集群信息,并配置ambari-server ssh私钥信息(前提是已经完成集群机器ssh的配置)。
配置完成后,点击Register and Confirm,确认集群配置信息,ambari-server会通过ssh自动在集群中刚才所配置的机器上安装ambari-agent。
如果ssh配置的没有问题的话,安装会在几分钟之内结束,如下图所示。
注意:此处安装完成后,表格下边可能会有警告信息,打开查看警告信息,根据出现的问题进行修复,然后再执行下一步。