我正在尝试启用包含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.access
至 true
,启动hadoop map reduce时错误消失。但是,对于 Spark-SQL
在hadoop上,错误仍然存在。我想spark可能会覆盖hadoop的设置,所以我还附加了 spark.hadoop.fs.s3a.path.style.access true
至 spark-defaults.xml
,还是不行。
所以问题来了 endpoint
我设定的是 http://gw.gearon.com:8080
,为什么这个错误告诉我 tpcds.gw.gearon.com
是未知的吗?这个 tpcds
是我的ceph bucket名字我把它设为 fs.defaultFS
,看起来很好 core-site.xml
. 我怎样才能解决这个问题?
欢迎您提出任何意见,并提前感谢您的帮助。
1条答案
按热度按时间nfs0ujit1#
您应该使用“amazon命名方法”,如这里和这里所述。
即,将通配符dns cname指向网关的名称:
还要确保在网关中正确设置该名称(此处提供文档):