【问题标题】:H2O + HDFS (Cloudera)H2O + HDFS (Cloudera)
【发布时间】:2017-11-19 05:59:31
【问题描述】:

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

所以我用 h2odriver.jar 启动了一个实例

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

我得到了几个输出/回调地址:

[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,我知道我们有大量的防火墙/安全性——我相信我们是通过 LDAP 设置的

【问题讨论】:

    标签: hdfs h2o


    【解决方案1】:

    你说得对,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...
    

    然后将您的网络浏览器指向显示“在您的网络浏览器中打开 H2O Flow”的位置。

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

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

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


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

    【讨论】:

    • 切换到“hadoop jar”就可以了。我从未见过集群出现(“请求平面文件部分”)使用该开关,服务器已启动,我可以连接。由于地址被防火墙阻止(我怀疑),无法访问 Flow,但能够通过 python 连接并确认我可以通过 hdfs 导入。 --edit 一旦我确定了服务器的“名称”以进行流量,我就能够通过我的防火墙进行连接(地址不起作用——但又是防火墙,而不是 h2o)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    相关资源
    最近更新 更多