Jun*_*Lim 6 hadoop hdfs apache-spark
现在我有一些Spark应用程序将输出存储到HDFS.
由于我们的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")
Run Code Online (Sandbox Code Playgroud)
在此之后,您可以使用带有'hadooptest'的URL,如下所示.
test.write.orc("hdfs://hadooptest/tmp/test/r1")
Run Code Online (Sandbox Code Playgroud)
检查这里获取更多信息.
| 归档时间: |
|
| 查看次数: |
6199 次 |
| 最近记录: |