独立群集上的Spark会抛出java.lang.illegalStateException

时间:2015-07-23 02:17:14

标签: mongodb apache-spark

我有一个应用程序并从MongoDB读取数据。 如果我使用local模式,它运行良好,但是,当我使用java.lang.illegalStateExcetion模式时,它会抛出standalone cluster

使用local模式,SparkContext为val sc = new SparkContext("local","Scala Word Count")

使用Standalone cluster模式,SparkContext为val sc = new SparkContext(),提交shell为./spark-submit --class "xxxMain" /usr/local/jarfile/xxx.jar --master spark://master:7077

enter image description here

它运行4次,然后在运行到第一个action

时抛出错误

我的代码

  configOriginal.set("mongo.input.uri","mongodb://172.16.xxx.xxx:20000/xxx.Original")
  configOriginal.set("mongo.output.uri","mongodb://172.16.xxx.xxx:20000/xxx.sfeature")
  mongoRDDOriginal =sc.newAPIHadoopRDD(configOriginal,classOf[com.mongodb.hadoop.MongoInputFormat],classOf[Object], classOf[BSONObject])

我从这个例子中学到了很多东西 mongo-spark

我搜索过,有人说这是因为mongo-hadoop-core-1.3.2,但是要么将版本升级到mongo-hadoop-core-1.4.0,要么降低到“mongo-hadoop-core-1.3.1'”,它没有用。

请帮助我!

1 个答案:

答案 0 :(得分:0)

最后,我得到了解决方案。 因为我的每个工作人员都有很多核心而且class A<T> where T : IComparable { } class ComparableWrapper<T> : IComparable where T : IComparable<T> { T _obj; public ComparableWrapper(T obj) { _obj = obj; } public T WrappedObject {get { return _obj;}} // wrapping code } 不支持多个线程,但它已在mongo-hadoop-core-1.3.2中修复。但为什么我的应用程序仍然出错是因为“intellij idea”缓存。您也应该添加mongo-hadoop-core-1.4.0依赖项。