Ambari & HDP 完整安装手册
大数据平台,涉及到很多软件产品,如果刚刚入行hadoop,直接下载软件包,手动配置文件的方式,并没有那么直观和容易。
Ambari提供了一个选择,图形化安装和管理hadoop集群
Ambari公司就不介绍了,Ambari软件很直观,但是实际安装感受并不好。反倒不如自己安装可控。出错/失败之后,"retry"似乎是唯一的办法。
现在我们开始着手安装了,安装过程中,我会介绍我遇到的坑,和如何再次爬出来。
1. 首先登陆官方页面
https://docs.hortonworks.com/index.html
2. 选择需要的版本
3. 点击installation
4. 选择Install Ambari
5. 然后进入文档页面
官方安装步骤,注意,选择你需要安装的版本的安装文档
https://docs.hortonworks.com/HDPDocuments/Ambari-2.4.2.0/bk_ambari-installation/content/download_the_ambari_repo_lnx6.html
6. 根据上面的步骤,就可以进入到配置yum 源头,由于源头在海外,速度超慢,我先将软件包下载到本地。
wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.4.2.0/ambari.repo -O /etc/yum.repos.d/ambari.repo yum repolistyum install --downloadonly ambari-server --downloaddir=/tmp/yum install --downloadonly HDP-2.5.0.0 --downloaddir=/tmp/yum install --downloadonly HDP-2.5.* --downloaddir=/tmp/Update on 2018-5-13yum源有问题了,wget下载地址:wget http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos6/HDP-UTILS-1.1.0.21-centos6.tar.gzwget http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.5.0.0/HDP-2.5.0.0-centos6-rpm.tar.gz[root@db_monitor]# ll-rw-r--r-- 1 root root 5996696005 Aug 27 2016 HDP-2.5.0.0-centos6-tars-tarball.tar.gz-rw-r--r-- 1 root root 833424206 Oct 26 23:09 HDP-UTILS-1.1.0.21-centos6.tar.gz
7.下载到本地之后,在一个服务器上,创建一个HTTP服务,用来后面的安装
yum install httpd -y# service httpd restart# chkconfig httpd on
将下载的HDP软件包放入到/var/www/html/目录下
即可通过网页访问了
准备环节完成了,开始安装了
8. 配置节点的ssh免密登陆,只在安装ambari的服务器上可以访问其他节点即可。
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa
三个回车即可
拷贝密钥到全部节点即可(只有ambari访问其他server不需要密码,反向访问是需要密码的)
ssh-copy-id server2ssh-copy-id server3ssh-copy-id server4
9. 配置ambaris,先关闭selinux(我使用到ansible,可以通过修改配置文件来禁用)
ansible all -m selinux -a 'state=disabled'
10.关闭防火墙
ansible all -m service -a 'name=iptables state=stopped enabled=off'
11.安装JDK,ambari安装的过程,可以自动安装,但是速度比较慢。建议自行安装。需要在全部节点都安装
下载JDK(内网地址)
wget http://10.21.xx.xx/deploy/jdk1.7.0_79.tar.gz
安装JDK,全部节点都要安装
#tar -xzvf jdk1.7.0_79.tar.gz -C /usr/local
添加下面信息到.bash_profile
export JAVA_HOME=/usr/local/jdk1.8.0_144 export JRE_HOME=/usr/local/jdk1.8.0_144/jreexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$PATHsource /etc/profile
12. 现在才开始正式ambaris安装
(注意:如果选择自行安装jdk,并且后续需要使用kerberos认证的话,还是需要JCE的。不然就无法正常连接KDC的。这是我后面遇到问题才发现的。而且oracle官网,只能下载1.8版本的JCE。1.7及以下,需要metalink账号才能下载。所以,如果网速可以的情况下,建议直接选择1、2进行安装JDK)
[root@ip-10-21-23-29 ambari]# ambari-server setupUsing python /usr/bin/pythonSetup ambari-serverChecking SELinux...SELinux status is 'disabled'Customize user account for ambari-server daemon [y/n] (n)? Adjusting 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/jdk1.7.0_79Validating JDK on Ambari Server...done.Completing setup...Configuring database...Enter advanced database configuration [y/n] (n)? -----如果不希望安装默认的postgres数据库,这里要选YConfiguring database...Default properties detected. Using built-in database.Configuring ambari database...Checking PostgreSQL...Running initdb: This may take up to a minute.Initializing database: [ OK ]About to start PostgreSQLConfiguring local database...Connecting to local database...done.Configuring PostgreSQL...Restarting PostgreSQLExtracting system views.........ambari-admin-2.4.1.0.22.jar.......Adjusting ambari-server permissions and ownership...Ambari Server 'setup' completed successfully.
14. 启动ambari
[root@ip-10-21-23-29 ambari]# ambari-server startUsing python /usr/bin/pythonStarting ambari-serverAmbari Server running with administrator privileges.Organizing resource files at /var/lib/ambari-server/resources...Ambari database consistency check started...No errors were found.Ambari database consistency check finishedServer PID at: /var/run/ambari-server/ambari-server.pidServer out at: /data1/log/ambari-server/ambari-server.outServer log at: /data1/log/ambari-server/ambari-server.logWaiting for server start....................Ambari Server 'start' completed successfully.
15. 但是现在,网页是无法打开的,安装httpd服务
[root@ip-10-21-23-29 ambari]# service httpd statushttpd: unrecognized service
需要安装httpd
[root@ip-10-21-23-29 ambari]# yum install httpd[root@ip-10-21-23-29 ambari]# service httpd statushttpd is stopped[root@ip-10-21-23-29 ambari]# service httpd startStarting httpd: [ OK ]
16. 页面安装开始,网上很多人都写过如何安装的,我只是将比较重点的部分截图
这里需要选择前面已经准备好的HTTP连接,路径参考如下
HDP Base URL | http:// |
HDP-UTILS Base URL | http:// |
17. 填入主机名,一定将完整的主机名填入,包括后缀。不能用IP代替。这里就要注意/etc/hosts是否都正常解析
18. 安装ambari的agent,如果遇到失败,选择失败的条目,可以"retry"
19. 即使成功,下面如果有warning,也需要解决,跳过绝对不是明智的选择。 我就遇到点问题
通过下面命令,关闭THP,然后Rerun checks,确保都解决掉
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabledecho never > /sys/kernel/mm/redhat_transparent_hugepage/defragecho "transparent_hugepage=never" >> /etc/grub.conf
20. 问题全解决之后,开始安装
21. 也许你在想,这么快就完成了?那你错了。我被折磨了一周,才见到下面这个界面。而且,你是不是觉得,我的界面过于简单?是的,我只部署了zookeeper和HDFS。因为,错了太多次了。我只能尝试从最简单的开始安装。减少出问题的概率。
22. 成功之后,可以通过add service的方式,逐步增加你需要的资源
23. 增加service的过程
24. 看看吧,这个就是安装成功的界面。看到它,不容易啊。
下面就和大家抱怨一下Ambari的种种不便吧。
失败的,基本只能retry,甚至不能重新再安装。之前已经安装的服务,会影响到你下次的安装。
我由于无法忍受种种失败,打算换个名字重新安装,但是上次安装失败的软件还在,无法重新安装。只能先卸载之前已经安装的service。
那么问题来了,Ambari竟然不能卸载!不能卸载!不能卸载! 重启服务,重启主机,统统无法跳过。依然很执着的停在那个错误的页面。
终于在参考别人的blog之后,找到命令删除的方式
1. 查询资源
curl -u admin:admin -H "X-Requested-By: ambari" -X GET http://10.21.23.29:8080/api/v1/clusters/beta_eu/services/
2. 删除资源
curl -u admin:admin -H "X-Requested-By: ambari" -X DELETE http://10.21.23.29:8080/api/v1/clusters/beta_eu/services/KAFKA
3. 如果删除失败,先stop在删除
#curl -u admin:admin -H "X-Requested-By: ambari" -X DELETE http://10.21.23.29:8080/api/v1/clusters/beta_eu/services/APPCONFIGURATION{ "status" : 500, "message" : "org.apache.ambari.server.controller.spi.SystemException: An internal system exception occurred: Cannot remove beta_eu/APPCONFIGURATION. One or more host components are in a non-removable state."
4. 停止service
[root@ip-10-21-23-29 ~]# curl -u admin:admin -H "X-Requested-By: ambari" -X PUT -d '{"RequestInfo":{"context":"Stop Service"},"Body":{"ServiceInfo":{"state":"INSTALLED"}}}' 10.21.23.29:8080/api/v1/clusters/beta_eu/services/APPCONFIGURATION{ "href" : "http://10.21.23.29:8080/api/v1/clusters/beta_eu/requests/24", "Requests" : { "id" : 24, "status" : "Accepted" }
5. 删除service
[root@ip-10-21-23-29 ~]#curl -u admin:admin -H "X-Requested-By: ambari" -X DELETE http://10.21.23.29:8080/api/v1/clusters/beta_eu/services/APPCONFIGURATION
6. 再次检查,已经没有service了
[root@ip-10-21-23-29 ~]# curl -u admin:admin -H "X-Requested-By: ambari" -X GET http://10.21.23.29:8080/api/v1/clusters/beta_eu/services/curl: (6) Couldn't resolve host 'ambari"'{ "href" : "http://10.21.23.29:8080/api/v1/clusters/beta_eu/services/", "items" : [ ]
参考链接
http://blog.csdn.net/chengyuqiang/article/details/61195805