apache-spark - 将 Ceph 端点设置为 DNS 在 Hadoop 中不起作用
问题描述
我正在尝试启用包含 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 时错误消失。但是,对于Spark-SQL
Hadoop Yarn,错误仍然存在。我想也许 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 存储桶名称,我将其设置为 my fs.defaultFS
,在core-site.xml
. 我该如何解决这个问题?
欢迎任何评论,并提前感谢您的帮助。
解决方案
推荐阅读
- swift - 如何实现允许子类的实例更改为同一类的另一个子类的实例的类结构
- node.js - getting redirected even with correct usr/pwd (express/passport-local)
- c++ - How to draw a flat plane in openGL by drawing triangles?
- swift - Make a NavigationView full screen on macOS
- reactjs - What is the best way to reuse form components in React?
- shell - 使用 shell 脚本拆分具有多个分隔符的字符串
- python - 有条件地合并文本文件中的行
- python - 无法测试 rest_framework.utils.serializer_helpers.ReturnList 的相等性
- python - 将dataFrame的多列转换为字典并存储在新列中
- reactjs - React.js:如何使用 react-admin 的 ImageField 显示 base64 图像