手记

【流水】使用Ambari搭建Hadoop平台

小姐姐味道【ID:xjjdog】
作者:十年架构,日百亿流量经验,与你分享。

手动安装Hadoop的朋友都知道,这是一个痛苦的过程。一天时间,你能够把上千台机器全部安装完成么?包括Hive、Spark、Hbase等。

这当然要借助工具,国内用户安装Hadoop套件,习惯使用CM安装CDH,但这次,我们想尝试一下Hortonworks的Ambari来安装HDP。由于没有免费版收费版的区别,整个使用过程是非常流畅的。因为机器多且网络差的原因,我们使用本地镜像的方式进行安装。

以centos7为例,以下是安装过程~

准备阶段

搭建镜像

下载以下文件,并上传到某台服务器上,然后解压。

http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.1.0/ambari.repo
http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.0.1.0/hdp.repo
http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.0.1.0/hdp.gpl.repo
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.1.0/ambari-2.7.1.0-centos7.tar.gz
http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.0.1.0/HDP-3.0.1.0-centos7-rpm.tar.gz
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz
http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.0.1.0/HDP-GPL-3.0.1.0-centos7-gpl.tar.gz

解压,并启动一个简单的http服务器,搭建本地镜像。

tar xvf ambari-2.7.1.0-centos7.tar.gz
tar xvf HDP-3.0.1.0-centos7-rpm.tar.gz
tar xvf HDP-UTILS-1.1.0.22-centos7.tar.gz
tar xvf HDP-GPL-3.0.1.0-centos7-gpl.tar.gz

nohup python -m SimpleHTTPServer 8000 &

至此,访问 http://ip:8000就可以访问我们的镜像了。

免密登陆

这个是每种安装都需要的

ssh-keygen -t rsa

然后将~/.ssh/id_rsa.pub文件追加到每台机器的信任列表

cat >> /root/.ssh/authorized_keys

可以使用ansible等去完成这个体力活。

将下载的repo加入到源

修改里面的ip地址和路径,将地址指向我们的本地镜像。如

cat /etc/yum.repos.d/ambari.repo

#VERSION_NUMBER=2.7.1.0-169
[ambari-2.7.1.0]
#json.url = http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json
name=ambari Version - ambari-2.7.1.0
baseurl=http://10.67.2.148:8000/ambari/centos7/2.7.1.0-169
gpgcheck=1
gpgkey=http://10.67.2.148:8000/ambari/centos7/2.7.1.0-169/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

配置hosts

当然也可以直接使用DNS;或者ip,但会显得乱

类似这种

10.81.28.181 bigdata001.dm.ops.pro.dc
10.66.224.130 bigdata002.dm.ops.pro.dc
10.80.86.57 bigdata003.dm.ops.pro.dc
10.25.128.158 bigdata004.dm.ops.pro.dc
10.67.2.148 bigdata005.dm.ops.pro.dc

安装ambari-server

yum install ambari-server -y
ambari-server setup

安装基础依赖

安装jdk,每个节点执行

yum install java-1.8.0-openjdk -y

安装数据库,当然也可以用现有的

yum install mariadb-server -y
systemctl start mariadb
mysql_secure_installation

导入脚本到数据库

mysql -h localhost -uroot -p ambari < /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

安装jdbc驱动(驱动提前下载到/usr/share/java)

ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar

给予MySQL外网授权

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xxx' WITH GRANT OPTION;
flush privileges;

启动ambari-server

ambari-server start

在线配置

访问http://ip:8080端口,即可进入ambari后台

给集群起个名字

选择版本并设置本地镜像

把机器加入到集群中

同时,配置自动登录的私钥信息

选择集群安装的软件

涉及服务拓扑

将不同的服务根据需要安装在不同的机器上。

设置其他主从信息

设置一些管理账号

配置数据库连接信息

指定一些项目的参数

设置系统用户

开始安装

由于采用的是本地镜像,无需下载,所以速度非常快。

安装完成

安装完成后即可进入主界面

清理

SmartSense服务可能会启动失败,根据文档需要提供一个ID,我们可以通过调用接口删除这个模块。

curl -u admin:admin -i -H 'X-Requested-By: ambari' -X PUT -d '{"RequestInfo": {"context" :"Stop SmartSense via REST"}, "Body": {"ServiceInfo": {"state": "INSTALLED"}}}' http://10.67.2.148:8080/api/v1/clusters/big_zeus/services/SMARTSENSE

curl -u admin:admin -i -H 'X-Requested-By: ambari' -X POST -d '{"RequestInfo": {"context" :"Uninstall SmartSense via REST", "command":"Uninstall"}, "Requests/resource_filters":[{"hosts":"comma separated host names", "service_name":"SMARTSENSE", "component_name":"HST_AGENT"}]}' http://10.67.2.148:8080/api/v1/clusters/big_zeus/requests

curl -u admin:admin -H 'X-Requested-By: ambari' -X DELETE http://10.67.2.148:8080/api/v1/clusters/big_zeus/services/SMARTSENSE



0人推荐
随时随地看视频
慕课网APP