我有一个应用程序并从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
它运行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'”,它没有用。
请帮助我!
答案 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
依赖项。