我试图在Spark1.1.0中使用火花卡桑德拉连接器。
我已经成功地从GitHub上的主分支构建了jar文件,并且已经获得了包含的演示程序。但是,当我试图将jar文件加载到spark-shell中时,我无法从com.datastax.spark.connector包中导入任何类。
我尝试在--jars上使用spark-shell选项,并将包含jar文件的目录添加到Java中。这两个选项都不起作用。事实上,当我使用--jars选项时,日志记录输出显示Datastax正在加载,但我仍然不能从com.datastax导入任何东西。
我已经能够使用spark-shell将Tuplejump卡桑德拉连接器加载到--jars中,所以我知道这是可行的。只是Datastax连接器对我来说失败了。
发布于 2014-10-30 16:46:06
这样啊,原来是这么回事。以下是我所做的:
$ git clone https://github.com/datastax/spark-cassandra-connector.git
$ cd spark-cassandra-connector
$ sbt/sbt assembly
$ $SPARK_HOME/bin/spark-shell --jars ~/spark-cassandra-connector/spark-cassandra-connector/target/scala-2.10/connector-assembly-1.2.0-SNAPSHOT.jar 在scala提示符中
scala> sc.stop
scala> import com.datastax.spark.connector._
scala> import org.apache.spark.SparkContext
scala> import org.apache.spark.SparkContext._
scala> import org.apache.spark.SparkConf
scala> val conf = new SparkConf(true).set("spark.cassandra.connection.host", "my cassandra host")
scala> val sc = new SparkContext("spark://spark host:7077", "test", conf)发布于 2014-09-18 17:46:05
编辑:现在事情更容易了。
有关深入说明,请参阅项目网站shell.md。
也可以随意使用Spark加载库(并非所有已发布的版本) http://spark-packages.org/package/datastax/spark-cassandra-connector
> $SPARK_HOME/bin/spark-shell --packages com.datastax.spark:spark-cassandra-connector_2.10:1.4.0-M3-s_2.10下面假设您正在使用OSS Apache C*运行
您将希望使用设置为包含所有连接器库的驱动程序类路径来启动该类。
我将引用著名的艾米·托比的博客文章
我发现的最简单的方法是设置类路径,然后使用导入的必要类重新启动REPL中的上下文,以使sc.cassandraTable()可见。新加载的方法不会显示在选项卡完成中。我也不知道原因。
  /opt/spark/bin/spark-shell --driver-class-path $(echo /path/to/connector/*.jar |sed 's/ /:/g')它将打印大量日志信息,然后显示scala>提示符。
scala> sc.stop现在上下文已经停止,现在是导入连接器的时候了。
scala> import com.datastax.spark.connector._
scala> val conf = new SparkConf()
scala> conf.set("cassandra.connection.host", "node1.pc.datastax.com")
scala> val sc = new SparkContext("local[2]", "Cassandra Connector Test", conf)
scala> val table = sc.cassandraTable("keyspace", "table")
scala> table.count如果您正在使用DSE < 4.5.1运行
DSE Classloader和以前的包命名约定有一个小问题,这将阻止您找到新的火花连接器库。您应该能够通过删除在启动spark的脚本中指定DSE类加载器的行来解决这个问题。
发布于 2015-01-21 13:46:37
如果您希望避免停止/启动shell中的上下文,还可以将其添加到火花属性中:
{spark_install}/conf/火花-defaults.conf
spark.cassandra.connection.host=192.168.10.10https://stackoverflow.com/questions/25837436
复制相似问题