0

我正在尝试通过 Ambari 1.7 在 Centos 6.5 节点上安装 HDP 2.2。

我必须承认安装说明有点混乱,但我相信我已经完成了 Ambari 安装向导工作所需的所有步骤。Ambari 服务器设置很顺利,我为 Ambari 创建了一个 MySQL 数据库并运行了创建模式的创建 SQL 脚本等。

现在,当我尝试通过向导注册主机时,我得到一个异常,说我的主机在数据库中不存在。嗯,这是真的,我的主机表是空的。我的最终问题是如何通过此错误并继续安装。但我相信它可能就像需要运行一些插入到 ambari db hosts 表中的脚本一样简单。有谁知道该表何时被写入?

我已经使用完全限定的主机名和安装指南中提到的各种其他配置更改更新了我的主机文件。

我对所有这些东西完全陌生,并试图创建一个单节点 PoC - 任何帮助将不胜感激。

这是日志条目:

17:31:35,174 INFO [Thread-21] JobStoreTX:861 - 将 0 个触发器从“获取”/“阻塞”状态释放。17:31:35,184 INFO [Thread-21] JobStoreTX:871 - 恢复上次关闭时正在进行的 0 个作业。17:31:35,184 信息 [Thread-21] JobStoreTX:884 - 恢复完成。17:31:35,185 INFO [Thread-21] JobStoreTX:891 - 删除了 0 个“完成”触发器。17:31:35,185 信息 [Thread-21] JobStoreTX:896 - 删除了 0 个过时的已触发作业条目。17:31:35,187 信息 [Thread-21] QuartzScheduler:575 - 调度程序 ExecutionScheduler_$_NON_CLUSTERED 已启动。 17:32:08,520 错误 [qtp864571289-20] ActionDBAccessorImpl:241 - 数据库中不存在主机 17:32:08,588 错误 [qtp864571289-20] AbstractResourceProvider:280 - 创建资源 org.apache.ambari.server 时捕获 AmbariException .AmbariException:org.apache.ambari.server.actionmanager.ActionDBAccessorImpl.persistActions(ActionDBAccessorImpl.java:242)的数据库中不存在主机 在 org.apache.ambari.server.orm.AmbariJpaLocalTxnInterceptor.invoke(AmbariJpaLocalTxnInterceptor.java:68) 在 org.apache.ambari.server.actionmanager.ActionManager.sendActions(ActionManager.java:96) 在 org.apache.ambari.server .actionmanager.ActionManager.sendActions(ActionManager.java:85) 在 org.apache.ambari.server.controller.AmbariManagementControllerImpl.createAction(AmbariManagementControllerImpl.java:3071) 在 org.apache.ambari.server.controller.internal.RequestResourceProvider$1。在 org.apache.ambari.server.controller.internal.AbstractResourceProvider.createResources(AbstractResourceProvider) 在 org.apache.ambari.server.controller.internal.RequestResourceProvider$1.invoke(RequestResourceProvider.java:118) 调用(RequestResourceProvider.java:121) .java:273) 在 org.apache.ambari.server.controller.internal.RequestResourceProvider.createResources(RequestResourceProvider.java:118) 在 org.apache.ambari.server.controller.internal.ClusterControllerImpl.createResources(ClusterControllerImpl.java:274) 在 org.apache.ambari。 server.api.services.persistence.PersistenceManagerImpl.create(PersistenceManagerImpl.java:75) 在 org.apache.ambari.server.api.handlers.CreateHandler.persist(CreateHandler.java:36) 在 org.apache.ambari.server。 org.apache.ambari.server.api.services.BaseRequest.process(BaseRequest.java:135) 上 org.apache.ambari.server.api.services 上的 api.handlers.BaseManagementHandler.handleRequest(BaseManagementHandler.java:72)。 BaseService.handleRequest(BaseService.java:103) 在 org.apache.ambari.server.api.services.BaseService。org.apache.ambari.server.api.services.RequestService.createRequests(RequestService.java:137) 的 handleRequest(BaseService.java:72)

4

3 回答 3

1

我们有同样的问题,我们通过安装 openssl(yum install openssl在 CentOS/Redhat/Fedora 上)解决了这个问题。

于 2015-01-21T02:29:39.193 回答
1

ambari-dev 上有一张现有的票可以帮助您感谢 Greg Hill!)进行注册。

本质上,python 2.7.9 有一个不兼容的 ssl 模块,httpslib 使用它来连接到 ambari-server——代理和服务器之间的验证不起作用。解决方法是通过将此行附加到 /var/lib/ambari-agent/ambari-env.sh 来强制 ambari-agent 使用使用 python 2.6.x

 PYTHON=/usr/bin/python2.6

希望这可以帮助。

于 2015-02-06T05:47:00.127 回答
0

也许已经晚了,但我遇到了同样的错误,我解决了在 ambari-server 主机中打开端口 8440 和 8441 的问题。

ambari-server 创建代理时通常的工作流程如下:

  • ssh all ambari-agents 提供的 Ambari-server 主机
  • 每个 ambari-agent 都需要回调到https://ambari-server:8440并在服务器中注册自己。
  • 所有代理都已注册,现在您可以通过 ambari 在其中安装“东西”。

问题是不同节点中的代理无法执行回调,因为它们无法访问该端口中的 ambari-server url。

希望能帮助到你!

于 2015-05-19T16:29:01.013 回答