2019独角兽企业重金招聘Python工程师标准>>>
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 223192.168.1.224 224192.168.1.225 225
1.3 关闭防火墙
在所有的主机上,执行如下命令,关闭防火墙。
chkconfig iptables offservice 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 ntpchkconfig ntpd on
启动NTP服务
service ntpd start
1.6 建立SSH互信
在所有的主机上建立互信,要求所有的机器必须能够项目无密码登陆。
首先,登陆ambari-server机器,执行如下命令生成公钥
//首先切换到当前登录用户的用户目录下cd ~/mkdir .sshssh-keygen -t rsacd .sshcat id_rsa.pub >> authorized_keyschmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys
将authorized_keys中的秘钥分发到所有ambari-agent节点上。
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.224ssh-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/defragecho never > /sys/kernel/mm/redhat_transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag
1.8 安装JDK
卸载自带的Open-jdk
rpm -qa | grep javarpm -e –nodeps 加上查询出来的名字
从官网下载JDK安装包
利用终端工具将安装包上传至服务器
执行如下命令
mkdir /usr/local/jdktar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/jdk/vim /etc/profile
将如下內容放到文件底部,保存
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_181export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/libexport 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 onservice 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.0baseurl=http://192.168.1.223/ambari/centos6/gpgcheck=1gpgkey=http://192.168.1.223/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkinsenabled=1priority=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.0baseurl=http://192.168.1.223/hdp/centos6gpgcheck=1gpgkey=http://192.168.1.223/hdp/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkinsenabled=1priority=1[HDP-UTILS-1.1.0.22]name=HDP-UTILS Version - HDP-UTILS-1.1.0.22baseurl=http://192.168.1.223/hdp-utilgpgcheck=1gpgkey=http://192.168.1.223/hdp-util/RPM-GPG-KEY/RPM-GPG-KEY-Jenkinsenabled=1priority=1
查看是否添加成功
yum clean allyum repolist
2.6 准备系统yum源
从网上下载相对应linux版本的完整版安装包
在服务器上创建相应yum源托管目录。由于文件较大,我们通过软连接方式托管到服务器。
mkdir -p /var/www/html/centos/7/os/mkdir -p /opt/centos/7/os/x86_64/Packagesln -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=localbaseurl=http://服务器IP地址/centos/$releasever/os/$basearch/gpgcheck=1gpgkey=http://服务器IP地址/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-7enabled=1priority=1
执行如下命令进行测试
yum clean allyum makecacheyum repolist
2.9 配置说明
首先,在一台机器上制作好局域网本地源后,其它机器只需要按照2.5和2.8步骤进行相应的配置即可。
3 Ambari-Server搭建
3.1 安装ambari-server
yum install ambari-server
3.2 配置ambari-server
注意加粗地方的选择
ambari-server setupUsing python /usr/bin/python2Setup ambari-serverChecking SELinux...SELinux status is 'disabled'Customize user account for ambari-server daemon [y/n] (n)? yEnter user account for ambari-server daemon (root):rootAdjusting 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): 3WARNING: 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_60Validating 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