H2O + HDFS (Cloudera)

H2O + HDFS (Cloudera)

我们有一个 Cloudera 集群和 运行 一个 h2o 实例,尽管它似乎 运行 关闭 h2o.jar(据我了解——如果不正确,请纠正我)是独立的 h2o。我可以连接,但它不会从我们的 HDFS 加载任何文件。 (所有这些我都可以通过边缘节点上的 'ps' 看到。

所以我用 h2odriver.jar

启动了一个实例

java -jar /path/to/h2odriver.jar -nodes 2 -mapperXmx 5g -output /my/hdfs/dir

我得到几个 output/callback 地址:

[Possible callback IP address: 10.96.243.46:33728] [Possible callback IP address: 127.0.0.1] Using mapper->driver callback IP address and port: 10.96.243.46:33728

所以我启动 python 并尝试连接(如果我使用 10.96.243.46 也会发生同样的事情):

>>>h2o.connection(ip='127.0.0.1', port='33728')

并获得

'Connecting to H2O server at http://127.0.0.1:33728..... failed.
H2OConnectionError: COuld not estalich link to the H2O cloud http://127.0.0.1:33728 after 5 retries
...
Failed to establish a new connection:[Errno 111] Connection refused',))`

我的屏幕上有 H2O jar/java 作业,我可以看到:

`MapperToDriverMessage: Read invalid type (G) from socket, ignoring...
MapperToDriverMessage: read: Unknown Type `

我不知道如何在集群模式下启动 h2o 并让它访问我们的 hdfs 系统甚至连接。我可以连接到 h2o.jar 版本,但是看不到 hdfs(它可以看到 edgenode 的文件系统)。启动 H2O 以便它可以看到附加的 HDFS 系统的正确方法是什么(我们在企业环境中是 运行 Cloudera 5.7,Python 是 3.6,H2O 是 3.10.0.6,我知道我们有一大堆 firewalls/security-- 我相信我们是通过 LDAP

设置的

你说得对,h2o.jar 是 H2O 的独立版本,不能连接到 HDFS。

为您的特定 hadoop 发行版使用适当的 h2odriver.jar 是可行的方法。

可以在此处找到正确的初学者说明:


它向 运行 发出以下命令:

hadoop jar h2odriver.jar -nodes 1 -mapperXmx 6g -output hdfsOutputDirName

[ 注意这是 "hadoop jar",而不是问题中写的 "java -jar"。 ]

您应该看到这样的输出:

Determining driver host interface for mapper->driver callback...
[Possible callback IP address: 172.16.2.181]
[Possible callback IP address: 127.0.0.1]
...
Waiting for H2O cluster to come up...
H2O node 172.16.2.188:54321 requested flatfile
Sending flatfiles to nodes...
[Sending flatfile to node 172.16.2.188:54321]
H2O node 172.16.2.188:54321 reports H2O cluster size 1
H2O cluster (1 nodes) is up
(Note: Use the -disown option to exit the driver after cluster formation)

Open H2O Flow in your web browser: http://172.16.2.188:54321

(Press Ctrl-C to kill the cluster)
Blocking until the H2O cluster shuts down...

然后将您的 Web 浏览器指向显示 "Open H2O Flow in your web browser" 的地方。

(输出中的其他地址是诊断信息,不适用于最终用户。)

在这种情况下,python 连接命令将是:

h2o.connect(ip = '172.16.2.188', port = 54321)


我建议在 Web 浏览器中转到 Flow,通过输入 "hdfs://" 开始导入文件,然后查看自动完成是否有效。如果是,则您的 HDFS 连接正常。