部署概述,ambari 环境部署主要分为两步骤
- ambari server机器部署 (使用者可以通过访问server机器8080端口,在web中进行集群管理)
- ambari client机器部署(接受ambari server调度,进行实际的Hadoop服务组件安装)
这里测试环境有如下三个节点:
10.10.180.143 test01
10.10.180.144 test02
10.10.180.145 test03
其中, test01节点同时作为ambari server和 ambari client
test02, test03仅作为ambari client 机器。
三个节点操作系统版本均为centos7.6
ambari服务部署
ambari server部署
修改主机名:1
2sudo hostnamectl set-hostname test01
sudo hostname test01
修改hosts,在/etc/hosts中添加各个主机的域名解析:1
2
3
4
5cat <<eof >>/etc/hosts
10.10.180.143 test01
10.10.180.144 test02
10.10.180.145 test03
eof
关闭防火墙:1
2systemctl stop firewalld
systemctl disable firewalld
关闭selinux:1
2sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
setenforce 0
配置ntp定时时钟同步:
1 | yum install -y ntpdate |
jdk安装,这里使用提前下载好的tar.gz包:
1 | tar -zxf jdk-8u231-linux-x64.tar.gz -C /usr/local/ |
配置test01节点到所有节点的免密登陆:
1 | ssh-keygen -t rsa |
安装其他以来包,包括httpd, wget, createrepo等:1
yum -y install psmisc ntp ntpdate httpd createrepo wget
ambari server默认使用数据库为postgre,这里我们改为使用mysql, 先卸载系统默认安装的mariadb, 重新安装mysql 社区版:
1 | yum -y remove mariadb-libs |
启动mysql服务:
1 | systemctl start mysqld |
查看mysql初始密码:1
2cat /var/log/mysqld.log | grep password (获得初始密码)
# 比如这里查出密码为:JDaywt&oR8pE
初次登陆mysql, 修改密码和用户权限:1
2
3
4
5
6
7
8
9
10
11mysql -uroot -p'JDaywt&oR8pE'(首次登陆后,修改密码,并创建数据库)
set global validate_password_policy=LOW;
set global validate_password_policy=0;
set password=password('root1234');
use mysql;
update user set host='%' where host='localhost';
delete from user where host != '%';
flush privileges;
create database ambari default character set = 'utf8';
create database hive default character set = 'utf8';
配置mabari本地镜像,将提前下载的ambari包解压到httpd服务的静态资源目录下:
1 | mkdir -p /var/www/html/hdp-utils |
启动httpd服务,并验证ambari 本地镜像是否可用:
1 | systemctl start httpd && systemctl enable httpd |
mysql jdbc jar包下载:
1 | mkdir -p /usr/share/java/ |
配置yum配置文件,为后面安装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# 注意修改这里的访问地址为httpd的可访问地址
# 此处httpd服务部署在test01节点
cat << EOF > /etc/yum.repos.d/ambari.repo
[ambari-2.5.0.3]
name=ambari-2.5.0.3
baseurl=http://test01/ambari/centos7
gpgcheck=0
gpgkey=http://test01/ambari/centos7/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
EOF
# 注意修改这里的访问地址为httpd的可访问地址
# 此处httpd服务部署在test01节点
cat << EOF > /var/www/html/hdp-utils/hdp-util.repo
[HDP-UTILS-1.1.0.21]
name=Hortonworks Data Platform Version - HDP-UTILS-1.1.0.21
baseurl=http://test01/hdp-utils/
gpgcheck=0
enabled=1
priority=1
EOF
# 注意修改这里的访问地址为httpd的可访问地址
# 此处httpd服务部署在test01节点
cat << EOF > /var/www/html/HDP/centos7/hdp.repo
#VERSION_NUMBER=2.6.0.3-8
[HDP-2.6.0.3]
name=HDP Version - HDP-2.6.0.3
baseurl=http://test01/HDP/centos7/
gpgcheck=0
gpgkey=http://test01/HDP/centos7/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
# 注意修改这里的访问地址为httpd的可访问地址
# 此处httpd服务部署在test01节点
[HDP-UTILS-1.1.0.21]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.21
baseurl=http://test01/hdp-utils/
gpgcheck=0
gpgkey=http://test01/hdp-utils/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
EOF
yum安装ambari-server:
1 | yum -y install ambari-server |
加载ambari db表结构:
1 | mysql -uroot -p'root1234' |
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
36ambari-server setup
#Customize user account for ambari-server daemon [y/n] (n)?
第一步输入y,开启守护进程
#Enter user account for ambari-server daemon (root):
第二步输入root,设置ambari-server的用户是root
#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,如果没有安装jdk可以输入1默认安装一个,但是我们此时选择3使用我们已经安装过的jdk
3
#Path to JAVA_HOME: /usr/local/java
当上一步输入的是3的时候,让你选择你之前安装过jdk的JAVA_HOME的路径
我们输入/usr/local/java
#Enter advanced database configuration [y/n] (n)? y
第5步输入y进入高级数据库配置
#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
我们使用的是MySQL,所以输入3 ,进入MySQL的配置
Hostname(localhost):
Port(3306):
Database name(ambari):
Username(ambari):root
Enter database password(bigdata):root1234
经过此部,ambari-server已经初始化完成,为了后续部署hive的问题,我们再执行如下:
1 | ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar |
启动ambari-server 完成部署
1 | ambari-server start |
ambari client部署
在所有ambari client机器上执行如下
修改主机名:1
2
3# 这里替换为机器所需主机名
sudo hostnamectl set-hostname test02
sudo hostname test02
修改hosts,在/etc/hosts中添加各个主机的域名解析:1
2
3
4
5cat <<eof >>/etc/hosts
10.10.180.143 test01
10.10.180.144 test02
10.10.180.145 test03
eof
关闭防火墙:1
2systemctl stop firewalld
systemctl disable firewalld
关闭selinux:1
2sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
setenforce 0
配置ntp定时时钟同步:
1 | yum install -y ntpdate |
jdk安装,这里使用提前下载好的tar.gz包:
1 | tar -zxf jdk-8u231-linux-x64.tar.gz -C /usr/local/ |
hadoop服务部署
完成ambari服务部署后,可在浏览器中访问ambari server对应机器的8080端口,开始hadoop集群部署,这里是访问http://test01:8080, 默认登陆用户/密码是 admin/admin
备注,第一次部署的时候,有可能会失败,失败后,修改ambari-client机器如下两处配置:
/etc/python/cert-verification.cfg修改
https verify为disable1
2
3
4
5
6
7
8
9
10cat << EOF > /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
EOF/etc/ambari-agent/conf/ambari-agent.ini修改
在[security]下第一行添加force_https_protocol=PROTOCOL_TLSv1_2