gpt4 book ai didi

hadoop - 如何通过在外部hadoop集群的Spark中由H/A名称节点组成的URI访问hdfs?

转载 作者:可可西里 更新时间:2023-11-01 14:16:39 25 4
gpt4 key购买 nike

现在我有一些将输出存储到 HDFS 的 Spark 应用程序。

由于我们的 hadoop 集群由 namenode H/A 组成,而 spark 集群在 hadoop 集群之外(我知道这是不好的)我需要为应用程序指定 HDFS URI,以便它可以访问 HDFS。

但是它不识别名字服务,所以我只能给一个namenode的URI,如果失败,修改配置文件再试。

访问 Zookeeper 以显示事件似乎很烦人,所以我想避免。

您能推荐任何替代方案吗?

最佳答案

假设您的名称服务是“hadooptest”,然后像下面这样设置 hadoop 配置。您可以从远程启用 HA 的 HDFS 的 hdfs-site.xml 文件中获取这些信息。

sc.hadoopConfiguration.set("dfs.nameservices", "hadooptest")
sc.hadoopConfiguration.set("dfs.client.failover.proxy.provider.hadooptest", "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider")
sc.hadoopConfiguration.set("dfs.ha.namenodes.hadooptest", "nn1,nn2")
sc.hadoopConfiguration.set("dfs.namenode.rpc-address.hadooptest.nn1", "10.10.14.81:8020")
sc.hadoopConfiguration.set("dfs.namenode.rpc-address.hadooptest.nn2", "10.10.14.82:8020")

在此之后,您可以使用带有“hadooptest”的 URL,如下所示。

test.write.orc("hdfs://hadooptest/tmp/test/r1")

检查 here获取更多信息。

关于hadoop - 如何通过在外部hadoop集群的Spark中由H/A名称节点组成的URI访问hdfs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30796957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com