无法访问 EC2 Spark 集群上的 Ganglia
Can't access Ganglia on EC2 Spark cluster
使用 spark-ec2 脚本启动会导致:
Setting up ganglia RSYNC'ing /etc/ganglia to slaves... <...>
Shutting down GANGLIA gmond: [FAILED]
Starting GANGLIA gmond: [ OK ]
Shutting down GANGLIA gmond: [FAILED]
Starting GANGLIA gmond: [ OK ]
Connection to <...> closed. <...> Stopping httpd:
[FAILED] Starting httpd: httpd: Syntax error on line 199 of
/etc/httpd/conf/httpd.conf: Cannot load modules/libphp-5.5.so into
server: /etc/httpd/modules/libphp-5.5.so: cannot open shared object
file: No such file or directory
[FAILED] [timing]
ganglia setup: 00h 00m 03s Connection to <...> closed.
Spark standalone cluster started at <...>:8080 Ganglia started at
<...>:5080/ganglia
Done!
但是,当我netstat
时,没有监听到5080端口。
这与上面的 httpd 错误有关还是其他原因?
编辑:
所以问题找到了(见下面的答案),可以在实例本地应用修复,之后 Ganglia 工作正常。但是问题是如何在root上解决这个问题,让spark-ec2脚本可以在没有干预的情况下正常启动Ganglia。
ganglia 不可用的事实与这些错误有关 - ganglia 是 php 应用程序,如果没有用于 apache 的 php 模块,它不会 运行。
您使用哪个版本的 spark 启动集群?
这是一个奇怪的错误 - 这些文件应该存在于 AMI 映像中。
刚刚追踪到错误:/etc/httpd/conf/httpd.conf 正在尝试加载 libphp-5.5 库,而 modules/ 包含 libphp-5.6 版本...
更改 httpd.conf 解决了这个问题,但是我很高兴知道 spark-ec2 脚本中的永久修复
这是因为 httpd 启动失败。正如您所注意到的,httpd.conf
正在尝试加载模块但失败了。您可以通过 apachectl start
重现该问题并检查究竟是哪些模块加载失败。
在我的案例中,有一个涉及 "auth" 和 "core"。列出的最后四个(也许五个)也将无法加载。我没有遇到与 PHP 相关的任何事情,所以也许我们的情况有所不同。无论如何,hacky 解决方案是注释掉问题。我这样做了,运行 Ganglia 没有问题。
使用 spark-ec2 脚本启动会导致:
Setting up ganglia RSYNC'ing /etc/ganglia to slaves... <...>
Shutting down GANGLIA gmond: [FAILED]
Starting GANGLIA gmond: [ OK ]
Shutting down GANGLIA gmond: [FAILED]
Starting GANGLIA gmond: [ OK ]
Connection to <...> closed. <...> Stopping httpd:
[FAILED] Starting httpd: httpd: Syntax error on line 199 of /etc/httpd/conf/httpd.conf: Cannot load modules/libphp-5.5.so into server: /etc/httpd/modules/libphp-5.5.so: cannot open shared object file: No such file or directory [FAILED] [timing]ganglia setup: 00h 00m 03s Connection to <...> closed.
Spark standalone cluster started at <...>:8080 Ganglia started at <...>:5080/ganglia
Done!
但是,当我netstat
时,没有监听到5080端口。
这与上面的 httpd 错误有关还是其他原因?
编辑:
所以问题找到了(见下面的答案),可以在实例本地应用修复,之后 Ganglia 工作正常。但是问题是如何在root上解决这个问题,让spark-ec2脚本可以在没有干预的情况下正常启动Ganglia。
ganglia 不可用的事实与这些错误有关 - ganglia 是 php 应用程序,如果没有用于 apache 的 php 模块,它不会 运行。
您使用哪个版本的 spark 启动集群?
这是一个奇怪的错误 - 这些文件应该存在于 AMI 映像中。
刚刚追踪到错误:/etc/httpd/conf/httpd.conf 正在尝试加载 libphp-5.5 库,而 modules/ 包含 libphp-5.6 版本...
更改 httpd.conf 解决了这个问题,但是我很高兴知道 spark-ec2 脚本中的永久修复
这是因为 httpd 启动失败。正如您所注意到的,httpd.conf
正在尝试加载模块但失败了。您可以通过 apachectl start
重现该问题并检查究竟是哪些模块加载失败。
在我的案例中,有一个涉及 "auth" 和 "core"。列出的最后四个(也许五个)也将无法加载。我没有遇到与 PHP 相关的任何事情,所以也许我们的情况有所不同。无论如何,hacky 解决方案是注释掉问题。我这样做了,运行 Ganglia 没有问题。