目录

Spark-shell配置Kryo序列化

概述

修改默认序列化方式

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

1
2
$ export SPARK_JAVA_OPTS="-Dspark.serializer=org.apache.spark.serializer.KryoSerializer"
$ ./bin/spark-shell

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
...
...
# 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 是查看一下环境变量。

/spark-shell%E9%85%8D%E7%BD%AEkryo%E5%BA%8F%E5%88%97%E5%8C%96/image_1ddmiq9gj15m51tdg8c81n071h589.png

参考资料

  1. how-to-change-default-serializer-on-apache-spark-shell
警告
本文最后更新于 2017年2月1日,文中内容可能已过时,请谨慎参考。