0
点赞
收藏
分享

微信扫一扫

spark 2.3迁移到3.1.2相关改动

芭芭蘑菇 2021-09-19 阅读 68

spark core 从2.4升级到3.0

1)org.apache.spark.ExecutorPlugin 接口和相关的配置被org.apache.spark.api.plugin.SparkPlugin接口替换,并且添加了新的功能使用旧接口的插件必须修改来扩展新的接口

2)过期的TaskContext.isRunningLocally方法被移除.Local execution被移除因为它总是返回false.

3)ShuffleWriteMetrics中的shuffleBytesWritten, shuffleWriteTime and shuffleRecordsWritten方法被移除,替换为bytesWritten,writeTime,recordsWritten.

4)AccumulableInfo.apply方法被移除 因为不允许创建AccumulableInfo.

5)accumulator v1 APIs被移除,需要使用 v2 APIs

6)日志文件采用UTF-8编码,spark history server将重放日志文件为UTF-8编码.之前的spark 写日志文件采用的编码是drive jvm进程默认的编码,因此需要 Spark 2.x 的 Spark History Server 读取旧的事件日志文件,以防编码不兼容.

7)使用了一种用于获取shuffle块的新协议.建议在运行 Spark 3.0 应用程序时升级外部 shuffle 服务。可以通过设置spark.shuffle.useOldFetchProtocol=true来使用老的 external shuffle service。否则的话spark 可能会运行提示如下错误 IllegalArgumentException: Unexpected message type: <number>.

8)在standalone模式中废弃SPARK_WORKER_INSTANCES。建议在一个 worker 中启动多个 executor 并为每个节点启动一个 worker,而不是每个节点启动多个 worker并为每个 worker 启动一个 executor。

spark core从3.0到3.1

1)在 Spark 3.0 及以下版本中,SparkContext可以在 executors 中创建。从 Spark 3.1 开始,SparkContext在 executors 中创建时会抛出异常。可以通过配置spark.executor.allowSparkContext来允许在executors中创建SparkContext

2)在Spark 3.0 及以下版本中,spark从yarn.application.classpath和mapreduce.application.classpath传播Hadoop classpath到提交到yarn上的spark application当spark distribution是built-in Hadoop。  从 Spark 3.1 开始,当 Spark distribution是built-in Hadoop时,它不再传播Hadoop classpath,以防止从 Hadoop 集群(例如 Guava 和 Jackson)获取的不同传递依赖项导致的失败。要恢复 Spark 3.1 之前的行为,您可以设置spark.yarn.populateHadoopClasspath为true.

举报

相关推荐

iOS 15相关改动

MVC4相关信息

centos8相关问题

SM30相关操作

0 条评论