私はスカラーが初めてです。 カスタムkryoシリアル化を実装しようとしています。私は2つのクラスと1つのオブジェクト持っているカスタムkryoSerializationフローがスカラのスパークで動作しません
:
操作を
package org.agg
object Operation {
def main(args: Array[String]) {
var SparkConf = new SparkConf()
.setAppName("Operation")
.set("spark.io.compression.codec", "org.apache.spark.io.SnappyCompressionCodec")
.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
.set("spark.kryo.registrationRequired", "true")
.set("spark.kryo.registrator", "org.agg.KryoClass")
var sc = new SparkContext(SparkConf)
var sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
println("**********Operation***********")
}
}
KryoClass
package org.agg
class KryoClass extends KryoRegistrator {
def registerClasses(kryo: Kryo) {
println("**********KryoClass***********")
kryo.register(classOf[org.agg.KryoSerializeCode])
}
}
KryoSerializeCode
package org.agg
class KryoSerializeCode {
println("**********KryoSerializeCode*************")
}
私は検討してい操作で、私はセットを書いていた場合クラス(「spark.kryo.registrator」、「org.agg.KryoClass」) だから、これはKryoClassを呼び出す必要がありますし、それが印刷されていることprintln( "********** KryoClass ***********")ログファイルのステートメント。 動作オブジェクトを実行する
コマンドは以下である:
--class org.agg.Operation --master糸--deployモード クラスタ--num-エグゼキュータ40をスパーク提出します - executor-core 1 --executor-memory 3400m --files /home/hive-site.xml --jars /usr/iop/4.1.0.0/spark/lib/datanucleus-api-jdo-3.2.6.jar、 /usr/iop/4.1.0.0/spark/lib/datanucleus-rdbms-3.2.9.jar,/usr/iop/4.1.0.0/spark/lib/datanucleus-core-3.2.10.jar /home/operation_jar .jar
しかし、それだけではないKryoClassまたはKryoSerializeCodeクラスに操作クラスのprint文を印刷している、これを実行した後。
それはKryoClassまたはKryoSerializeCodeクラス内のprint文を呼び出していない理由を誰も持っアイデアを実行してください。
実行を無効にすることができます成功しているが、出力のみ**」**********操作です***** ****** "** – DSpark