Ambari安装部署---CentOS 7
准备3台机器,分工如下:
server:
10.41.2.124
agent:
10.41.2.125
10.41.2.127
注:以下操作如无特殊说明,均需在3台机器上都进行
修改/etc/hosts文件,设置fqdn:
vi /etc/hosts
10.41.2.124 IOP124.ambari.com IOP124
10.41.2.125 IOP125.ambari.com IOP125
10.41.2.127 IOP127.ambari.com IOP127
验证fqdn设置是否正确(注:以server节点为例):
hostname -f
IOP124.ambari.com
利用Ambari安装大数据集群,需要保证server节点能无密码远程登录agent节点。所以,该操作仅需在server节点进行。
(1)登录主机(server)节点
(2)用 ssh-keygen 命令在server节点上生成公钥和密钥
ssh-keygen -t rsa
(3)用 ssh-copy-id 命令把公钥从server节点拷贝到agent节点上
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected](注意:若server节点也安装大数据服务,必须建立server节点自身的ssh无密码登录;否则,无需进行该步操作)
(4)验证
禁用selinux:
vi /etc/selinux/config
SELINUX=disabled
禁用防火墙:
systemctl disable firewalld.service
systemctl stop firewalld.service
重启服务器,使设置生效。
将jdk的压缩包放置在/usr/local目录下,执行解压命令:
cd /usr/local
tar -zxvf jdk-8u65-linux-x64.tar.gz
mv jdk1.8.0_65/ jdk/
设置环境变量:
vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/local/jdk/
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
执行source /etc/profile 命令使环境变量的设置生效;
执行java -version 命令验证jdk是否安装成功。
利用ambari安装大数据集群时,要求各个节点之间时间同步,故需要安装ntp服务:
yum -y install ntp
systemctl enable ntpd
systemctl start ntpd
Ambari的安装,默认使用的是网络源,故而安装过程中极易受到网速的影响,从而导致安装失败。为了安装的顺利,搭建本地源,此处将该操作在server节点进行。
为了搭建本地源,需要安装httpd
yum -y install httpd.x86_64
systemctl enable httpd.service
systemctl start httpd.service
需要将网络源涉及到的安装包同步到本地
yum -y install wget.x86_64
cd /etc/yum.repos.d/
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.1.2/ambari.repo
yum repolist
yum -y install yum-utils
reposync -r HDP-2.3
reposync -r HDP-UTILS-1.1.0.20
reposync -r Updates-ambari-2.1.2
执行同步命令后,会得到相应的三个目录,每个目录下有相应的rpm安装包。之后,将HDP-2.3、HDP-UTILS-1.1.0.20、Updates-ambari-2.1.2三个目录移至/var/www/html/目录下:
cd /var/www/html/
mv /etc/yum.repos.d/HDP-2.3 .
mv /etc/yum.repos.d/HDP-UTILS-1.1.0.20 .
mv /etc/yum.repos.d/Updates-ambari-2.1.2 .
使用createrepo命令创建本地源:
yum -y install createrepo
cd /var/www/html/
cd HDP-2.3/
createrepo .
cd HDP-UTILS-1.1.0.2/
createrepo .
cd Updates-ambari-2.1.2/
createrepo .
除此之外,Ambari及大数据集群安装过程中也需要安装一些操作系统软件。因为默认使用的是网络源,所以安装过程中有可能下载相应系统软件的最新包进行安装,所以需搭建CentOS7操作系统的本地源。
使用CentOS7操作系统镜像搭建本地源:
mkdir -p /tmp/CentOS-7
mount -t auto /dev/cdrom /tmp/CentOS-7/
cp -r /tmp/CentOS-7/ /var/www/html/
umount /tmp/CentOS-7/
删除CentOS7操作系统中的snappy包,这是因为大数据集群安装过程中会安装snappy软件,但用于安装大数据集群的节点安装的操作系统已安装snappy软件,且版本比安装大数据集群需要的高,所以会导致大数据集群安装失败。
cd /var/www/html/CentOS-7/Packages
ls -la | grep snappy
rm -rf snappy-1.1.0-3.el7.x86_64.rpm
删除snappy软件包后,需要重新创建本地源:
cd /var/www/html/CentOS-7/repodata/
rm -rf *.bz2 *.gz
mv *-comps.xml comps.xml
cd ..
createrepo -g repodata/comps.xml .
安装Ambari及大数据集群安装过程中也需要安装MySQL:Ambari安装过程中会让用户选择使用的数据库,支持Postgre、MySQL等,因为对MySQL更为熟悉,所以选择MySQL;Hive安装过程中会安装MySQL存储元数据。因为默认使用的是网络源,所以会从网上下载MySQL进行安装。安装过程中极易受到网速的影响,从而导致安装失败。所以为了安装的顺利,搭建MySQL本地源。
此处使用的是MySQL 5.6.27版本,从MySQL官网下载相应版本的RPM包,之后搭建MySQL本地源:
cd /var/www/html/
mkdir -p MySQL
#将下载的mysql-community-server-5.6.27-2.el7.x86_64.rpm、#mysql-community-client-5.6.27-2.el7.x86_64.rpm、#mysql-community-common-5.6.27-2.el7.x86_64.rpm、#mysql-community-libs-5.6.27-2.el7.x86_64.rpm安装包拷贝至/var/www/html/MySQL目录下,#使用createrepo命令创建本地源:
createrepo .
之后,重启httpd服务,使本地源生效:
systemctl restart httpd.service
最后,修改本地源,启用本地源进行Ambari的安装:
cd /etc/yum.repos.d
mkdir -p bak
mv *.repo bak/
vi CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://10.41.2.124/CentOS-7
enabled=1
gpgcheck=0
vi ambari.repo
[Updates-ambari-2.1.2]
name=ambari-2.1.2 - Updates
baseurl=http://10.41.2.124/ambari/centos7/2.x/updates/2.1.2
gpgcheck=0
enabled=1
vi HDP.repo
[HDP-2.3]
name=HDP-2.3
baseurl=http://10.41.2.124/HDP/centos7/2.x/updates/2.3.2.0
gpgcheck=0
enabled=1
vi HDP-UTILS-1.1.0.20.repo
[HDP-UTILS-1.1.0.20]
name=HDP-UTILS-1.1.0.20
baseurl=http://10.41.2.124/HDP-UTILS-1.1.0.20/repos/centos7
enabled=1
gpgcheck=0
vi mysql-community.repo
[5.6.27-2]
name=5.6.27-2
baseurl=http://10.41.2.124/MySQL
enabled=1
gpgcheck=0
更新本地源:
yum clean all && yum repolist
注:删除snappy软件及使用本地操作系统源的操作需要在所有的安装大数据集群的节点上执行。
在server节点安装Ambari Server之前,需要先安装MySQL数据库:
yum -y install mysql-community-server
yum -y install mysql-connector-java
systemctl enable mysqld.service
systemctl restart mysqld.service
运行mysql_secure_installation进行安全配置,会执行如下几个设置:
(1)为root用户设置密码;
(2)删除匿名账号;
(3)取消root用户远程登录;
(4)删除test库和对test库的访问权限;
(5)刷新授权表使修改生效。
设置root用户密码为root,新增ambari用户并设置权限:
mysql -uroot -proot
CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';
CREATE USER 'ambari'@'IOP124' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'IOP124'; //本地主机名
FLUSH PRIVILEGES;
使用ambari用户登录,创建ambari数据库:
mysql -uambari -pambari
CREATE DATABASE ambari;
在server节点安装Ambari Server。
(1)安装
yum -y install ambari-server
(2)配置
ambari-server setup
#web ui登录账号设置,默认的用户名/密码为admin/admin,此处选择默认
Customize user account for ambari-server daemon [y/n] (n)?
输入:n
#检查是否已关闭防火墙
Adjusting ambari-server permissions and ownership...
Checking firewall...
WARNING: iptables is running. Confirm the necessary Ambari ports are accessible. Refer to the Ambari documentation for more details on ports.
OK to continue [y/n] (y)?
输入:y
#配置JDK,此处选择自定义
Checking JDK...
[1] - Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[2] - Oracle JDK 1.6 + Java Cryptography Extension (JCE) Policy Files 6
[3] - Custom JDK
==============================================================================
Enter choice (1):
输入:3
输入:/usr/local/jdk/ #jdk安装目录,根据实际情况填写
#配置数据库,此处选择MySQL
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL
[4] - PostgreSQL
==============================================================================
Enter choice (1):
输入:3
Hostname (localhost): #主机名,默认,直接回车
Port (3306): #端口号,默认,直接回车
Database Name (ambari): #数据库名称,默认,直接回车
Username (ambari): #数据库用户,默认,直接回车
Enter Database Password (cluster):
输入:ambari
Re-enter password:
输入:ambari
WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
Proceed with configuring remote database connection properties [y/n] (y)?
输入:y
注意:此时需要登录到mysql执行创建数据表的脚本
使用ambari用户登录到mysql,切换到ambari数据库,执行SQL脚本:
mysql -uambari -pambari
mysql> use ambari;
Database changed
mysql> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
验证脚本是否执行成功:
mysql> show tables;
+-------------------------------+
| Tables_in_ambari |
+-------------------------------+
| ClusterHostMapping |
| QRTZ_BLOB_TRIGGERS |
| QRTZ_CALENDARS |
| QRTZ_CRON_TRIGGERS |
| QRTZ_FIRED_TRIGGERS |
| QRTZ_JOB_DETAILS |
| QRTZ_LOCKS |
只保留相应操作系统版本,其他删除,baseurl改为对应源本地地址即可:
cd /var/lib/ambari-server/resources/stacks/HDP/2.3/repos
vi repoinfo.xml
<reposinfo>
<os family="redhat7">
<repo>
<baseurl>http://10.41.2.124/HDP/centos7/2.x/updates/2.3.2.0</baseurl>
<repoid>HDP-2.3</repoid>
<reponame>HDP</reponame>
</repo>
<repo>
<baseurl>http://10.41.2.124/HDP-UTILS-1.1.0.20/repos/centos7</baseurl>
<repoid>HDP-UTILS-1.1.0.20</repoid>
<reponame>HDP-UTILS</reponame>
</repo>
<repo>
<baseurl>http://10.41.2.124/MySQL</baseurl>
<repoid>5.6.27-2</repoid>
<reponame>mysql-community</reponame>
</repo>
</os>
<reposinfo>
修改完毕后,启动Ambari Server:
ambari-server start
执行命令查看Ambari Server是否运行(注:等待时间可能稍长):
netstat -ntlp | grep 8080
#或
ps -ef | grep ambari
#或者查看日志
tail -f /var/log/ambari-server/ambari-server.log
在server节点成功启动ambari-server服务后,登录浏览器访问http://10.41.2.124:8080,利用可视化界面部署集群。
注:SSH私钥文件位于server节点的/root/.ssh目录下,文件名为id_rsa
集群部署过程中,若报以下错误:
找到/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-START/scripts目录,修改所有节点下的params.py文件,将
ambari_db_rca_password = config['hostLevelParams']['ambari_db_rca_password'][0]
进行注释:
重启 ambari即可解决问题。
至此,ambari安装部署集群完毕!
https://cwiki.apache.org/confluence/display/AMBARI/Install+Ambari+2.1.2+from+Public+Repositories
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26230811&id=4023821
http://blog.csdn.net/shifenglov/article/details/41831983
http://www.tuicool.com/articles/6j2uQn