1 安装前服务器环境准备
1.1 环境规划
实验机器总数3台。
IP | 主机名 | 部署环境 |
192.168.1.223 | 223 | Ambari-server、ambari-agent、yum源 |
192.168.1.224 | 224 | Ambari-agent |
192.168.1.225 | 225 | Ambari-agent |
1.2 配置hosts
在三台主机中添加主机名与IP之间的对应关系。
vim /etc/hosts
将以下內容添加进去
192.168.1.223 223
192.168.1.224 224
192.168.1.225 225
1.3 关闭防火墙
在所有的主机上,执行如下命令,关闭防火墙。
chkconfig iptables off
service iptables stop
1.4 关闭SELINUX和PackageKit
在所有的主机上,执行如下命令
SELINUX修改
vim /etc/selinux/config
做如下更改:SELINUX=disabled
PackageKit(系统中已经安装了PackageKit)
vim /etc/yum/pluginconf.d/refresh-packagekit.conf
做如下更改:enabled=0
1.5 安装NTP时钟同步
在所有的主机上,执行如下操作
安装NTP服务
yum install -y ntp
chkconfig ntpd on
启动NTP服务
service ntpd start
1.6 建立SSH互信
在所有的主机上建立互信,要求所有的机器必须能够项目无密码登陆。
首先,登陆ambari-server机器,执行如下命令生成公钥
//首先切换到当前登录用户的用户目录下
cd ~/
mkdir .ssh
ssh-keygen -t rsa
cd .ssh
cat id_rsa.pub >> authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
将authorized_keys中的秘钥分发到所有ambari-agent节点上。
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.224
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.225
在其它ambari-agent节点上也同样利用上面的命令生成公钥,然后将公钥分发给ambari-server。然后,两个agent相互信任。
1.7 关闭Transparent HugePages
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
1.8 安装JDK
卸载自带的Open-jdk
rpm -qa | grep java
rpm -e –nodeps 加上查询出来的名字
从官网下载JDK安装包
利用终端工具将安装包上传至服务器
执行如下命令
mkdir /usr/local/jdk
tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/jdk/
vim /etc/profile
将如下內容放到文件底部,保存
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_181
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
使环境变量生效
source /etc/profile
检查是否安装成功
java -version
2 本地ambari yum源搭建
2.1 安装创建本地源的工具
yum install yum-utils createrepo
2.2 安装httpd
yum install httpd
2.3 托管ambari安装包到apache服务器
将本地安装包上传服务器后,解压到/var/www/html目录下。如果解压后的目录中没有repodata文件夹,则用以下命令生成repodata。
cd /root/HDP/
tar -vzxf ambari.tar.gz -C /var/www/html/ambari/
tar -vzxf HDP.tar.gz -C /var/www/html/HDP/
tar -vzxf HDP-UTILS.tar.gz -C /var/www/html/hdp-util/
# 如果解压后的目录中没有repodata才执行 createrepo操作
createrepo /var/www/html/ambari/centos6/
2.4 启动httpd服务
chkconfig httpd on
service httpd start
2.5 添加ambari+HDP源配置
添加源的时候baseurl填写安装包托管到apache服务器的地址。
添加ambari源
cd /etc/yum.repos.d/
vim ambari.repo
将以下內容添加进ambari.repo
baseurl为当前ambari安装包托管到apache服务器的地址
gpgkey填写当前GPGKEY托管到apache服务器的地址
#VERSION_NUMBER=2.6.2.0-155
[ambari-2.6.2.0]
name=ambari Version - ambari-2.6.2.0
baseurl=http://192.168.1.223/ambari/centos6/
gpgcheck=1
gpgkey=http://192.168.1.223/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
添加HDP源
cd /etc/yum.repos.d/
vim hdp.repo
将以下內容添加进hdp.repo
baseurl为当前hdp安装包托管到apache服务器的地址
gpgkey填写当前GPGKEY托管到apache服务器的地址
#VERSION_NUMBER=2.6.5.0-292
[HDP-2.6.5.0]
name=HDP Version - HDP-2.6.5.0
baseurl=http://192.168.1.223/hdp/centos6
gpgcheck=1
gpgkey=http://192.168.1.223/hdp/centos6/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.1.223/hdp-util
gpgcheck=1
gpgkey=http://192.168.1.223/hdp-util/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
查看是否添加成功
yum clean all
yum repolist
2.6 准备系统yum源
从网上下载相对应linux版本的完整版安装包
在服务器上创建相应yum源托管目录。由于文件较大,我们通过软连接方式托管到服务器。
mkdir -p /var/www/html/centos/7/os/
mkdir -p /opt/centos/7/os/x86_64/Packages
ln -s /opt/centos/7/os/x86_64/ /var/www/html/centos/7/os/
解压linux安装包,将Packages目录下的文件拷贝到/opt/centos/7/os/x86_64/Packages目录下,将RPM-GPG-KEY-CentOS-7拷贝到/opt/centos/7/os/x86_64/目录下。
2.8 添加系统yum配置
执行如下命令
createrepo /var/www/html/centos/7/os/x86_64/
vim /etc/yum.repos.d/local.repo
将如下內容拷贝到local.repo然后保存
#LOCAL
[local]
name=local
baseurl=http://服务器IP地址/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://服务器IP地址/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-7
enabled=1
priority=1
执行如下命令进行测试
yum clean all
yum makecache
yum repolist
2.9 配置说明
首先,在一台机器上制作好局域网本地源后,其它机器只需要按照2.5和2.8步骤进行相应的配置即可。
3 Ambari-Server搭建
3.1 安装ambari-server
yum install ambari-server
3.2 配置ambari-server
注意加粗地方的选择
ambari-server setup
Using python /usr/bin/python2
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):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] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[3] Custom JDK
==============================================================================
Enter choice (1): 3
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/jdk/jdk1.8.0_60
Validating JDK on Ambari Server...done.
Completing setup...
Configuring database...
Enter advanced database configuration [y/n] (n)? n
3.3 启动ambari-server
ambari-server start
访问服务器IP地址+8080端口,看到ambari界面,则安装成功。
4 利用Ambari部署HDP
4.1 准备mysql驱动
将驱动改名为mysql-connector-java.jar复制到ambari-server服务器的/var/lib/ambari-server/resources目录下
4.2 按照界面提示进行操作
进入管理界面后,点击这个按钮
输入集群名字
选择HDP版本,填写HDP,和相应本地yum源地址
填写目标机器主机名,和ambari-server的私钥
Ambari-server私钥查看
cat ~/.ssh/id_rsa
等待安装
选择需要服务
默认安装就好,后期可以改,一路next。
注意在进行这一步操作时,需要填写几种环境的用户名和密码
最终安装成功后,跳转到主页
5 遇到的问题
5.1 修改SSL验证
当ambari-agent向ambari-server注册时出现如下错误,则执行此步骤。
NetUtil.py:96 - EOF occurred in violation of protocol (_ssl.c:579)
NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions.
执行如下步骤解决
vim /etc/ambari-agent/conf/ambari-agent.ini
相应位置配置做出如下修改
[security]
force_https_protocol=PROTOCOL_TLSv1_2
如果python版本为2.7那么还需要进行如下修改
vim /etc/python/cert-verification.cfg
将如下內容进行修改
[https]
verify=disable