部署Ambari2.7.3+HDP3.1.0+CentOS7
一、准备工作
1.1 Ambari版本介绍
Ambari2.7.3支持HDP-3.1.0、HDP-3.0.1、HDP-3.0.0,本次安装我们选择HDP-3.1.0版本。
(注:Ambari各个版本对产品的支持可在Ambari版本支持界面查看)
1.2 搭建环境准备
1.2.1 软件版本
组件 | 版本 |
---|---|
操作系统 | CentOS7 |
Ambari | 2.7.3 |
HDP | 3.1.0.0 |
MySQL | 5.7 |
OracleJDK8 | JDK1.8.0_144 |
1.2.2 软件下载
- 在CentOS7清华源镜像点击CentOS-7-x86_64-DVD-1810.iso下载CentOS7镜像。
- 在Ambari2.7.3安装包下载地址下载Ambari2.7.3安装包。
- 在HDP-3.1.0.0、HDP-GPL-3.1.0.0、HDP-UTILS1.1.0.22安装包下载地址下载HDP安装包。
- 在OracleJDK8下载地址下载安装JDK8 1.8.0_144 linux_x64版本的安装包。
1.2.3 节点规划
Hostname | IP | 功能 | 内存 | 磁盘 |
---|---|---|---|---|
node1 | 192.168.121.101 | 本地源+Ambari Server | 4G | 80G |
node2 | 192.168.121.102 | 节点 | 4G | 80G |
node3 | 192.168.121.103 | 节点 | 4G | 80G |
二、搭建虚拟机
2.1 搭建node1虚拟机
- 打开VMwear选择新建虚拟机
- 选择自定义安装
-
操作系统选择Linux,版本为CentOS7 64位
- 设置虚拟机的名称为node1
- 虚拟机内存设置为4G
- 网络连接类型选择为(NAT)
- 指定磁盘容量为80G
-
完成创建
-在虚拟机设置中选择ISO镜像文件
- 开启虚拟机,安装操作系统,选择第一项,直接安装CentOS7
-
设置时区为上海
-
点击SOFTWARE SELECTION选择需要安装的软件,这里我们选择Minimal Install-Development Tools
-
选择安装位置
- 点击Begin Installation开始安装
-
在等待安装的过程中设置root密码为root123
-
等待安装完毕,点击Reboot重启,登录
2.2 配置node1
2.2.1 配置IP
-
在VM菜单栏中点击“编辑-虚拟网络编辑器-更改设置”,选择NAT设置查询网关IP为192.168.121.2
- 在node1中打开文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改文件内容
#修改BOOTPROTO和ONBOOT
#修改BOOTPROTO
BOOTPROTO=static
IPADDR=192.168.121.101
NETMASK=225.225.225.0
GATEWAY=192.168.121.2
DNS1=114.114.114.114
DNS2=8.8.8.8
#修改ONBOOT
ONBOOT=yes
- 修改完毕后重启网络
service network start
- 查看网络属性
ifconfig
若提示命令不存在,使用以下语句进行安装
yum -y install net-tools
- 使用ping命令测试网络状况
ping www.baidu.com
2.2.2 关闭防火墙
- 查看防火墙的状态
systemctl status firewalld.service
- 关闭防火墙,并再次查询状态
systemctl stop firewalld.service
systemctl status firewalld.service
- 关闭防火墙的开机启动,并查看是否设置成功
systemctl disable firewalld.service
systemctl is-enabled firewalld.service
若结果为disabled则表明设置成功
2.2.3 设置Hostname
- 打开hosts文件
vi /etc/hosts
在文件结尾增加
192.168.121.101 node1 node1
192.168.121.102 node2 node2
192.168.121.103 node3 node3
- 打开sysconfig/network文件
vi /etc/sysconfig/network
修改HOSTNAME属性
HOSTNAME=node1
- 修改hostname
hostnamectl set-hostname node1
并使用hostname
命令查看是否修改成功
2.2.4 设置阿里开源镜像本地源
- 访问阿里开源镜像网站
-
根据centos操作帮助进行操作
#进行备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#下载新的CentOS-Base.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#生成缓存
yum makecache
2.2.5 安装时间同步服务
- 安装ntp
yum install -y ntp
- 启动ntp并查看ntp状态
systemctl start ntpd.service
systemctl status ntpd.service
如若结果显示为 active (running) 则表明启动成功
-设置开机启动
systemctl enable ntpd.service
2.2.6 安装、配置JDK8
- 创建/usr/java目录
mkdir /usr/java
-
使用xftp将先前下载好的jdk压缩包传输到java目录中
- 解压缩
tar -zxvf jdk-8u144-linux-x64.tar.gz
- 返回至根目录配置环境变量
cd ~
vi /etc/profile
在文件结尾添加JAVA路径
#JAVA
export JAVA_HOME=usr/java/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
- 使环境变量生效
source /etc/profile
使用java -version
命令查询java版本,若显示出java的版本信息 (1.8.0_144) 则表明配置成功
2.2.7 关闭Selinux和THP以降低系统CPU的使用率
- 查看selinux的状态
sestatus
- 关闭selinux
vi /etc/sysconfig/selinux
修改文件中的SELINUX属性
SELINUX=disabled
- 查询THP状态
cat /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/enabled
若结果为 [always] 则表示启动了THP
- 永久关闭THP
vi /etc/rc.d/rc.local
在文件末尾添加
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
并赋予rc.local文件执行权限
chmod +x /etc/rc.d/rc.local
- 重启
reboot
后查看THP状态
cat /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/enabled
若结果显示为 [never] 则表明关闭成功
2.2.8 最大打开文件设置
- 设置最大文件描述符数,一般要求为10000及以上。
-检查最大文件描述符数的当前值
ulimit -Sn
ulimit -Hn
如若输出小于10000,则将其设置为10000
ulimit -n 10000
2.3 克隆虚拟机
2.3.1 修改镜像
关闭虚拟机node1,并在虚拟机设置中将镜像改为使用物理驱动器。
2.3.2 克隆node1
- 在VM菜单栏中点击“虚拟机-管理-克隆”
- 选择克隆自虚拟中的当前状态
- 选择创建完整克隆
- 设置虚拟机的名称(node2)与位置
- 克隆完成
- 按照相同步骤克隆node3
2.3.2 修改node2、node3的虚拟机mac地址
- 在虚拟机设置中选择“网络适配器-高级”,在mac地址中点击 “生成” 以生成随机地址。
2.3.3 修改node2、node3的IP地址
- 启动node2、node3
vi etc/sysconfig/network-scripts/ifcfg-ens33
#修改IPADDR属性值
IPADDR=192.168.121.102 #node3为192.168.121.103
-重启network
service networks start
并使用ifconfig
命令查看IP是否正确修改
2.3.4 修改虚拟机node2、node3的hostname
- 修改虚拟机的hostname
hostnamectl set-hostname node2(/node3)
并使用hostname
命令查看当前hostname
若输出为node2(/node3) 则表明修改成功
三、安装数据库及搭建本地源
3.1 在node1上安装数据库
- 安装MySQL
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
- 启动MySQL
systemctl start mysqld.service
并使用systemctl status mysqld.service
查看MySQL状态
若结果显示为active (running) 则表明启动成功 - 设置MySQL开机自启
systemctl enable mysqld.service
- 获取MySQL root用户的初始密码
grep 'password' /var/log/mysqld.log
- 登录MySQL并修改密码为 'root123'
(注:MySQL默认需修改初始密码后才能对数据库进行操作)
mysql -u root -p
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
- 卸载Yum Repository,以避免每次yum操作都进行自动更新
yum -y remove mysql57-community-release-el7-10.noarch
- 配置MySQL编码格式为utf8
vi /etc/my.cnf
#在[mysqld]中添加
collation_server=utf8_general_ci
character_set_server=utf8
default-storage-engine=INNODB
#创建[client]并添加
[client]
default_character-set=utf8
- 重启MySQL
systemctl restart mysqld.service
- 登录MySQL并查看字符集
mysql> show variables like ‘character_set_%’;
3.2 在MySQL数据库中创建相应的用户和数据库
- 创建ambari数据库
用户名: ambari
密码: ambari123
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> create database ambari character set utf8;
mysql> CREATE USER 'ambari'@'%'IDENTIFIED BY 'ambari123';
mysql> GRANT ALL PRIVILEGES ON ambari.* TO 'ambari'@'%';
mysql> FLUSH PRIVILEGES;
- 创建hive数据库
用户名: hive
密码: hive123
mysql> create database hive character set utf8;
mysql> CREATE USER 'hive'@'%'IDENTIFIED BY 'hive123';
mysql> GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%';
mysql> FLUSH PRIVILEGES;
- 查看已经创建的数据库
mysql> databases;
输出中若含有ambari和hive则表明创建成功
-下载mysql-connection-java
(注:稍后会使用,没有该包则MySQL与ambari无法连接!)
yum install mysql-connector-java
- 查看是否下载成功
cd /usr/share/java
ls
若目录中含有mysql-connector-java,则表明已成功下载
3.3 设置免密登录
- 在实机中配置本地hosts文件
路径为C://Windows/System32/drivers/default_character
需要管理者权限才能修改,建议使用Notepad++进行修改
在文件末尾添加
192.168.121.101 node1
192.168.121.102 node2
192.168.121.103 node3
- 设置node1对node1、node2、node3的免密登录
[root@node1 ~]# ssh-keygen -t rsa #回车即可
[root@node1 ~]# ssh-copy-id node1
[root@node1 ~]# ssh-copy-id node2
[root@node1 ~]# ssh-copy-id node3
-
同理设置node2对node2、node3的免密登录
3.4 在node1上安装Ambari源
3.4.1 安装yum的相关工具
yum install yum-utils -y
yum repolist
yum install createrepo -y
3.4.2 安装Apache httpd
- 使用yum安装httpd
yum install httpd -y
- 在生成的 /var/www/html 目录下创建ambari和hdp目录
mkdir /var/www/html/ambari
mkdir /var/www/html/hdp
mkdir /var/www/html/hdp/HDP-UTILS-1.1.0.22
-
使用xftp将先前下载好的ambari、hdp的安装文件传输到node1根目录下
- 将安装文件解压至相应目录中
tar -zxvf ambari-2.7.3.0-centos7.tar.gz -C /var/www/html/ambari/
tar -zxvf HDP-3.1.0.0-centos7-rpm.tar.gz -C /var/www/html/hdp/
tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/HDP-UTILS-1.1.0.22/
- 启动httpd服务并设置开机自启
systemctl start httpd
systemctl status httpd
systemctl enable httpd
若结果为 active (running) 则表明启动成功
- 在浏览器中输入 http://192.168.121.101 即可看到httpd页面
3.5 配置本地Repo并分发
- 配置ambari
下载并修改配置文件
wget -O /etc/yum.repos.d/ambari.repo http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari.repo
vi /etc/yum.repos.d/ambari.repo
将baseurl与gpgkey修改为httpd中的路径
- 配置HDP和HDP-UTILS
创建配置文件
touch /etc/yum.repos.d/HDP.repo
添加内容
#VERSION_NUMBER=3.1.0.0-78
[HDP-3.1.0.0]
name=HDP Version - HDP-3.1.0.0
baseurl=http://192.168.121.101/hdp/HDP/centos7
gpgcheck=1
gpgkey=http://192.168.121.101/hdp/HDP/centos7/3.1.0.0-78/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.121.101/hdp/HDP-UTILS-1.1.0.22
gpgcheck=1
gpgkey=http://192.168.121.101/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
- 分发ambari.repo和HDP.repo到各个节点的相同目录下
scp ambari.repo HDP.repo node1:$PWD
scp ambari.repo HDP.repo node2:$PWD
scp ambari.repo HDP.repo node3:$PWD
3.6 生成本地源
- 创建本地源,为存放本地特定位置的众多RPM包建立索引,描述各包所需依赖信息,形成元数据。
createrepo /var/www/html/hdp/HDP/centos7/
createrepo /var/www/html/hdp/HDP-UTILS-1.1.0.22/
四、安装ambari
4.1 在node1安装ambari-server
yum install ambari-sever
注:
1.选择JDK时选(2)自定义jdk,并填写jdk安装路径/usr/java/jdk1.8.0_144
2.Enter advanced databse configration[y/n]?时选择y,进入到数据库选择界面,在Enter choice后选择3,配置hostname为node1,使用默认端口,Database name为ambari,密码为ambari123
4.2 使用root登录MySQL
mysql -u root -p
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> GRANT ALL PRIVILEGES ON ambari.* TO 'ambari'@'localhost' IDENTIFIED BY 'Ambari123';
mysql> GRANT ALL PRIVILEGES ON ambari.* TO 'ambari'@'%' IDENTIFIED BY 'Ambari123';
mysql> FLUSH PRIVILEGES;
4.3 使用ambar登录并查看数据库
mysql -u ambari -p -h node1
mysql> show databases;
使用ambari数据库,查看数据表
mysql> use ambari;
mysql> /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;
mysql> show tables;
4.4 启动ambari-sever
ambari-server start
注:若启动失败需 先关闭服务
ambari-server stop
再重新启动
4.5 安装ambari-agent
- 在node2、node3上安装ambari-agent
yum -y -install ambari-agent
五、访问Ambari web页面进行集群的安装
5.1 访问ambari web页面
- 在浏览器中输入http://192.168.121.101:8080 访问ambari页面
用户名和密码均为 'admin'
5.2 安装集群
-
点击LAUNCH INSTALL WIZARD创建集群
- 配置集群名称为ambari
-
选择hdp的版本以及源的设置
注:由于HDP-GPL很小,通常不需设置本地源
-
配置节点、密钥
注:密钥文件需从node1下载,路径为/root/.ssh/id_rsa
推荐使用xftp进行传输
-
进行主机确认
-
选择大数据组件
这里我们选择Hive+HBase+Zookeeper+Storm,并依据提示选择其他必备组件
-
分配节点
依据虚机的情况分配节点
- 分配从属和客户端
注:此处可以只选择一个DataNode
- 连接数据库
用户名 | 密码 |
---|---|
admin | admin123 |
hive | hive123 |
N/A | admin123 |
- 与已有的hive数据库连接
在Hive Database中选择 Exisiting MySQL/MariaDB
在node1中执行ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
在Database URL中填写 jdbc:mysql://node1/hive
Database Password中输入 hive123 (创建hive数据库是设置的密码)
-
集群整体概况
-
点击DEPLOY进行部署,等待部署完成即可