在上篇文章中,已经介绍并安装了Ambari服务器,给个链接:https://blog.csdn.net/weixin_36939535/article/details/85275596
这里就用它来部署HDP集群,体验一下 Ambari 的方便之处。
1. 启动Ambari集群安装向导
在Ambari Welcome页面中,选择Launch Install Wizard。
2. 给集群起个名字
在Name your cluster中输入你想要的集群名称,然后点击Next进入下一步;
3. 选择版本
选择你要的版本,因为源文件较大,建议使用本地源,关于本地源的配置,请参考我的另一篇文章:https://blog.csdn.net/weixin_36939535/article/details/85329684
选择HDP版本
选择本地源,移除其它无关的版本,把地址配置正确后,下一步。
4. 安装设置
这里需要指定当时在 Ambari Server 机器生成的私钥(ssh-keygen 生成的,公钥已经拷贝到 Ambari Agent 的机器),可以上传也可以粘贴上去。
具体位置:
输入主机名列表,每行一个。或者如图用范围指定。把ssh私钥配置好。
另外不要选择“Perform manual registration on hosts and do not use SSH“。因为我们需要 Ambari Server 自动去安装 Ambari Agent。
确认一下主机,ssh的私钥,以及用户和端口。
所有都书写完毕后,点击Register and Confirm进入下一步。
弹窗确认主机是否正确,点OK。
这里有个警告,说是主机名不是有效的FQDN,即不是一个完整的域名,这里不理它,点OK。
5. 确认主机
Ambari Server 会自动安装 Ambari Agent 到刚才指定的机器列表。安装完成后,Agent 会向 Ambari Server 注册。成功注册后,就可以继续 Next 到下一步。
这里第一次安装注册时出现错误:
查看日志: EOF occurred in violation of protocol
提示检查openssl
==========================
Running setup agent script...
==========================
Command start time 2018-12-29 19:22:57
("INFO 2018-12-29 19:22:58,959 HeartbeatHandlers.py:116 - Stop event received
INFO 2018-12-29 19:22:58,959 NetUtil.py:130 - Stop event received
INFO 2018-12-29 19:22:58,960 ExitHelper.py:56 - Performing cleanup before exiting...
INFO 2018-12-29 19:22:58,960 ExitHelper.py:70 - Cleanup finished, exiting with code:0
INFO 2018-12-29 19:23:01,511 main.py:285 - Agent died gracefully, exiting.
INFO 2018-12-29 19:23:01,512 ExitHelper.py:56 - Performing cleanup before exiting...
INFO 2018-12-29 19:23:02,047 main.py:147 - loglevel=logging.INFO
INFO 2018-12-29 19:23:02,048 main.py:147 - loglevel=logging.INFO
INFO 2018-12-29 19:23:02,048 main.py:147 - loglevel=logging.INFO
INFO 2018-12-29 19:23:02,049 DataCleaner.py:39 - Data cleanup thread started
INFO 2018-12-29 19:23:02,051 hostname.py:67 - agent:hostname_script configuration not defined thus read hostname 'zgss-1' using socket.getfqdn().
INFO 2018-12-29 19:23:02,052 DataCleaner.py:120 - Data cleanup started
INFO 2018-12-29 19:23:02,053 DataCleaner.py:122 - Data cleanup finished
INFO 2018-12-29 19:23:02,091 PingPortListener.py:50 - Ping port listener started on port: 8670
INFO 2018-12-29 19:23:02,096 main.py:439 - Connecting to Ambari server at https://zgss-1:8440 (192.168.201.61)
INFO 2018-12-29 19:23:02,097 NetUtil.py:70 - Connecting to https://zgss-1:8440/ca
ERROR 2018-12-29 19:23:02,099 NetUtil.py:96 - [Errno 8] _ssl.c:492: EOF occurred in violation of protocol
ERROR 2018-12-29 19:23:02,099 NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions.
Refer to: https://bugzilla.redhat.com/show_bug.cgi?id=1022468 for more details.
WARNING 2018-12-29 19:23:02,100 NetUtil.py:124 - Server at https://zgss-1:8440 is not reachable, sleeping for 10 seconds...
", None)
("INFO 2018-12-29 19:22:58,959 HeartbeatHandlers.py:116 - Stop event received
INFO 2018-12-29 19:22:58,959 NetUtil.py:130 - Stop event received
INFO 2018-12-29 19:22:58,960 ExitHelper.py:56 - Performing cleanup before exiting...
INFO 2018-12-29 19:22:58,960 ExitHelper.py:70 - Cleanup finished, exiting with code:0
INFO 2018-12-29 19:23:01,511 main.py:285 - Agent died gracefully, exiting.
INFO 2018-12-29 19:23:01,512 ExitHelper.py:56 - Performing cleanup before exiting...
INFO 2018-12-29 19:23:02,047 main.py:147 - loglevel=logging.INFO
INFO 2018-12-29 19:23:02,048 main.py:147 - loglevel=logging.INFO
INFO 2018-12-29 19:23:02,048 main.py:147 - loglevel=logging.INFO
INFO 2018-12-29 19:23:02,049 DataCleaner.py:39 - Data cleanup thread started
INFO 2018-12-29 19:23:02,051 hostname.py:67 - agent:hostname_script configuration not defined thus read hostname 'zgss-1' using socket.getfqdn().
INFO 2018-12-29 19:23:02,052 DataCleaner.py:120 - Data cleanup started
INFO 2018-12-29 19:23:02,053 DataCleaner.py:122 - Data cleanup finished
INFO 2018-12-29 19:23:02,091 PingPortListener.py:50 - Ping port listener started on port: 8670
INFO 2018-12-29 19:23:02,096 main.py:439 - Connecting to Ambari server at https://zgss-1:8440 (192.168.201.61)
INFO 2018-12-29 19:23:02,097 NetUtil.py:70 - Connecting to https://zgss-1:8440/ca
ERROR 2018-12-29 19:23:02,099 NetUtil.py:96 - [Errno 8] _ssl.c:492: EOF occurred in violation of protocol
ERROR 2018-12-29 19:23:02,099 NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions.
Refer to: https://bugzilla.redhat.com/show_bug.cgi?id=1022468 for more details.
WARNING 2018-12-29 19:23:02,100 NetUtil.py:124 - Server at https://zgss-1:8440 is not reachable, sleeping for 10 seconds...
", None)
Connection to zgss-1 closed.
SSH command execution finished
host=zgss-1, exitcode=0
Command end time 2018-12-29 19:23:04
Registering with the server...
Registration with the server failed.
这个问题找了好久,尝试了一些网络上的方法:
比如:
修改/etc/ambari-agent/conf/ambari-agent.ini添加
force_https_protocol=PROTOCOL_TLSv1_2
尝试无效。
比如:
修改/etc/python/cert-verification.cfg添加
verify=disable
尝试无效。
比如:
更新升级OpenSSL库,这个不适用我这里,如果你用命令:rpm -qa | grep openssl查出来你的openssl版本是openssl-1.0.1e-15.x86_64 (1.0.1 build 15)的话,你可以尝试一下这个方法,在官网上有介绍。
甚至还有说要卸载重装的。
最后还是自己分析,经过一系列的探索,发现可能是自己的python低版本导致的,当前版本是系统自带python2.6.6的,于是着手开始升级python,升级过程就不说了,网上很多,给个我参考的升级python的教程地址:https://www.cnblogs.com/94YY/p/6224441.html
升级后版本python2.7.13
========================
python升级完成后,回到页面点重试,终于成功了。如下图:
另外,这里注册成功后,会进行一些检查,如果你前面有些准备工作没做的话,这里都会暴露出来的。最好都进行处理后,在到下一步。我这里没有什么异常。
6. 选择服务
根据需要选择要在群集上安装的服务。选好后,下一步。
7. 各个服务Master配置
配置Master主机节点,不会配置的就默认,下一步。
- 配置服务的Slaves和Clients
根据需求设置
9. 定制服务
这里向导会尝试为每个选项设置合理的默认值,比如配置目录、密码等都需要设置确认一下。
这里必须为Hive和Oozie服务提供数据库密码,Knox的主密钥,Grafana数据库密码。
Hive那里,Hive我们都知道是需要配置元数据库的,所以我们这里还要设置:
使用我们之前的MySql数据库,创建hive数据库,指定ambari-server 的MySql的连接,如下:
#登陆数据库
mysql -uroot -p
mysql> create database hive;
##退出数据库后,执行
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
返回页面,选择Existing MySQL / MariaDB Database表示使用已经存在的Mysql或者MariaDB。之后输入hive数据库名,这里我们需要创建hive数据库,写用户名密码。
之后点Test Connection,连接成功。
然后其它都确认后,下一步。
10. 显示配置信息
没问题就下一步。
下一步直接开始安装,这里可能会有各种问题,每个人都不一样,这里就不讲了,仔细看日志,总会有些蛛丝马迹,做相对应的处理,一定会安装成功的。
本人会另写一篇博客记录一下我这里安装遇到的问题。