我有一个包含8个节点的运行分析(Spark Enabled)dse集群。 Spark Shell工作正常。 现在我想构建一个spark应用程序并使用命令" dse spark-class"将其部署到集群上。根据dse文档,我认为这是适合这项工作的工具。
我用sbt程序集构建了应用程序,我得到了我应用程序的胖罐。 经过大量的挖掘后,我想出去导出env var $ SPARK_CLIENT_CLASSPATH,因为它被spark-class命令引用
export SPARK_CLIENT_CLASSPATH=<fat jar full path>
现在我可以调用:
dse spark-class <main Class>
由于classNotFound异常,应用程序立即崩溃。它无法识别我的应用程序的内部类。
我能够使其工作的唯一方法是初始化SparkConf如下:
val conf = new SparkConf(true)
.set("spark.cassandra.connection.host", "cassandrahost")
.set("spark.cassandra.auth.username", "cassandra")
.set("spark.cassandra.auth.password", "cassandra")
.setJars(Seq("fat-jar-full-path"))
val sc = new SparkContext("spark://masterurl:7077", "DataGenerator", conf)
setJars方法可以将我的jar分配给集群工作者。
这是实现这一目标的唯一途径吗?我觉得它很丑陋而且不便携。
是否可以使用外部配置来设置主网址,cassandra主机和应用jar路径?
我已经看到从Spark 1.0开始有spark-submit命令允许在外部指定app-jar。是否可以在DSE 4.5.3中将spark更新到1.1版本?
非常感谢
答案 0 :(得分:0)
您可以使用今天刚刚(2014年12月3日)删除的DSE 4.6的Spark提交,并包含Spark 1.1。
以下是新功能:
LDAP身份验证增强的审核日志记录:
-Audit logging
-configuration is decoupled from log4j Logging to a Cassandra table
-Configurable consistency levels for table logging Optional
-asynchronous logging for better performance when logging to a table
Spark增强功能:
-Spark 1.1 integration Spark Java API support
-Spark Python API (PySpark) support Spark SQL support Spark Streaming
-Kerberos support for connecting Spark components to Cassandra DSE
搜索增强功能:
-Simplified, automatic resource generation
-New dsetool commands for creating, reloading, and managing Solr core resources
-Redesigned implementation of CQL Solr queries for production usage
-Solr performance objects
-Tuning index size and range query speed
-Restricted query routing for experts
-Ability to use virtual nodes (vnodes) in Solr nodes. Recommended range: 64 to 256 (overhead increases by approximately 30%)
在这里查看文档: http://www.datastax.com/documentation/datastax_enterprise/4.6/datastax_enterprise/newFeatures.html
像往常一样,您可以使用您的凭据下载此处: