2015-07-07 5 views
3

Я выполняю модульные тесты Spark 1.3.1 с помощью теста sbt, и, кроме того, тесты модулей невероятно медленны. Я продолжаю работать в java.lang.ClassNotFoundException: org.apache.spark.storage.RDDBlockId проблемы. Обычно это означает проблему зависимости, но я не знаю, откуда. Пробовал установить все на новую машину, в том числе свежие Hadoop, свежий ivy2, но я по-прежнему работать в том же номереискровой тест на локальной машине

Любая помощь очень ценится

Исключение:

Exception in thread "Driver Heartbeater" java.lang.ClassNotFoundException: 
    org.apache.spark.storage.RDDBlockId 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:270) 

Мой build.sbt:

libraryDependencies ++= Seq( 
    "org.scalaz"    %% "scalaz-core" % "7.1.2" excludeAll ExclusionRule(organization = "org.slf4j"), 
    "com.typesafe.play"  %% "play-json" % "2.3.4" excludeAll ExclusionRule(organization = "org.slf4j"), 
    "org.apache.spark"  %% "spark-core" % "1.3.1" % "provided" withSources() excludeAll (ExclusionRule(organization = "org.slf4j"), ExclusionRule("org.spark-project.akka", "akka-actor_2.10")), 
    "org.apache.spark"  %% "spark-graphx" % "1.3.1" % "provided" withSources() excludeAll (ExclusionRule(organization = "org.slf4j"), ExclusionRule("org.spark-project.akka", "akka-actor_2.10")), 
    "org.apache.cassandra" % "cassandra-all" % "2.1.6", 
    "org.apache.cassandra" % "cassandra-thrift" % "2.1.6", 
    "com.typesafe.akka" %% "akka-actor" % "2.3.11", 
    "com.datastax.cassandra" % "cassandra-driver-core" % "2.1.6" withSources() withJavadoc() excludeAll (ExclusionRule(organization = "org.slf4j"),ExclusionRule(organization = "org.apache.spark"),ExclusionRule(organization = "com.twitter",name = "parquet-hadoop-bundle")), 
    "com.github.nscala-time" %% "nscala-time" % "1.2.0" excludeAll ExclusionRule(organization = "org.slf4j") withSources(), 
    "com.datastax.spark"  %% "spark-cassandra-connector-embedded" % "1.3.0-M2" excludeAll (ExclusionRule(organization = "org.slf4j"),ExclusionRule(organization = "org.apache.spark"),ExclusionRule(organization = "com.twitter",name = "parquet-hadoop-bundle")), 
    "com.datastax.spark"  %% "spark-cassandra-connector" % "1.3.0-M2" excludeAll (ExclusionRule(organization = "org.slf4j"),ExclusionRule(organization = "org.apache.spark"),ExclusionRule(organization = "com.twitter",name = "parquet-hadoop-bundle")), 
    "org.slf4j"    % "slf4j-api"   % "1.6.1", 
    "com.twitter"   % "jsr166e" % "1.1.0", 
    "org.slf4j"    % "slf4j-nop" % "1.6.1" % "test", 
    "org.scalatest"   %% "scalatest" % "2.2.1" % "test" excludeAll ExclusionRule(organization = "org.slf4j") 
) 

и мои настройки тестирования свечи (из которых я отключил все, чтобы проверить его)

(spark.kryo.registrator,com.my.spark.MyRegistrator) 
(spark.eventLog.dir,) 
(spark.driver.memory,16G) 
(spark.kryoserializer.buffer.mb,512) 
(spark.akka.frameSize,5) 
(spark.shuffle.spill,false) 
(spark.default.parallelism,8) 
(spark.shuffle.consolidateFiles,false) 
(spark.serializer,org.apache.spark.serializer.KryoSerializer) 
(spark.shuffle.spill.compress,false) 
(spark.driver.host,10.10.68.66) 
(spark.akka.timeout,300) 
(spark.driver.port,55328) 
(spark.eventLog.enabled,false) 
(spark.cassandra.connection.host,127.0.0.1) 
(spark.cassandra.connection.ssl.enabled,false) 
(spark.master,local[8]) 
(spark.cassandra.connection.ssl.trustStore.password,password) 
(spark.fileserver.uri,http://10.10.68.66:55329) 
(spark.cassandra.auth.username,username) 
(spark.local.dir,/tmp/spark) 
(spark.app.id,local-1436229075894) 
(spark.storage.blockManagerHeartBeatMs,300000) 
(spark.executor.id,<driver>) 
(spark.storage.memoryFraction,0.5) 
(spark.app.name,Count all entries 217885402) 
(spark.shuffle.compress,false) 

Собираемый или упакованный банку, отправленный в автономный или мезосостровый работает отлично! Предложения?

ответ

0

Причина была большая переменная широковещательной передачи. Непонятно, почему (поскольку он вписывается в память), но удаление его из тестовых случаев заставило его работать.

+0

Я вижу это без явных переменных вещания, но с 'кэш)' вызывается на DataFrame (. – Sim

+0

Такая же проблема на моей стороне, но нет широковещательной переменной и кеширования() – blackbox

1

Мы столкнулись с той же проблемой в Spark 1.6.0 (для этого уже есть отчет bug) Мы исправили его, переключившись на сериализатор Kryo (который вы должны использовать в любом случае). Таким образом, это похоже на ошибку в JavaSerializer по умолчанию.

Просто сделайте следующее, чтобы избавиться от него:

new SparkConf().setAppName("Simple Application").set("spark.serializer", "org.apache.spark.serializer.KryoSerializer") 
Смежные вопросы