我正试图从ambari源代码中建立一个简单的2节点集群(包括1个带有ambari服务器的节点),在datanode上安装ambari代理时,它似乎接触到一个url, http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/repodata/repomd.xm
,似乎已经死了。我对此相当陌生,找不到什么地方a)找到正确的url和b)在脚本中更改它。
设置
根据docker中ambari开发的官方文档,我下载并构建了ambari(1.7最新版本)docker映像(我在os x上):
git clone https://github.com/apache/ambari.git
cd ambari
docker build -t ambari/build ./dev-support/docker/docker
建造花了相当长的时间(小时),但我很高兴看到它的工作。 Docker 岩石!
然后我根据上面构建的图像启动了一个docker容器 ambari-master
在交互模式下使用 -it
Docker 旗帜。此容器将用作ambari服务器。一进去,我就知道了 ssh private key
在ambari集群安装wizzard的过程中,当被要求时,我可以将它复制到某个地方。服务器的docker命令如下所示(对文档进行了细微的修改,并为可读性使用了虚线):
# From the cloned {ambari_root} directory:
docker run \
--privileged \
-h master.coderigo.com \
--name ambari-master \
-p 80:80 -p 5005:5005 -p 8080:8080 \
-v $(pwd):/tmp/ambari \
-it \
ambari/build bash
# From here on in, we are INSIDE the created container (ambari-master).
# Copy the ssh private key to give the install wizard.
[root@ambari-master tmp]: cat ~/.ssh/id_rsa > /tmp/ambari/coderigo-ambari-server-id_rsa
# Open up the /etc/hosts file to add an entry for the slave node (created in the next step
# but I'm pre-empting its IP address here, with the ambari-master having 172.17.0.25.
[root@ambari-master tmp]: echo "172.17.0.26 slave1.coderigo.com slave1" >> /etc/hosts
# Now fetch the ambari repo that is to be copied to all slaves by the Ambari install wizard
# and place it where Ambari install wizard expects it (/etc/yum.repos.d/)
[root@ambari-master tmp]: wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/1.x/GA/ambari.repo -O /etc/yum.repos.d/ambari.repo
# Finally, fire up the ambari server on this container
[root@ambari-master tmp]: /tmp/ambari-build-docker/bin/ambaribuild.py server
现在,既然我在OSX上,我就可以跑了 boot2docker ip
在一个新的终端上,它给了我一个 192.168.59.103
所以要加载ambari服务器的webui,我只需转到 http://192.168.59.103:8080
我得到了ambari的web用户界面。到目前为止还不错。
现在,我想创建一个新的docker容器作为这个小测试集群的一部分。我是从一个新的终端用下面的代码来完成的:
# Start the slave docker container in interactive mode (again, in multiple lines for readability):
docker run \
--privileged
-h slave1.coderigo.com \
--name ambari-slave1 \
--link ambari-master:master.coderigo.com \ # automatically link to the ambari-master node.
-it \
ambari/build bash
# From here on in, we are INSIDE the created container (ambari-slave1)
# Start ssh server (so that master can ssh into it)
[root@ambari-slave1 tmp]: /etc/init.d/sshd start
ambari安装向导
从现在开始,我可以在 http://192.168.59.103:8080
(如果您使用的是非os x,ip地址可能会有所不同)。
我转到群集安装向导并为前三个屏幕选择以下内容:
群集名称: clusterbomb
……下一步>
堆栈: HDP2.2
……下一步>
目标主机(FQDN):slave1.coderigo.com ssh私钥:上载的coderigo-ambari-server-id\u rsa在 ambari-master
容器(见后面的帖子)。。。。注册并确认>
现在在这个阶段,我得到一个屏幕,显示我的安装进度 slave1.coderigo.com
几秒钟后它告诉我它失败了。单击“为什么失败”日志,会显示slave1.coderigo.com的注册日志:
===============================正在创建目标目录==========================
命令开始时间2014-12-18 08:11:48
与slave1.coderigo.com的连接已关闭。ssh命令执行完成host=slave1.coderigo.com,exitcode=0命令结束时间2014-12-18 08:11:48
===============================正在复制公共函数脚本==========================
命令开始时间2014-12-18 08:11:48
scp/usr/lib/python2.6/site-packages/ambari\u commons host=slave1.coderigo.com,exitcode=0命令结束时间2014-12-18 08:11:48
============================正在复制操作系统类型检查脚本==========================
命令开始时间2014-12-18 08:11:48
scp/usr/lib/python2.6/site-packages/ambari\u server/os\u check\u type.py host=slave1.coderigo.com,exitcode=0命令结束时间2014-12-18 08:11:49
============================正在运行操作系统类型检查==========================
命令开始时间2014-12-18 08:11:49群集主/群集os系列为redhat6,本地/当前os系列为redhat6
与slave1.coderigo.com的连接已关闭。ssh命令执行完成host=slave1.coderigo.com,exitcode=0命令结束时间2014-12-18 08:11:49
============================正在检查远程主机上的“sudo”包==========================
命令开始时间2014-12-18 08:11:49 sudo-1.8.6p3-15.el6.x86\u 64
与slave1.coderigo.com的连接已关闭。ssh命令执行完成host=slave1.coderigo.com,exitcode=0命令结束时间2014-12-18 08:11:49
============================正在将repo文件复制到“tmp”文件夹==========================
命令开始时间2014-12-18 08:11:49
scp/etc/yum.repos.d/ambari.repo host=slave1.coderigo.com,exitcode=0命令结束时间2014-12-18 08:11:50
============================正在将文件移动到repo dir==========================
命令开始时间2014-12-18 08:11:50
与slave1.coderigo.com的连接已关闭。ssh命令执行完成host=slave1.coderigo.com,exitcode=0命令结束时间2014-12-18 08:11:50
===============================正在复制安装脚本文件==========================
命令开始时间2014-12-18 08:11:50
scp/usr/lib/python2.6/site-packages/ambari\u server/setupagent.py host=slave1.coderigo.com,exitcode=0命令结束时间2014-12-18 08:11:50
===============================正在运行安装代理脚本==========================
命令开始时间2014-12-18 08:11:50http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/repodata/repomd.xml:[errno 14]pycurl error 22-“请求的url返回错误:404 not found”正在尝试其他镜像。错误:无法检索存储库:updates-ambari-1.x的存储库元数据(repomd.xml)。请验证其路径并重试http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/repodata/repomd.xml:[errno 14]pycurl error 22-“请求的url返回错误:404 not found”正在尝试其他镜像。错误:无法检索存储库:updates-ambari-1.x的存储库元数据(repomd.xml)。请验证其路径并重试/bin/sh:/usr/sbin/ambari-agent:没有这样的文件或目录{'exitstatus':1,'log':('',none)}
与slave1.coderigo.com的连接已关闭。ssh命令执行完成host=slave1.coderigo.com,exitcode=1命令结束时间2014-12-18 08:11:52
错误:主机slave1.coderigo.com的引导失败,因为上一个操作已完成,退出代码为非零(1)错误消息:tcgetattr:与slave1.coderigo.com的设备连接的ioctl已关闭。
标准输出:http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/repodata/repomd.xml:[errno 14]pycurl error 22-“请求的url返回错误:404 not found”正在尝试其他镜像。错误:无法检索存储库:updates-ambari-1.x的存储库元数据(repomd.xml)。请验证其路径并重试http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/repodata/repomd.xml:[errno 14]pycurl error 22-“请求的url返回错误:404 not found”正在尝试其他镜像。错误:无法检索存储库:updates-ambari-1.x的存储库元数据(repomd.xml)。请验证其路径并重试/bin/sh:/usr/sbin/ambari-agent:没有这样的文件或目录{'exitstatus':1,'log':('',none)}
与slave1.coderigo.com的连接已关闭。
问题
因此,根据日志,我可以看到大部分都可以工作,但对于一个死url: http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/repodata/repomd.xml
重新启动404。我可以通过手动 curl url来确认这一点,它返回一个404,其中一些xml告诉您它不存在。我尝试过不同的回购方式。具体来说,这些:
http://s3.amazonaws.com/public-repo-1.hortonworks.com/AMBARI-1.x/repos/centos6/ambari.repo http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/1.2.3.7/ambari.repo
但是这些会在安装过程的早期导致失败,因为它们与ambari服务器版本(afaict)不匹配。
问题
我从没想过死URL会引起问题(对死URL进行重定向会很好)。我想得到一些关于如何克服这个障碍的建议或指点。我要试试手动设置的奴隶,但是 ssh
设置将是最佳的。我希望上述内容是可复制的,有人知道吗
a) 正确的网址是什么;和
b) 在哪里改变它使它工作?
暂无答案!
目前还没有任何答案,快来回答吧!