Ambari集群部署手册
(ambari离线安装)
一、名词介绍:
Ambari 集群管理工具
HDP 集群软件存储库
Mysql 元数据库
JDK 开发工具包
https://blog.csdn.net/microhhh/article/details/81239738
二、应用包以及服务器准备:
1. 服务器准备:
1.1主机名(ip在前,name在后)
(1)修改hostname:
hostnamectl set-hostname ambari
(2)vi /etc/hosts
192.168.3.212 192-168-3-212.baicheng.com
192.168.3.133 192-168-3-133.baicheng.com(创建ambari用户,密码ambari)
192.168.3.134 192-168-3-134.baicheng.com
192.168.3.135 192-168-3-135.baicheng.com
192.168.3.136 192-168-3-136.baicheng.com
192.168.3.137 192-168-3-137.baicheng.com
192.168.3.138 192-168-3-138.baicheng.com
192.168.3.139 192-168-3-139.baicheng.com
1.2配置FQDN
ambari节点为例
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ambari
1.3防火墙
临时关闭所有节点防火墙
systemctl disable firewalld
systemctl stop firewalld
1.4 SELinux
临时关闭所有SELinux
setenforce 0
永久关闭:
修改配置文件需要重启机器:
vi /etc/sysconfig/selinux
SELINUX=disabled
查看SELinux状态:
sestatus
1.5免密
其中ambari对其他6台服务器以及本服务器(ambari)进行免密登录
主节点里root用户登录执行如下步骤
ssh-keygen
cd ~/.ssh/
cat id_rsa.pub >>authorized_keys
chmod 777 ~/.ssh
chmod 777 ~/.ssh/authorized_keys
先在从节点登录root执行命令
mkdir ~/.ssh/
分发主节点里配置好的authorized_keys到各从节点
scp /root/.ssh/authorized_keys root@192.168.200.31:/root/.ssh/authorized_keys
ssh-keygen -t rsa
ssh-copy-id 192.168.200.128
1.6时间同步
1.7修改镜像文件编码格式
修改文件 vi /etc/locale.conf
将LANG="zh_CN.UTF-8"
修改为
LANG="en_US.UTF-8"
重启
1.8 开启NTP服务(每次启动ambari之前确保ntp服务已开启)
所有集群上节点都需要操作
Centos 7 命令
yum install ntp
systemctl is-enabled ntpd
systemctl enable ntpd
systemctl start ntpd
查看状态
systemctl status ntpd
安装步骤如下:
1,执行命令如下:yum -y install ntp
2,安装完成过后执行:vi /etc/ntp.conf
注释掉所有server *.*.*的指向,新添加一条可连接的ntp服务器(百度一下ntp服务器,我选的是上海交大的)
server ntp1.aliyun.com iburst
启动时间同步服务service ntpd start
执行命令 ntpdate -u ntp1.aliyun.com
重启时间同步服务 service ntpd restart
通过ntpstat查看 当前时间同步状态
synchronised to NTP server (120.25.115.19) at stratum 3
time correct to within 1043 ms
注意:
建议硬盘50G以上
192.168.80.144 ambari01 (部署Ambari-server和Mirror server)(分配1G,我这里只是体验过程,当然你可以分配更多或更小)
192.168.80.145 ambari02 (部署Agent)
192.168.80.146 ambari03 (部署Agent)(分配1G,我这里只是体验过程,当然你可以分配更多或更小)
192.168.80.147 ambari04 (部署Agent)
配置ip:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
2.应用包准备:
jdk-8u151-linux-x64.tar.gz(推荐1.7+)
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
mysql-5.6.33-linux-glibc2.5-x86_64.tar(推荐5.6+)
https://www.mysql.com/downloads/
Python2.6/2.7(centos自带)
HDP-UTILS-1.1.0.21-centos7.tar.gz(可作为迅雷下载链接)
HDP-2.6.3.0-centos7-rpm.tar.gz(可作为迅雷下载链接)
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.3.0/HDP-2.6.3.0-centos7-rpm.tar.gz
ambari-2.6.0.0-centos7.tar.gz(可作为迅雷下载链接)
hdp.repo
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.3.0/HDP.repo
ambari.repo
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.0.0/ambari.repo
三、部署安装:
1. jdk安装
本地上传jdk-8u151-linux-x64.tar.gz到/usr/local/目录下
cd /usr/local
解压该文件
tar -zxvf jdk-8u151-linux-x64.tar.gz
删除jdk-8u151-linux-x64.tar.gz压缩包
rm -rf jdk-8u151-linux-x64.tar.gz
配置jdk环境变量
vi /etc/profile
在文件底部追加
export JAVA_HOME=/usr/local/jdk1.8.0_151
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
发送到其他主机
scp -r /etc/profile root@namenode:/etc/profile
scp -r jdk1.8.0_151 root@datanode:`pwd`
环境变量生效(所有主机)
source /etc/profile
测试,命令行直接键入java,出现以下情况及完成jdk安装
2. 制作本地源(ambari节点上进行即可)
2.1安装Apache HTTP服务器
2.1.1安装HTTP服务器
允许http服务通过防火墙(永久)
yum install httpd -y
firewall-cmd --add-service=http
firewall-cmd --permanent --add-service=http
2.1.2 Apache服务自动启动
添加Apache服务到系统层随系统自动启动
systemctl start httpd.service
systemctl enable httpd.service
2.2安装本地源制作工具
yum install yum-utils createrepo -y
2.3安装httpd网站
2.3.1创建目录ambari
在httpd网站根目录(/var/www/html)下创建目录ambari
cd /var/www/html/
mkdir ambari
cd /var/www/html/ambari
mkdir HDP-UTILS
2.3.2上传文件
上传HDP-UTILS-1.1.0.21-centos7.tar.gz,HDP-2.6.3.0-centos7-rpm.tar.gz,ambari-2.6.0.0-centos7.tar.gz到cd /var/www/html/ambari/目录下
2.3.3解压
1、在/var/www/html/ambari/目录下解压
tar -zxvf ambari-2.6.0.0-centos7.tar.gz
tar -zxvf HDP-2.6.3.0-centos7-rpm.tar.gz
mv HDP-UTILS-1.1.0.21-centos7.tar.gz /var/www/html/ambari/HDP-UTILS/
cd /var/www/html/ambari/HDP-UTILS/
tar -zxvf HDP-UTILS-1.1.0.21-centos7.tar.gz
mv HDP-UTILS-1.1.0.21-centos7.tar.gz /var/www/html/ambari/
2.3.4查看httpd网站
使用links命令(yum install -y links)或者浏览器访问
links命令:
links http://192.168.3.133/ambari/
浏览器:
2.4配置本地源
将ambari.repo,hdp.repo上传到/etc/yum.repos.d/目录下
2.4.1配置ambari.repo
(url地址为解压文件中的路径)
修改baseurl为:
baseurl=http://192.168.3.133/ambari/ambari/centos7/2.6.0.0-267
修改gpgkey为:
gpgkey=http://192.168.3.133/ambari/ambari/centos7/2.6.0.0-267/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
文件内容如下:
#VERSION_NUMBER=2.6.0.0
[ambari-2.6.0.0]
name=ambari Version - ambari-2.6.0.0
baseurl=http://192.168.200.10/ambari/ambari/centos7/2.6.0.0-267
gpgcheck=0
gpgkey=http://192.168.200.10/ambari/ambari/centos7/2.6.0.0-267/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
2.4.2配置hdp.repo
修改HDP-2.6.3.0下baseurl为:
baseurl=http://192.168.3.133/ambari/HDP/centos7/2.6.3.0-235
修改HDP-2.6.3.0下gpgkey为:
gpgkey=http://192.168.3.133/ambari/HDP/centos7/2.6.3.0-235/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
修改HDP-UTILS-1.1.0.21下baseurl为:(注意,若版本号不一致,需要更改为当前版本号)
baseurl=http://192.168.3.133/ambari/HDP-UTILS/
修改HDP-UTILS-1.1.0.21下gpgkey为:
gpgkey=http://192.168.3.133/ambari/HDP-UTILS/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
文件内容如下:
#VERSION_NUMBER=2.6.3.0-235
[HDP-2.6.3.0]
name=HDP Version - HDP-2.6.3.0
baseurl=http://192.168.200.10/ambari/HDP/centos7/2.6.3.0-235
gpgcheck=0
gpgkey=http://192.168.200.10/ambari/HDP/centos7/2.6.3.0-235/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.21]
name=HDP-UTILS-1.1.0.21
baseurl=http://192.168.200.10/ambari/HDP-UTILS/
gpgcheck=0
gpgkey=http://192.168.200.10/ambari/HDP-UTILS/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
2.4.3移动文件
(如果上传位置不在上述地址,需要将配置完成后的ambari.repo以及hdp.repo文件移动到/etc/yum.repos.d/下)
mv ambari.repo /etc/yum.repos.d/
mv hdp.repo/etc/yum.repos.d/
依次执行以下命令:
yum clean all
yum list update
yum makecache
yum repolist
2.5安装Mysql数据库
Ambari安装会将安装等信息写入数据库,建议使用自己安装的Mysql数据库,也可以不安装而使用默认数据库PostgreSQL
安装完成后,使用root用户登录执行以下命令:
3.5 安装Mysql数据库
Ambari安装会将安装等信息写入数据库,建议使用自己安装的MySQL数据库,也可以不安装而使用默认数据库PostgreSQL。
Mysql数据库安装过程如下:
3.5.1. 下载mysql的repo源(CentOS 7.2的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-8.noarch.rpm --nodeps --force
安装这个包后,会获得两个mysql的yum repo源:
/etc/yum.repos.d/mysql-community.repo
3/etc/yum.repos.d/mysql-community-source.repo
yum -y remove mariadb-libs
3.5.3.安装mysql
yum install mysql-server
3.5.4. 启动mysql服务
查看MySQL服务是否已启动:
service mysqld status
启动服务:
systemctl start mysqld
3.5.5. 重置root密码
MySQL5.7会在安装后为root用户生成一个随机密码,而不是像以往版本的空密码。 可以安全模式修改root登录密码或者用随机密码登录修改密码。下面用随机密码方式
MySQL为root用户生成的随机密码通过mysqld.log文件可以查找到:
grep 'temporary password' /var/log/mysqld.log
修改root用户密码:(MySQL的密码策略比较复杂,过于简单的密码会被拒绝)
mysql -u root -p
set global validate_password_policy=0;
set global validate_password_length=4;
set PASSWORD=PASSWORD('123456');
mysql> Enter password: (输入刚才查询到的随机密码)
mysql> update mysql.user set authentication_string=password('1234') where user='root'
mysql> exit
用root新密码登录:
1mysql -u root -p 1234
2.5.1创建ambari数据库
创建ambari数据库以及ambariuser数据库用户并授权
create database ambari character set utf8 ;
CREATE USER 'ambariuser'@'%'IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'ambariuser'@'%';
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
2.5.2创建hive数据库
创建hive数据库以及hiveuser数据库用户并授权
create database hive character set utf8 ;
CREATE USER 'hiveuser'@'%'IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'hiveuser'@'%';
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
如果需要安装其他服务如Oozie,则创建相应的数据库及用户
2.5.3安装mysql jdbc驱动
yum install mysql-connector-java -y
3. 安装Ambari
3.1安装Ambari2.6.0.0
3.1.1安装ambari服务
yum install -y ambari-server
3.1.2执行安装
ambari-server setup
- 检查SELinux是否关闭,如果关闭不用操作
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
- 进入自定义设置,输入:y
Customize user account for ambari-server daemon [y/n] (n)? y
3. 输入ambari-server账号,输入:ambari(ambari主机上创建的用户)
Enter user account for ambari-server daemon (root):ambari
- 选择JDK,输入:3
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[3] Custom JDK
==============================================================================
Enter choice (1): 3
- 键入JDK PATH,输入:/usr/local/jdk1.8.0_151
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/jdk1.8.0_151
Validating JDK on Ambari Server...done.
- 数据库配置,输入:y
Configuring database...
Enter advanced database configuration [y/n] (n)? y
- 选择数据库,输入:3
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
- 数据库具体配置信息,如果和默认相同直接回车(下面的IP代表数据库所在的节点)
Hostname (localhost): 192.168.3.212
Port (3306):
Database name (ambari):
Username (ambari): ambariuser
Enter Database Password (bigdata): 123456
Re-enter password: 123456
Configuring ambari database...
- 启动Ambari服务前,需要将Ambari的sql脚本导入数据库
用Ambari用户(上面设置的用户,无密码)登录mysql
mysql -u ambari -p
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
- 启动Ambari
ambari-server start
4. 集群配置
4.1登录
浏览器访问http://192.168.3.133:8080/ 用户名:admin 密码:admin
4.2添加集群
4.2.1集群配置
点击Launch Install Wizard按钮进行集群配置
4.2.2设置集群名称
4.2.3设置HDP安装源
选择HDP2.6.3.0,使用Use Local Repository,选择redhat7,Base URL内容填写与HDP.repo中的URL地址一致
4.2.4设置集群节点
Target Hosts中填入需要加入集群的主机名
点击“浏览”按钮,上传id_rsa文件(该文件需要从192.168.3.133节点中/root/.ssh/目录中获取)
4.2.5主机确认
K可能遇到的问题;
①查看 openssl 版本:
[root@ambari ~]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
[root@ambari ~]# rpm -qa | grep openssl
openssl-libs-1.0.2k-12.el7.x86_64
openssl-1.0.2k-12.el7.x86_64
如果低于 openssl-1.0.1e-16.el6.x86_64 版本,则需要更新到 openssl-1.0.1e-16.el6.x86_64 及以上版本
②查看 Python 版本:
[root@ambari ~]# python -V
Python 2.7.5
如果低于 Python 2.7 版本,则升级 Python 到 2.7 及以上版本。
③编辑 /etc/python/cert-verification.cfg 配置文件,将 [https] 节的 verify 项设为禁用:
[root@ambari ~]# vi /etc/python/cert-verification.cfg
# Possible values are:
# 'enable' to ensure HTTPS certificate verification is enabled by default
# 'disable' to ensure HTTPS certificate verification is disabled by default
# 'platform_default' to delegate the decision to the redistributor providing this particular Python version
# For more info refer to https://www.python.org/dev/peps/pep-0493/
[https]
verify=disable
保存退出。
④编辑 /etc/ambari-agent/conf/ambari-agent.ini 配置文件,在 [security] 节部分,确保设置如下两个值,其它值保持不变:
[root@ambari ~]# vi /etc/ambari-agent/conf/ambari-agent.ini
[security]
ssl_verify_cert=0
force_https_protocol=PROTOCOL_TLSv1_2
保存退出,重启 ambari-agent:
[root@ambari ~]# ambari-agent restart
重新执行确认主机步骤(Confirm Hosts),即可通过确认主机并完成注册。
禁用selinux
查看当前SELinux状态
/usr/sbin/sestatus
在当前终端禁用SELinux
setenforce 0
永久禁用SELinux
vim /etc/selinux/config
#确认SELINUX为禁用状态
SELINUX=disabled
重启计算机
sudo reboot
2、禁用PackageKit
通常在centos和redhat中为开启
vim /etc/yum/pluginconf.d/refresh-packagekit.conf
#确认packagekit为禁用状态
enabled=0
检查UMASK
检查系统UMASK
umask
设置当前UMASK
umask 0022
永久生效
echo umask 0022 >> /etc/profile
八、安装Ambari-agent
在线安装只需要运行如下命令便可
yum install ambari-agent
4.2.6选择需要安装的服务
4.2.7配置Slaves和Clients节点
(日志与数据信息统一保存在/Data/work/local目录下)
4.2.8用户服务配置
4.2.9配置信息确认
4.2.10安装
4.2.11完成