0

我正面臨非法循環引用涉及錯誤與Spark + Scala組合。涉及Spark + Scala錯誤的非法循環引用合併

Error Ocured during job for '1473170880000000' and Error Message is scala.reflect.internal.Symbols$CyclicReference: illegal cyclic reference involving method srcip 
    at scala.reflect.internal.Symbols$Symbol$$anonfun$info$3.apply(Symbols.scala:1220) 
    at scala.reflect.internal.Symbols$Symbol$$anonfun$info$3.apply(Symbols.scala:1218) 
    at scala.Function0$class.apply$mcV$sp(Function0.scala:40) 
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) 
    at scala.reflect.internal.Symbols$Symbol.lock(Symbols.scala:482) 
    at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1218) 
    at scala.reflect.internal.Symbols$Symbol.initialize(Symbols.scala:1374) 
    at scala.reflect.internal.Symbols$Symbol.privateWithin(Symbols.scala:1169) 
    at scala.reflect.internal.Symbols$Symbol.hasAccessBoundary(Symbols.scala:1176) 
    at scala.reflect.internal.HasFlags$class.isPublic(HasFlags.scala:111) 
    at scala.reflect.internal.Symbols$Symbol.isPublic(Symbols.scala:112) 
    at com.datastax.spark.connector.util.ReflectionUtil$$anonfun$2.apply(ReflectionUtil.scala:77) 

Error Ocured during job for '1453743420000000' and Error Message is scala.MatchError: <error> (of class scala.reflect.internal.Types$ErrorType$) 
    at com.datastax.spark.connector.util.ReflectionUtil$.returnType(ReflectionUtil.scala:113) 

這個錯誤,當我嘗試執行1個多工作simultaneously.It聞起來像多線程問題發生。不是嗎?從卡桑德拉加載數據時(當執行我的第一個動作)或保存數據時到卡桑德拉rdd.saveToCassandra(...)

我的依賴細節

<dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-core_2.10</artifactId> 
     <version>1.6.2</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-sql_2.10</artifactId> 
     <version>1.6.2</version> 
    </dependency> 

    <dependency> 
     <groupId>com.datastax.spark</groupId> 
     <artifactId>spark-cassandra-connector_2.10</artifactId> 
     <version>1.6.0</version> 
    </dependency> 

    <dependency> 
     <groupId>com.datastax.cassandra</groupId> 
     <artifactId>dse-driver</artifactId> 
     <version>1.1.0</version> 
    </dependency> 

    <dependency> 
     <groupId>com.datastax.cassandra</groupId> 
     <artifactId>cassandra-driver-core</artifactId> 
     <version>3.0.2</version> 
    </dependency> 

驅動程序錯誤日誌enter image description here

任何建議/在此幫助這個錯誤出現高度讚賞。有沒有人遇到過這個問題?

+0

你能解決嗎?我也面臨同樣的問題。 – Kamal

回答

0

最後問題解決了。我的應用程序和火花的二進制文件是建立在Scala 2.10上的。看起來Scala 2.10有反射/多線程問題,它在我經歷過的一些論壇上作爲建議發佈。

解決的辦法是,我用Scala 2.11構建了我的應用程序,並使用了構建於2.11上的Spark庫。並且問題消失了。

更新依賴

org.apache.spark 火花core_2.11 1.6.2

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-sql_2.11</artifactId> 
    <version>1.6.2</version> 
</dependency> 

<dependency> 
    <groupId>com.datastax.spark</groupId> 
    <artifactId>spark-cassandra-connector_2.11</artifactId> 
    <version>1.6.0</version> 
</dependency> 

希望這會幫助別人。