spark shell 配置 Kryo 序列化

时间:2022-07-22
本文章向大家介绍spark shell 配置 Kryo 序列化,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

修改默认序列化方式

Spark 默认使用 Java Serialization 作为序列化方式,但是这种序列化方式一般会被认为性能和效率一般。因此 Spark 官方是推荐使用 Kryo 来代替默认的序列化方式的,为了便于调试,我们可以在 spark-shell 环境中更改默认的配置参数,使得默认的序列化方式变为 KryoSerializer。

$ export SPARK_JAVA_OPTS="-Dspark.serializer=org.apache.spark.serializer.KryoSerializer"

$ ./bin/spark-shell

又或者打开 spark-default.conf,打开注释如下图。

...
...
# Example:
# spark.master                     spark://master:7077
# spark.eventLog.enabled           true
# spark.eventLog.dir               hdfs://namenode:8021/directory
spark.serializer                 org.apache.spark.serializer.KryoSerializer
# spark.driver.memory              5g
# spark.executor.extraJavaOptions  -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
...
...

然后就可以在 Spark UI 是查看一下环境变量。

Reference

  1. https://arjon.es/2014/how-to-change-default-serializer-on-apache-spark-shell/