Centos7联网环境搭建ambari集群及其本地源
文章目录
- Centos7联网环境搭建ambari集群及其本地源
- 一、前提准备
- 二、准备安装
- 1、为虚拟机配置网卡信息
- 2、配置hostname
- 3、配置ssh
- 4、关闭firewalld、selinux
- 5、安装JDK1.8
- 6、NTP时间同步
- 7、安装httpd
- 8、安装mysql
- 9、安装mysql jdbc
- 10、搭建数据库
- 11、制作本地源
- 三、运行安装程序
- 1、安装Ambari
- 2、配置Ambari
- 3、启动ambari
- 四、安装、配置和部署集群
- 1、登录
- 2、登录成功
- 3、准备开始
- 4、选择堆栈
- 5、配置ambari-agent安装选项
- 6、安装ambari-agent
- 7、选择服务
- 8、分配服务所在主节点
- 9、分配节点
- 10、定制服务
- 11、检查配置
- 12、安装并启动集群
- 13、总结
一、前提准备
1、使用vm创建5台Centos7虚拟机
(主机数不定,但通常,至少应使用三台主机:一台主机和两台从机。)
五台虚拟机均为:
磁盘:1T(精简置备)
内存:4G
cpu:4核
2、下载ambari及其本地源(HDP),链接之后给出。
链接:
ambari2.6.2.2下载地址HDP2.6.5.0下载地址HDP-UTILS-1.1.0.22下载地址HDP-GPL-2.6.5.0下载地址
文件较大,提前下载为之后本地源搭建做准备
3、以下为本次搭建所用到的所有文件
本次搭建五台虚拟机均使用root用户
二、准备安装
1、为虚拟机配置网卡信息
在centos7系统下,输入cd /etc/sysconfig/network-scripts/进入网卡配置文件夹,使用vi编辑器编辑网卡文件。为虚拟机配置ip地址信息。
此操作要求五台虚拟机中均完成。之后使用systemctl restart network命令重启网卡。
使用ping命令,ping www.baidu.com,若能够ping通,则虚拟机可联网。
2、配置hostname
(1)在每台虚拟机中执行hostnamectl set-hostname (你设置的主机名称)。
本次演示中,五台虚拟机名称为
ambari
client
master
slave1
slave2
(2)在每台虚拟机中执行vi /etc/hosts,进入vi编辑器编辑hosts文件,将五台虚拟机的IP地址及主机名(hostname)加入其中。
格式为:
ip地址 主机名
若无特殊说明之后所有操作均在ambari主机上操作
3、配置ssh
(1)在每台主机中执行ssh -keygen
(2)在root文件下,使用cd命令,进入.ssh/文件夹
(3)执行cp id_rsa.pub authorized_keys
(4)执行ls命令查看文件夹,执行vi authorized_keys命令,将其余四台主机中的id_rsa.pub内的内容复制粘贴入ambari主机中的authorized_keys文件中。
(5)执行scp -p authorized_keys root@client:/root/.ssh/
该命令将authorized_keys文件传入client主机中,以此类推,将文件传入其余三台主机中。
(6)执行ssh client命令查看是否能够免密登录,以此类推检查每个主机间的免密登录情况(所有主机间都需要实现免密登录)
4、关闭firewalld、selinux
(1)关闭防火墙
在每个主机中执行以下两条命令:
systemctl stop firewalld
systemctl disable firewalld
使用systemctl status firewalld查看防火墙状态
(2)关闭Selinux
vi /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
改操作需重启机器后生效
重启后使用getenforce命令查看selinux状态
5、安装JDK1.8
(1)执行命令mkdir /opt/jdk/,将jdk安装包传入jdk文件夹,使用tar命令解压。
(2)使用scp命令将jdk文件传入其余四台主机
scp -p /opt/jdk/ root@client:/opt/
以此类推,将jdk文件夹传入其余三台主机。
(3)修改环境变量
vi /etc/profile
在文件最后填入以下内容
export PATH
export JAVA_HOME=/opt/jdk/jdk1.8.0_261
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
使用java -version命令检查java安装情况
(4)修改其余四台主机的环境变量,并使用java -version验证java安装情况
6、NTP时间同步
在虚拟机能够联网的情况下,可跳过这个操作,如若需要请自行寻找教程。
7、安装httpd
依次执行以下命令
yum install httpd -y #安装
systemctl start httpd #启动
systemctl enable httpd #开机默认启动
默认网站根目录为/var/www/html,无需更改
8、安装mysql
(1)在mysql官网下载mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar,下载过程中,在ambari创建/opt/mysql/文件夹
mkdir /opt/mysql
将下载好的压缩包传入该文件夹中,并使用tar -xvf命令释放压缩包。
(2)由于Centos7自带mariadb数据库,该数据库驱动与mysql驱动冲突,所以在安装mysql数据库前应将其卸载。
执行以下命令
rpm -qa | grep mariadb
使用rpm命令删除查询出的所有文件
rpm -e --nodeps 文件名
(3)安装perl
yum install perl -y
(4)安装mysql
之前解压出来的几个rpm包之间有依赖关系,所以需要按照顺序依次执行以下命令安装:
rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm
至此mysql数据库安装完成。
(5)运行mysql
systemctl start mysqld
(6)修改root用户密码
在运行mysql后,mysql会自动帮我们创建一个root用户,需要进入mysql.log中查看root用户密码,初始密码非常复杂,建议更改。
查看mysql.log:
cat /var/log/mysqld.log
找到A temporary password is generated for root@localhost:字样,之后跟着的就是密码,复制保存一会使用。
登录:
mysql -u root -p
输入刚才复制的密码
修改密码:
set global validate_password_policy=0;
set password = password('root1234');
grant all privaileges on *.* to 'root'@'%';
flush privileges;
设置开机启动
systemctl enable mysqld
9、安装mysql jdbc
自行加载jar包,将其放入/usr/share/java
本次使用的jar包下载地址:
https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar 可使用wget命令将该文件直接下载到/usr/share/java文件中
cd /usr/share/java
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar
将下载的包名称改为mysql-connector-java.jar
mv mysql-connector-java-8.0.11.jar mysql-connector-java.jar
10、搭建数据库
使用root用户登入mysql
mysql -u root -p
创建如下数据库
create database ambari;
CREATE USER 'ambari'@ '%' IDENTIFIED BY 'Ambari-123';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@ '%';
FLUSH PRIVILEGES
create database hive;
CREATE USER 'hive'@ '%' IDENIFIED BY 'Hive-123';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@ '%';
FLUSH PRIVILEGES
11、制作本地源
(1)将之前下载的ambari,HDP,HDP-UTILS,HDP-GPL压缩包传入ambari的/var/www/html/ambari文件夹中。(自行创建ambari文件夹)
(2)使用tar命令将其解压,结果如下:
我们可以在网页中查询到这些文件,在浏览器中输入http://ambari的ip地址/ambari,便可以看到上述文件。
(3)安装创建yum源工具
yum install yum-utils createrepo yum-plugin-priorities -y
createrepo ./ #在var/www/html/ambari/下执行即可
(4)配置本地源
将ambari.repo、hdp.repo、hdp-gpl.gpl.repo文件传入/etc/yum.repos.d/。上述三个文件依次在解压后的ambari/、HDP/、HDP-GPL/下。
可使用wget命令下载至/etc/yum.repos.d/中,也可直接复制到该文件夹下。
ip地址=httpd服务所在主机的ip地址 (下同)
wget http://{ip地址}/ambari/ambari/centos7/2.6.2.2-1/ambari.repo
wget http://{ip地址}/ambari/HDP/centos7/2.6.5.0-292/hdp.repo
wget http://{ip地址}/ambari/HDP-GPL/centos7/2.6.5.0-292/hdp-gpl.gpl.repo
修改ambari.repo文件:
vi ambari.repo
将baseurl属性改为
http://{ip地址}/ambariambari/centos7/2.6.2.2-1/
将gpgkey属性改为
http://{ip地址}/ambari/ambari/centos7/2.6.2.2-1/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
同上述操作,将hdp.repo、hdp-gpl.gpl.repo文件中的baseurl属性与gpgkey属性全改为相应的地址。其中hdp.repo中还有HDP-UTILS的信息,也要改成hdp-utils的相应地址。
最后,将这三个文件发送到其余四个节点的/etc/yum.repos.d/文件夹
(4)制作本地源
yum clean all
yum makecache
yum repolist
三、运行安装程序
1、安装Ambari
yum install ambari-server -y
2、配置Ambari
ambari-server setup
之后按照提示进行操作:
1)提示是否自定义设置。输入y
2)设置ambari-server账号。输入:root
3)设置JDK。输入:3
选择本地jdk,输入JAVA_HOME
4)配置数据库,输入:3
属性依次为:
服务所在主机名、端口(默认3306)、数据库名、数据库用户名、相应密码
5)将Ambari数据库脚本导入到数据库
使用Ambari用户登录mysql
mysql -u ambari -p
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
至此Ambari服务配置完成
3、启动ambari
将/usr/share/java/中的mysql-connector-java.jar复制到/var/lib/ambari-server/resources/中。
cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/
修改/etc/ambari-server/conf/ambari.properties文件
vi /etc/ambari-server/conf/ambari.properties
在其中添加
server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar
启动ambari
ambari-server start
成功启动后,在浏览器中输入ambari地址:http://{ip地址}:8080
四、安装、配置和部署集群
1、登录
进入浏览器后,出现登录界面,默认管理员账户登录
账户:admin
密码:admin
2、登录成功
登录成功后进入如下界面
点击Launch Install Wizard
3、准备开始
自定义cluser名称
4、选择堆栈
选择本地源
填入相应地址:
http://{ip地址}/ambari/HDP/centos7/2.6.5.0-292/
http://{ip地址}/ambari/HDP-GPL/centos7/2.6.5.0-292/
http://{ip地址}/ambari/HDP-UTILS/centos7/1.1.0.22/
具体位置根据实际情况填入,以上仅供参考。
5、配置ambari-agent安装选项
第一个文本框填入除ambari主机外的四台主机名
第二个文本框填入所有五台主机的私钥(/root/.ssh/id_rsa)
6、安装ambari-agent
第一次执行,可能会报错
解决方法:
修改所有主机中的/etc/python/cert-verification.cfg文件
vi /etc/python/cert-verification.cfg
[https]
verify=platform_default
将上述属性值修改为disable
修改四台从机中的/etc/ambari-agent/conf/ambari-agent.ini文件
添加[security]栏以下内容
vi /etc/ambari-agent/conf/ambari-agent.ini
[security]
force_https_protocol=PROTOCOL_TLSv1_2
修改完成后,点击retry重新注册
全部通过后,点击下一步
7、选择服务
本次搭选择的服务有:HDFS、YARN+MapReduce2、Tez、Hive、HBase、Pig、Sqoop、ZooKeeper、Ambari Metrics、Kafka、SmartSense、Spark、Slider。
8、分配服务所在主节点
默认就好,不用更改
9、分配节点
将client设置在client主机,其余如图即可(仅供参考,可根据需求自行选择)
10、定制服务
进入界面如下
HDFS栏:
将NameNode directories中的 ,/home/hadoop/hdfs/namenode 删除
将DataNode directories中的 ,/home/hadoop/hdfs/data 删除
YARN栏:
点击Advanced
将yarn.nodemanager.local-dirs中的 ,/home/hadoop/yarn/local 删除
将yarn.nodemanager.log-dirs中的 ,/home/hadoop/yarn/log 删除
Hive栏:
点击Advanced
选择自行安装的mysql;
填入之前创建的mysql用户(hive)的密码(Hive-123);
将Database URL中的master改为ambari(mysql安装在ambari上);
点击测试,尝试连接,连接成功即可。
Ambari Metrics栏:
自定义密码即可
SmartSense栏:
点击Activity Analysis
自定义密码即可
可能出现的问题
进入从虚拟机(除ambari外)使用命令
ds -lh #查看本机磁盘使用情况
可以发现 / 目录下哦那个容量为50G点击下一步时,会出现如下警告
hdfs默认为主机文件系统保留60G的磁盘容量,上述警告为建议为主机文件系统保留120G的磁盘容量,但是通过命令查询hdfs挂载的节点容量仅为50G,若设置为120G,会导致hdfs无容量可用,导致一会集群启动失败。
在这里,我将dfs.datanode.du.reserved容量设置为20G。
该条属性请根据虚拟机的具体情况进行自主配置
其余可能的解决办法:
1)增加一块磁盘,如有必要请自行查找教程
2)重新划分分区,将hdfs挂载节点的容量提高
将dfs.datanode.du.reserved属性(位置在HDFS->General->Reserved space for HDFS)修改为20G(21474836480 bytes)后无视警告进行下一步。
11、检查配置
复查,没有问题进入下一步
12、安装并启动集群
所有节点安装并启动成功,则至此ambari集群搭建完成
若出现错误,则复查之前所有操作,或查看日志,解决所有报错
成功界面如下:
13、总结
点击Complete,进入管理界面: