如何解决Spark 作业仅停留在一项任务上
我已经使用 YARN 设置了 Spark 3.x 和 Hadoop 3.x。我必须使用分布式数据管道(即通过 Spark)简单地索引一些数据。以下是我用于 spark 应用程序 (pyspark) 的代码片段
def index_module(row ):
pass
def start_job(DATABASE_PATH):
global SOLR_URI
warehouse_location = abspath('spark-warehouse')
spark = SparkSession \
.builder \
.appName("Python Spark sql Hive integration example") \
.config("spark.sql.warehouse.dir",warehouse_location) \
.enableHiveSupport() \
.getorCreate()
solr_client = pysolr.solr(SOLR_URI)
df = spark.read.format("csv").option("quote","\"").option("escape","\\").option("header","true").option(
"inferSchema","true").load(DATABASE_PATH)
df.createOrReplaceTempView("abc")
df2 = spark.sql("select * from abc")
df2.toJSON().map(index_module).collect()
solr_client.commit()
if __name__ == '__main__':
try:
DATABASE_PATH = sys.argv[1].strip()
except:
print("Input file missing !!!",file=sys.stderr)
sys.exit()
start_job(DATABASE_PATH)
大约有 120 个 csv 文件和 2 亿条记录。每一个都应该被理想地索引。为了在 YARN 上运行作业,我运行了以下命令(根据我的 Hadoop 资源)
spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --driver-memory 4g --executor-memory 2g --num-executors 5 --executor-cores 1 /PATH/myscript.py
现在,已经过去了大约 3 天。我的工作正在运行。以下是 YARN 仪表板中显示的执行程序状态
如图所示,对于每个执行者,所有任务都完成了,只剩下一个。为什么会这样?也应该完成。上面的问题是什么?解决问题的可能方法是什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。