0

我试图通过简单地运行pyspark --master yarn以下代码来对火花集群进行简单的操作:

op = spark.read.format("csv")
op = op.options(header=True, sep=";")
# This is actually a custom S3 endpoint on a AWS Snowball Edge device
op = op.load("s3a://some-bucket/some/path/file_*.txt")

没有错误显示,但操作没有完成。此外,如果我在 S3 中传递一个不存在的路径,它会抛出一个错误,指出该路径不存在。如果我尝试从 HDFS 读取它会工作。因此,这似乎是与 S3 在读取数据时的通信问题。

以下是我的堆栈的详细信息:

spark: https://dlcdn.apache.org/spark/spark-3.2.1/spark-3.2.1-bin-hadoop3.2.tgz
awscli: https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip
hadoop: https://dlcdn.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
hive: https://dlcdn.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
hadoop_aws: https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-aws/3.3.1/hadoop-aws-3.3.1.jar
aws_java_sdk_bundle: https://repo1.maven.org/maven2/com/amazonaws/aws-java-sdk-bundle/1.11.874/aws-java-sdk-bundle-1.11.874.jar

我的 core-site.xml

<configuration>

  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://34.223.14.233:9000</value>
  </property>

  <property>
    <name>fs.s3a.endpoint</name>
    <value>http://172.16.100.1:8080</value>
  </property>

  <property>
    <name>fs.s3a.access.key</name>
    <value>foo</value>
  </property>

  <property>
    <name>fs.s3a.secret.key</name>
    <value>bar</value>
  </property>

  <property>
    <name>fs.s3a.connection.ssl.enabled</name>
    <value>false</value>
  </property>

  <property>
    <name>fs.s3a.impl</name>
    <value>org.apache.hadoop.fs.s3a.S3AFileSystem</value>
  </property>

  <property>
    <name>fs.s3a.connection.maximum</name>
    <value>100</value>
  </property>

</configuration>

有关解决此问题的任何想法?太感谢了!

4

0 回答 0