【发布时间】:2014-11-09 23:11:49
【问题描述】:
我是 spark/cassandra 的相对新手。因此,我有一个基本问题。我已经编译了一个 uber jar 并将其加载到我的 spark/cassandra 服务器。现在我处于困境中,如何通过 cassandra (DSE) 环境运行它?我知道 spark shell 命令是“dse spark-submit”,但是当我尝试执行“dse spark-submit”时,我得到一个“NullPointerException”
这是完整的输出:
Exception in thread "main" java.lang.NullPointerException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:328)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:75)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
程序代码非常基础,已经证明可以在spark shell中工作 包 xxx.seaxxxx
import com.datastax.spark.connector._
import org.apache.spark.{SparkConf, SparkContext}
class test {
def main(args: Array[String]){
val conf = new SparkConf(true).set("spark.cassandra.connection.host", "xx.xxx.xx.xx")
.setAppName("Seasonality")
val sc = new SparkContext("spark://xx.xxx.xx.xx:7077", "Season", conf)
val ks = "loadset"
val incf = "period"
val rdd = sc.cassandraTable(ks, incf)
rdd.count
println("done with test")
sc.stop()
}
}
spark-submit代码如下: dse火花提交\ --class xxx.seaxxxx.test \ --master spark://xxx.xx.x.xxx:7077 \ /home/ubuntu/spark/Seasonality_v6-assembly-1.0.1.jar 100
谢谢,
埃里克
【问题讨论】:
-
您似乎确实在尝试设置 name 参数两次,尽管我不确定这是否会破坏一切。我会尝试初始化 conf 对象中的所有配置,看看是否可以解决它。此外,如果您使用 dse spark-submit,则不必设置主变量。