【问题标题】:spark-submit doesn't read file from s3, just stucks on itspark-submit 不从 s3 读取文件,只是卡在上面
【发布时间】:2021-08-15 15:21:51
【问题描述】:

当我尝试使用 spark-submit 从 s3 读取数据时遇到问题。 当应用程序从 s3 存储桶中读取数据时,它只是在没有任何警告或控制台退出的情况下卡住了。但是,如果我使用 python 运行相同的应用程序 - 它可以工作!也许有人遇到过同样的问题?

test.py的代码:

import os
from pyspark.sql import SparkSession
os.environ["PYSPARK_SUBMIT_ARGS"] = """--packages com.amazonaws:aws-java-sdk:1.11.711,org.apache.hadoop:hadoop-aws:3.2.0
                                    --conf spark.serializer=org.apache.spark.serializer.KryoSerializer
                                    --conf spark.driver.memory=2g --conf spark.executor.memory=8g
                                    --conf spark.dynamicAllocation.enabled=false  pyspark-shell"""

spark = SparkSession.builder.appName(f"test").getOrCreate()
print("reading from s3") #stucks here
s3filepath = "s3a://path/to/file"
df = spark.read.csv(
            s3filepath,
            sep='|',
            header='false',
            nullValue='',
            inferSchema=True)
print("showing df")
df.show()

spark-submit 命令:

PYSPARK_PYTHON=python3 /usr/bin/spark-submit --deploy-mode client \
--packages com.amazonaws:aws-java-sdk:1.11.519,org.apache.hadoop:hadoop-aws:3.2.0 \
--conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
--conf spark.driver.memory=2g \
--conf spark.executor.memory=8g \
--conf spark.dynamicAllocation.enabled=false \
test.py

但是当我只使用python3 test.py 时,它可以正常工作并且可以毫无延迟地正确读取所有内容。

火花版本:2.4.4

Hadoop 版本:3.2.1

该文件包含约 5K 行。

【问题讨论】:

  • 问题是由 spark 资源分配管理器引起的。通过减少请求的资源来解决它。为什么它使用 python3 test.py 仍然是一个谜。

标签: python amazon-web-services apache-spark hadoop amazon-s3


【解决方案1】:

问题是由 spark 资源分配管理器引起的。通过减少请求的资源来解决它。为什么它使用 python3 test.py 仍然是一个谜

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 2015-12-04
    • 2016-11-07
    • 2017-04-25
    • 1970-01-01
    相关资源
    最近更新 更多