apache-spark - 将 Ceph 端点设置为 DNS 在 Hadoop 中不起作用

标签 apache-spark hadoop bigdata ceph

我正在尝试启用包含 Hadoop (2.7)、Spark(2.3) 和 Ceph(luminous) 的大数据环境。 在将 fs.s3a.endpoint 更改为域名之前,一切正常,正如预期的那样。

core-site.xml的关键部分如下:

<property>
    <name>fs.defaultFS</name>
    <value>s3a://tpcds</value>
</property>
<property>
        <name>fs.s3a.endpoint</name>
        <value>http://10.1.2.213:8080</value>
</property>

但是,当我将 fs.s3a.endpoint 更改为域名时,如下所示:

<property>
        <name>fs.s3a.endpoint</name>
        <value>http://gw.gearon.com:8080</value>
</property>

然后我尝试在 Hadoop Yarn 上启动 SparkSQL,抛出如下错误:

AmazonHttpClient:448 - Unable to execute HTTP request: tpcds.gw.gearon.com: Name or service not known
java.net.UnknownHostException: tpcds.gw.gearon.com: Name or service not known
        at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
        at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)
        at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)
        at java.net.InetAddress.getAllByName0(InetAddress.java:1277)

肯定会将 gw.gearon.com 转发到 10.1.2.213。谷歌搜索后,我意识到应该设置一个属性。

<property>
  <name>fs.s3a.path.style.access</name>
  <value>true</value>
  <description>Enable S3 path style access ie disabling the default virtual hosting behaviour.
    Useful for S3A-compliant storage providers as it removes the need to set up DNS for virtual hosting.
  </description>
</property>

fs.s3a.path.style.access 设置为 true 后,启动 Hadoop Map-Reduce 时错误消失。但是,对于Hadoop Yarn上的Spark-SQL,错误依然存在。我想也许 Spark 覆盖了 Hadoop 的设置,所以我也将 spark.hadoop.fs.s3a.path.style.access true 附加到 spark-defaults.xml,它仍然没有工作。

那么问题来了: 我设置的endpointhttp://gw.gearon.com:8080,为什么错误显示我是tpcds.gw.gearon.com未知? tpcds 是我的 Ceph 存储桶名称,我将其设置为我的 fs.defaultFS,它在 core-site.xml 中看起来不错。我该如何解决这个问题?

欢迎任何评论,并提前感谢您的帮助。

最佳答案

您应该使用“亚马逊命名方法”,如所述herehere .

也就是说,将通配符 dns CNAME 指向网关的名称:

*.gw.gearon.com CNAME 10.1.2.213

还要确保将该名称正确设置到网关中(文档 here):

rgw dns name = clover.voxelgroup.net

关于apache-spark - 将 Ceph 端点设置为 DNS 在 Hadoop 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57585191/

相关文章:

sql - 从Apache HIVE或SQL中的两个表获取计数

hadoop - 如何使用hadoop-2.2在oozie中执行mapreduce程序

java - 在 Spark 中配置函数/lambda 序列化

hadoop - 在Hadoop框架中拆分大文件有什么好处

apache-spark - 将 Spark rdd 的 pickle 表示形式写入文件时发生错误

java - 使用 Hadoop 在数据节点上写入临时文件时遇到问题

hadoop - 对我来说,让 Hadoop 在私有(private) OpenStack 云上运行的最有效方法是什么

3d - 有什么好的工具可以为大数据制作 3D 数据可视化?

scala - Spark 和 Azure-Cosmosdb 的跨版本冲突

python - 将 csv 文件与 pySpark 进行比较