淘先锋技术网

首页 1 2 3 4 5 6 7
1.spark可以采用注册的方式将类序列化,在spark程序中,如果使用的第三方jar包的class没有序列化,可以用写一个MyRegistretor类,继承KryoRegistretor,重写其中的registerClass方法,将需要注册的类写入:
class HbaseRegistrator extends KryoRegistrator {
override def registerClasses(kryo: Kryo) {
kryo.register(classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable])
kryo.register(classOf[org.apache.hadoop.hbase.client.Result])
}
}
2.官网介绍的序列化方法:
val conf = new SparkConf().setMaster(...).setAppName(...)
conf.registerKryoClasses(Array(classOf[MyClass1], classOf[MyClass2]))
val sc = new SparkContext(conf)


spark参数优先度(顺序代表优先度高低):
1.通过类SparkContext设置的参数。
2.使用 spark-submit or spark-shell的时候,设置在执行脚本的时候的参数,例如
./bin/spark-submit --class my.main.Class \
    --master yarn-cluster \
    --jars my-other-jar.jar,my-other-other-jar.jar
    my-main-jar.jar
    app_arg1 app_arg2
这类在spark-submit中的参数。
3.设置在 spark-defaults.conf中的参数,个别运行参数设置在spark-env.sh

spark源码中文件:
./docs/_layouts/global.html中有详细的参数说明,这个文件要用ie打开