set ceph endpoint to dns在hadoop中不起作用

nszi6y05  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(485)

我正在尝试启用包含hadoop(2.7)、spark(2.3)和ceph(lighting)的大数据环境。更改前 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上启动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.accesstrue ,启动hadoop map reduce时错误消失。但是,对于 Spark-SQL 在hadoop上,错误仍然存在。我想spark可能会覆盖hadoop的设置,所以我还附加了 spark.hadoop.fs.s3a.path.style.access truespark-defaults.xml ,还是不行。
所以问题来了 endpoint 我设定的是 http://gw.gearon.com:8080 ,为什么这个错误告诉我 tpcds.gw.gearon.com 是未知的吗?这个 tpcds 是我的ceph bucket名字我把它设为 fs.defaultFS ,看起来很好 core-site.xml . 我怎样才能解决这个问题?
欢迎您提出任何意见,并提前感谢您的帮助。

nfs0ujit

nfs0ujit1#

您应该使用“amazon命名方法”,如这里和这里所述。
即,将通配符dns cname指向网关的名称:


* .gw.gearon.com CNAME 10.1.2.213

还要确保在网关中正确设置该名称(此处提供文档):

rgw dns name = clover.voxelgroup.net

相关问题