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 的作用来说,就是创建、管理、监视 Hadoop 的集群,但是这里的 Hadoop 是广义,指的是 Hadoop 整个生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等),而并不仅是特指 Hadoop。用一句话来说,Ambari 就是为了让 Hadoop 以及相关的大数据软件更容易使用的一个工具。
安装文档:
https://docs.cloudera.com/HDPDocuments/Ambari-2.7.0.0/bk_ambari-installation/content/ch_Getting_Ready.html
Ambari文档:
https://docs.cloudera.com/HDPDocuments/Ambari/Ambari-2.7.0.0/index.html
使用两台虚拟机搭建,一台用作server,一台用作agent
hostnamectl set-hostname server.ambari.com
hostnamectl set-hostname agent.ambari.com
# 配置host vim /etc/hosts
192.168.198.88 server server.ambari.com
192.168.198.89 agent agent.ambari.com
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld.service
关闭selinux
vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
setenforce 0 # 临时关闭selinux
getenforce # 查看selinux状态
注:只需要对server做其他节点的单向免密即可,同时需要进行自身免密
# 生成密钥
[root@server ~]# ssh-keygen -t rsa
[root@agent ~]# ssh-keygen -t rsa
# 进行免密登录
[root@server ~]# ssh-copy-id server
[root@server ~]# ssh-copy-id agent
安装JDK
配置环境变量
vim .bash_profile
# set java home
export JAVA_HOME=/home/jdk1.8.0_171
export JRE_HOME=/home/jdk1.8.0_171/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
创建Mysql本地源
安装&启动 httpd
安装完成后会存在 /var/www/html 文件夹
# 安装httpd
yum install httpd
# 启动httpd
systemctl start httpd
# 设置开机启动
systemctl enable httpd
# 创建mysql-repo,用来存放mysql的rpm包
mkdir mysql-repo
# 将rpm包解压到该文件夹
tar -xvf mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar -C /var/www/html/mysql_repo
web页面访问:ip/mysql_repo
安装createrepo
# 安装 createrepo
yum install createrepo
# 创建本地源
createrepo /var/www/html/mysql_repo
# 创建文件 *.repo 一定要以repo为文件后缀名
touch /etc/yum.repos.d/mysql-local.repo
vim /etc/yum.repos.d/mysql-local.repo
# the RPMs of MySQL server
[mysql-local]
name=mysql-local
baseurl=http://192.168.24.88/mysql_repo
gpgcheck=0
enabled=1
# 清空本地的yum源缓存
yum clean all
# 重新生成元数据
yum makecache
# 使用yum查看本地源文件
yum list | grep mysql-local
安装mysql
# 安装mysql
yum install -y mysql-community-server
# 初始化mysql
mysqld --initialize --user=mysql --console
# 启动mysql
systemctl start mysqld
# 开机自启
systemctl enable mysqld
# 修改字符集
vim /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# >>> 追加内容开始
[client]
port=3306
default-character-set=utf8
[mysql]
default-character-set=utf8
# <<< 追加内容结束
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# >>> 追加内容开始
collation-server=utf8_general_ci
character_set_server=utf8
# <<< 追加内容结束
# 重新启动mysql
systemctl restart mysqld
# 查看原始密码
cat /var/log/mysqld.log | grep password
2020-12-18T09:11:35.497638Z 1 [Note] A temporary password is generated for root@localhost: 97iE:I.>T6ea
# 登录mysql
mysql -uroot -p
# 修改密码
mysql> alter user 'root'@'localhost' identified by '123456';
# 查看字符集,字符集需要都是utf8,否则插入中文会出现乱码
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
新增ambari用户并增加权限
mysql -uroot -p123456
CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';
CREATE USER 'ambari'@'server.ambari.com' IDENTIFIED BY 'server'; # 本地主机名
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'server.ambari.com'; # 本地主机名
FLUSH PRIVILEGES;
# 用户创建错误可以删除
Delete FROM user Where User='your_user' and Host='your_host';
FLUSH PRIVILEGES;
使用ambari用户登录并创建数据库
mysql -uambari -pambari
CREATE DATABASE ambari;
主从节点安装ntp
yum install -y ntp
查看主机时间
ll /etc/localtime
# 上海时区
lrwxrwxrwx. 1 root root 35 3月 25 2020 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
参考文档
主节点(server)
vim /etc/ntp.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# 将以下服务注释,添加新的
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
server 127.127.1.0 # 表示NTP主服务器是与自身的系统时钟同步
fudge 127.127.1.0 stratum 10 # 指定阶层编号为10,降低其优先度
从节点(agent)
vim /etc/ntp.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# 将以下服务注释,添加新的
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
server 127.127.1.0 # 表示NTP主服务器是与自身的系统时钟同步
fudge 127.127.1.0 stratum 10 # 指定阶层编号为10,降低其优先度
server server.ambari.com # 配置时间服务器为本地的时间服务器
restrict server.ambari.com nomodify notrap noquery # 允许上层时间服务器主动修改本机时间
server server.ambari.com
restrict server.ambari.com nomodify notrap noquery
配置完成后启动ntp服务
# 所有服务器都需要进行启动
systemctl start ntpd
systemctl enable ntpd
# 所有agent节点需要使用 ntpdate 命令与server节点时间进行同步
ntpdate -u server.ambari.com
同步硬件时间
# 查看硬件时间
hwclock
# 将硬件时间与系统时间同步
hwclock --systohc
安装ambari yum本地源,在安装完成后需要将解压文件中的html删除否则有些rpm包是无法访问到的
# 解压文件
tar -zxvf ambari-2.7.1.0-centos7.tar.gz
# 将ambari包含rpm文件的文件夹移动到/var/www/html
mv ambari /var/www/html
cd /var/www/html
mv ambari ambari_repo
# 创建源
createrepo /var/www/html/ambari_repo
# /etc/yum.repo.d 创建repo文件,并写入以下内容
vim ambari-local
[ambari-local]
name=ambari-local
baseurl=http://192.168.24.88/ambari-local
gpgcheck=0
enabled=1
# 清空本地的yum源缓存
yum clean all
# 重新生成元数据
yum makecache
安装ambari-servere
yum install ambari-server
# 上传驱动文件,修改配置文件
echo server.jdbc.driver.path=/usr/share/java/mysql-connector-java-5.1.25.jar >> /etc/ambari-server/conf/ambari.properties
# 设置ambari jdbc驱动,必须在/usr/share/java此路径下存放驱动jar
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java-5.1.25.jar
设置服务
# 设置服务
ambari-server setup
[root@server resources]# 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):
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: /home/software/jdk1.8.0_171
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): server.ambari.com
Port (3306): 3306
Database name (ambari): ambari
Username (ambari): ambari
Enter Database Password (bigdata):
Re-enter password:
Configuring ambari database...
Enter full path to custom jdbc driver: /root/drivers/mysql-connector-java-5.1.25.jar
Copying /root/drivers/mysql-connector-java-5.1.25.jar to /usr/share/java
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.7.1.0.169.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.
# 如果上述某一步安装失败,可是重新进行设置
ambari-server stop
ambari-server reset
ambari-server setup
响应安装提示:
如果您尚未临时禁用SELinux,则可能会收到警告。接受默认值(y
),然后继续。
默认情况下,Ambari Server在下运行root
。(n)
在Customize user account for ambari-server daemon
提示符下接受默认值 ,以继续root
。如果要创建其他用户来运行Ambari Server或分配先前创建的用户,请y
在Customize user account for ambari-server daemon
提示时选择,然后提供用户名。 ----------- 选择n
如果您尚未暂时禁用iptables
,则可能会收到警告。输入**y
**以继续。
选择要下载的JDK版本。输入1以下载Oracle JDK 1.8。 --------选择**1
**
默认情况下,Ambari Server安装程序会下载并安装Oracle JDK 1.8和随附的Java密码学扩展(JCE)策略文件。
要继续默认安装,请在出现提示时接受Oracle JDK许可证。您必须接受此许可才能从Oracle下载必需的JDK。JDK是在部署阶段安装的。
或者,您可以输入2以下载定制JDK。如果选择“定制JDK”,则必须在所有主机上手动安装JDK并指定Java Home路径。
注意 | |
---|---|
要安装OpenJDK,请使用“自定义”选项。准备向Ambari提供有效的JAVA_HOME值。强烈建议您在所有主机上一致地安装JDK软件包。 |
出现提示时,请查看GPL许可协议。要明确允许Ambari下载和安装LZO数据压缩库,您必须answer y
。如果输入**n
,则Ambari不会在集群中的任何新主机上自动安装LZO。在这种情况下,您必须确保正确安装和配置了LZO。如果未安装和配置LZO,将无法读取使用LZO压缩的数据。如果您不希望Ambari自动下载并安装LZO,则必须确认选择以继续。 --------------选择y
**
选择**n
atEnter advanced database configuration
以将默认的嵌入式PostgreSQL数据库用于Ambari。PostgreSQL的默认数据库名称是ambari
。默认的用户名和密码是ambari/bigdata
。否则,要在Ambari中使用现有的PostgreSQL,MySQL / MariaDB或Oracle数据库,请选择 y
。 --------选择n
**
如果使用的是现有的PostgreSQL,MySQL / MariaDB或Oracle数据库实例,请使用以下提示之一:
重要 | |
---|---|
在运行安装程序并输入高级数据库配置之前,您必须准备一个现有的数据库实例。 |
重要 | |
---|---|
不支持使用Microsoft SQL Server或SQL Anywhere数据库选项。 |
要使用现有的Oracle实例,并为该数据库选择您自己的数据库名称,用户名和密码,请输入**2
**。
选择要使用的数据库,并在提示符下提供所需的任何信息,包括主机名,端口,服务名或SID,用户名和密码。
要使用现有的MySQL / MariaDB数据库,并为该数据库选择您自己的数据库名称,用户名和密码,请输入**3
**。
选择要使用的数据库,并在提示符下提供所需的任何信息,包括主机名,端口,数据库名,用户名和密码。
要使用现有的PostgreSQL数据库,并为该数据库选择您自己的数据库名称,用户名和密码,请输入**4
**。
选择要使用的数据库,并在提示符下提供所需的任何信息,包括主机名,端口,数据库名,用户名和密码。
在Proceed with configuring remote database connection properties [y/n]
选择**y
**。
安装完成。
注意 | |
---|---|
如果主机通过代理服务器访问Internet,则必须将Ambari服务器配置为使用此代理服务器。 |
初始化mysql
mysql -uambari -pambari
use ambari;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
启动ambari-server
ambari-server start
# 查看ambari启动日志
tail -f /var/log/ambari-server/ambari-server.log
某节点Agent安装失败,可单独在此节点手动安装agent并启动,如下:
yum install ambari-agent
vi /etc/ambari-agent/conf/ambari-agent.ini
[server]
hostname=node4
url_port=8440
secured_url_port=8441
ambari-agent start
下载本地源所需要的tar包 & 解压 & 创建本地源(参考Mysql创建本地源)
tar -zxvf HDP-3.0.0.0-centos7-rpm.tar.gz
tar -zxvf HDP-GPL-3.0.0.0-centos7-gpl.tar.gz
tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz