手动安装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.gznohup python -m SimpleHTTPServer 8000 &
至此,访问 http://ip:8000就可以访问我们的镜像了。
这个是每种安装都需要的
ssh-keygen -t rsa
然后将~/.ssh/id_rsa.pub
文件追加到每台机器的信任列表
cat >> /root/.ssh/authorized_keys
可以使用ansible等去完成这个体力活。
修改里面的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
当然也可以直接使用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
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 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/SMARTSENSEcurl -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/requestscurl -u admin:admin -H 'X-Requested-By: ambari' -X DELETE http://10.67.2.148:8080/api/v1/clusters/big_zeus/services/SMARTSENSE