连接到 S3 的 Spark 流式传输会导致套接字超时
Spark streaming connecting to S3 gives socket timeout
我正在尝试 运行 我本地的 Spark 流式应用程序连接到 S3 存储桶并 运行 连接到 SocketTimeoutException
。这是从存储桶中读取的代码:
val sc: SparkContext = createSparkContext(scName)
val hadoopConf=sc.hadoopConfiguration
hadoopConf.set("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
val ssc = new StreamingContext(sc, Seconds(time))
val lines = ssc.textFileStream("s3a://foldername/subfolder/")
lines.print()
这是我得到的错误:
com.amazonaws.http.AmazonHttpClient executeHelper - Unable to execute HTTP request: connect timed out
java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
我认为这可能是由于代理问题,所以我 运行 我的 spark-submit 使用代理选项,如下所示:
spark-submit --conf "spark.driver.extraJavaOptions=
-Dhttps.proxyHost=proxyserver.com -Dhttps.proxyPort=9000"
--class application.jar s3module 5 5 SampleApp
那仍然给了我同样的错误。也许我没有正确设置代理?有没有办法在 SparkContext 的 conf 中的代码中设置它?
有代理设置的特定选项,covered in the docs
<property>
<name>fs.s3a.proxy.host</name>
<description>Hostname of the (optional) proxy server for S3 connections.</description>
</property>
<property>
<name>fs.s3a.proxy.port</name>
<description>Proxy server port. If this property is not set
but fs.s3a.proxy.host is, port 80 or 443 is assumed (consistent with
the value of fs.s3a.connection.ssl.enabled).</description>
</property>
可以在带有 spark.hadoop 前缀的 spark 默认值中设置
spark.hadoop.fs.s3a.proxy.host=myproxy
spark.hadoop.fs.s3a.proxy.port-8080
我正在尝试 运行 我本地的 Spark 流式应用程序连接到 S3 存储桶并 运行 连接到 SocketTimeoutException
。这是从存储桶中读取的代码:
val sc: SparkContext = createSparkContext(scName)
val hadoopConf=sc.hadoopConfiguration
hadoopConf.set("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
val ssc = new StreamingContext(sc, Seconds(time))
val lines = ssc.textFileStream("s3a://foldername/subfolder/")
lines.print()
这是我得到的错误:
com.amazonaws.http.AmazonHttpClient executeHelper - Unable to execute HTTP request: connect timed out
java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
我认为这可能是由于代理问题,所以我 运行 我的 spark-submit 使用代理选项,如下所示:
spark-submit --conf "spark.driver.extraJavaOptions=
-Dhttps.proxyHost=proxyserver.com -Dhttps.proxyPort=9000"
--class application.jar s3module 5 5 SampleApp
那仍然给了我同样的错误。也许我没有正确设置代理?有没有办法在 SparkContext 的 conf 中的代码中设置它?
有代理设置的特定选项,covered in the docs
<property>
<name>fs.s3a.proxy.host</name>
<description>Hostname of the (optional) proxy server for S3 connections.</description>
</property>
<property>
<name>fs.s3a.proxy.port</name>
<description>Proxy server port. If this property is not set
but fs.s3a.proxy.host is, port 80 or 443 is assumed (consistent with
the value of fs.s3a.connection.ssl.enabled).</description>
</property>
可以在带有 spark.hadoop 前缀的 spark 默认值中设置
spark.hadoop.fs.s3a.proxy.host=myproxy
spark.hadoop.fs.s3a.proxy.port-8080