【问题标题】:Error when submit spark application in datastax enterprise在datastax企业中提交spark应用程序时出错
【发布时间】:2019-05-07 14:35:29
【问题描述】:
我在尝试从主节点提交应用程序时遇到此错误:
dse -u abc -p abc spark-submit --confpark.cassandra.auth.username=abc --conf spark.cassandra。 auth.password=abc --conf spark.debug.maxToStringFields=10000 --conf spark.executor.memory=4G app.py
我使用 3 个 dse 分析节点、1 个数据中心、4 个核心/16gb ram 节点并从主节点提交应用程序。当我去检查任务/阶段时,我看到了这个错误:
大家都见过这个bug吗?
【问题讨论】:
标签:
datastax-enterprise
spark-submit
【解决方案1】:
您的应用程序将数据写入表中时遇到问题 - 要么删除大量数据,要么(很可能)插入空值作为“正常”插入的一部分 - 在这种情况下会生成墓碑,并且如果有很多,则查询开始失败。
你可以做什么:
- 停止将空值作为数据的一部分插入。如果您使用 Spark 写入数据,则可以使用
--conf spark.cassandra.output.ignoreNulls=true 运行作业 - 这将防止写入空值,但这可能不适用于覆盖现有数据。如果您正在使用其他驱动程序,请对具有空值的字段使用 unset;
- 不要按列删除数据,而是按行/范围/分区删除
- 使墓碑过期更快 - 如果可以的话,也许使用较低的
gc_grace_period,但这也有其自身的挑战 - 我建议阅读 this article 以更好地理解问题。