小姐姐味道【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