Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。
本文记录了博主首次安装Ambari,以及用其安装hadoop、hive、spark等大数据服务的过程,整理成记录,防止忘记。
从2021年1月开始,ambari开始收费了,如果想使用ambari,要么基于源码自己编译
https://ambari.apache.org/,
要么给钱下载
https://www.cloudera.com/products/open-source/apache-hadoop/apache-ambari.html
当然,我们也可以在各种网站、网盘找资源 【手动狗头】(如果找不到,评论留邮箱)
1. 下载ambari本地yum源的压缩包
首先准备好三个包,本次安装的是ambari2.7.4
- ambari-2.7.4.0-centos7.tar.gz
- HDP-3.1.4.0-centos7-rpm.tar.gz
- HDP-UTILS-1.1.0.22-centos7.tar.gz
其中HDP-3.1.4.0-centos7-rpm.tar.gz包很大,大概有8,9个G,如果下载到的是分卷包,解压的时候请使用分卷解压命令:
cat HDP-3.1.4.0-centos7-rpm.tar.gz.* | tar -xvf
2. 环境准备
首先我们准备三台主机(或三台虚拟机),让后在上面安装centos7系统,安装java环境、设置固定IP、设置主机名称、设置hosts文件,设置SSH免密登录(有文章说只需设置主节点(ambari server所在)机器对其他机器免密即可)。详细设置过程见另一篇文章 https://www.jianshu.com/p/1eba6e506738 的第一章节“服务器准备”。
其他注意事项:
- 使用国内的yum源会让软件安装更加快速稳定 https://developer.aliyun.com/mirror/centos
- 如果三台机器无法连接外网,那需要设置服务器时间同步ntp
- 关闭防火墙
# 关闭防火墙
systemctl stop firewalld.service
# 开机不启动
systemctl disable firewalld.service
- 关闭selinux
# 临时关闭(机器重启后会再开)
setenforce 0
# 永久关闭(设置后需重启才能生效)
vi /etc/selinux/config # 然后将 SELINUX=enforcing 改为 SELINUX=disabled
- 关闭THP
本文使用数据库是mysql所以没关,如果用Oracle或MongoDB需要关闭thp,参考: https://www.cnblogs.com/songxingzhu/p/7685395.html
3. 设置ambari本地yum源
本章节需要在主节点上操作(hadoop201),
3.1 安装服务器软件
可使用httpd或者nginx的方式将ambari发布出去,本章节将两个方法都写上,读者基于自己习惯选一个即可。
3.1.1 使用httpd方式;
# 查看是否安装了httpd
whereis httpd
#安装 httpd ,已经安装请忽略
yum -y install httpd
# 查看是否启动httpd
systemctl status httpd
# 启动httpd
systemctl start httpd
# 或 service httpd start
安装完成后,会生成 /var/www/html目录(相当于Tomcat的webapps目录)
将之前下的ambari-2.7.4.0-centos7.tar.gz、HDP-3.1.4.0-centos7-rpm.tar.gz、HDP-UTILS-1.1.0.22-centos7.tar.gz三个包放到 /var/www/html/ 下。
3.1.2 使用nginx方式
安装nginx的方法略...
创建文件夹/home/ambari_repo/(也可以是其他位置,哪个磁盘大放哪儿),将之前下的ambari-2.7.4.0-centos7.tar.gz、HDP-3.1.4.0-centos7-rpm.tar.gz、HDP-UTILS-1.1.0.22-centos7.tar.gz三个包放到 /home/ambari_repo/ 下。
在nginx配置中添加ambari的配置,本次监听了80端口
server {
listen 80;
server_name 192.168.1.201;
location / {
root /home/ambari_repo/;
autoindex on;
autoindex_localtime on;
autoindex_exact_size off;
}
}
3.2 制作本地源
进入压缩包所在目录,执行如下命令:
# 解压压缩包
tar -zxvf ambari-2.7.4.0-centos7.tar.gz
tar -zxvf HDP-3.1.4.0-centos7-rpm.tar.gz
tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz
# 安装本地源工具
yum install yum-utils createrepo yum-plugin-priorities -y
# 创建本地源
createrepo ./
然后在浏览器访问 http://主节点ip, 看看是否能看到如下页面
3.3 设置yum本地源
- 修改ambari.repo中的地址:
# 注意以自己的实际地址为准
cd /home/ambari_repo/ambari/centos7/2.7.4.0-118/
vi ambari.repo
修改后的内容如下(主要是将baseurl和gpgkey改为实际值):
#VERSION_NUMBER=2.7.4.0-118
[ambari-2.7.4.0]
#json.url = http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json
name=ambari Version - ambari-2.7.4.0
#baseurl=http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.4.0
baseurl=http://192.168.1.201/ambari/centos7/2.7.4.0-118
gpgcheck=1
#gpgkey=http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.4.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
gpgkey=http://192.168.1.201/ambari/centos7/2.7.4.0-118/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
将此文件复制到/etc/yum.repos.d
cp ambari.repo /etc/yum.repos.d/
- 修改hdp.repo中的地址
cd /home/ambari_repo/HDP/centos7/3.1.4.0-315/
vi hdp.repo
修改后的内容如下(主要是将baseurl和gpgkey改为实际值):
#VERSION_NUMBER=3.1.4.0-315
[HDP-3.1.4.0]
name=HDP Version - HDP-3.1.4.0
baseurl=http://192.168.1.211/HDP/centos7/3.1.4.0-315
gpgcheck=1
gpgkey=http://192.168.1.211/HDP/centos7/3.1.4.0-315/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.1.211/HDP-UTILS/centos7/1.1.0.22
gpgcheck=1
gpgkey=http://192.168.1.211/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
将此文件复制到/etc/yum.repos.d
cp hdp.repo /etc/yum.repos.d/
重新加载yum缓存
yum clean all
yum makecache
这样,本地ambari的yum源就安装好了
4. 安装 ambari-server
yum -y install ambari-server
ambari-server默认使用postgresql数据库的安装方式,其他的数据库也支持,这里我用到的是mysql,大家根据自身选一种即可。
4.1 安装Mysql5.7
我用的docker安装的,参考:https://www.jianshu.com/p/2fce819660fc
用navcat连接mysql,然后新建数据库ambari, 新建数据库hive。
在数据库ambari中执行sql脚本: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
4.2 建立mysql与ambari连接
网上下载mysql-connector-java-5.1.*.jar,上传到主节点的/home/temp/下,本次使用的是mysql-connector-java-5.1.45.jar
然后执行如下命令:
cd /home/temp/
cp mysql-connector-java-5.1.45.jar /usr/share/java/mysql-connector-java.jar
cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar
vi /etc/ambari-server/conf/ambari.properties #在文件中添加:server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar
4.3 设置 ambari-server
ambari-server setup
设置内容参考以下
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'enabled'
SELinux mode is 'enforcing'
Temporarily disabling SELinux
WARNING: SELinux is set to 'permissive' mode and temporarily disabled.
OK to continue [y/n] (y)? y
Customize user account for ambari-server daemon [y/n] (n)? y
Enter user account for ambari-server daemon (root):
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)? 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): root
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 doesn't contain latest json url, skipping repoinfos modification
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
基本上注意y以下三点即可
- 设置JAVA_HOME
- 不安装GPL(原因是本地yum库没有gpl)
- 设置mysql数据库连接信息
然后设置ambari-server的mysql驱动路径
# 设置ambari-server的mysql驱动路径
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
4.4 启动ambari-server
ambari-server start
然后用浏览器访问 http://192.168.1.201:8080/ 即可,默认帐密为 admin/admin
4.5.安装ambari-agent
启动ambari-server后,会自动在另外两个节点上安装ambari-agent. 如果没安装,手动安装一下。
# 安装
yum install ambari-agent -y
# 修改配置
vim /etc/ambari-agent/conf/ambari-agent.ini
##修改以下内容, 注hostname=hadoop201是安装ambari-server的主节点服务器名称
[server]
hostname=hadoop201
整个Ambari平台就安装完了。以后要加节点机器,只需要在新的机器上安装ambari-agent即可。
4.6 启动失败错误处理
如果出现错误,请注意查看日志,根据具体的错误内容进行处理,默认ambari-server的日志在/var/log/ambari-server/ambari-server.log里面。
如果在处理日志的过程中或者后面安装的过程中出现一些莫名的错误,可以重置的安装:
# 停止
ambari-server stop
# 重置
ambari-server reset
# 再设置一般
ambari-server setup
5. 安装HDP(hadoop)集群
-
访问ambari地址: http://ip:8080/ , 帐密: admin/admin登录后,会看到如下页面,点击按钮。
-
给集群起个名称
-
选择HDP版本,修改本地源地址
地址注意改成自己的地址,制作本地源时的地址。
只保留redhat7的,其他的都删除。在ambari-setup时GPL选项输入的n,所以此处没有HDP-3.1-GPL
4.添加主机名称,上传私钥
将主节点机器上的文件 /root/.ssh/id_rsa 文件下载下来(.ssh是隐藏文件夹,直接cd进去),然后上传上ambari里面。
-
等待安装
如果出现了错误,可点击Failed的查看错误日志
-
大数据组件安装,需要哪些勾选哪些
-
分配节点组件
这步需要注意,基于机器的配置进行组件分配,默认安装,会导致主从节点分配负载差异很大。
-
分配节点主从
-
帐密配置
hive的数据库用户密码填上之前创建好的
-
设置大数据相关文件存储路径
实际生产中,哪个磁盘大放哪里,另外ambari不建议设置到/home文件夹下,所以可以将创建一个根目录文件夹 /hadoop 然后将磁盘挂载上去。
-
用户名、存储路径、空间内存限制设置
全使用默认值即可,直接NEXT
-
开始安装
接下来就是漫长的等待过程了!
-
安装成功,操作ambari
这里就涉及ambari的操作说明了,以后有时间在加上...