如何在 Windows 中使用 Scala 将 Cassandra 与 Spark 连接起来

Posted

技术标签:

【中文标题】如何在 Windows 中使用 Scala 将 Cassandra 与 Spark 连接起来【英文标题】:How to connect Cassandra with Spark using Scala in windows 【发布时间】:2015-08-04 17:23:37 【问题描述】:

我正在尝试使用 Scala 连接 Spark 和 Cassandra,如此处所述 http://www.planetcassandra.org/blog/kindling-an-introduction-to-spark-with-cassandra/ 我在标题下的步骤中遇到错误:

“将连接器加载到 Spark Shell 中:”

val test_spark_rdd = sc.cassandraTable(“test_spark”, “test”)

test_spark_rdd.first 使用上述命令时(粗体)

显示错误 阶段 0.0 (TID 0) java.lang.NullPointerException 中的任务 0.0 中的异常

我在这里上传了完整的堆栈跟踪

https://docs.google.com/document/d/1UjGXKifD6chq7-WrHd3GT3LoNcw8GawxAPeOtiEjKvM/edit?usp=sharing

cassandra.YAML 文件中的一些 rpc 设置是:

rpc_address: localhost 
# rpc_interface: eth1 
# rpc_interface_prefer_ipv6: false 
# port for Thrift to listen for clients on 
rpc_port: 9160 

我的 spark-defaults 配置文件

# Default system properties included when running spark-submit.
# This is useful for setting default environmental settings.

# Example:
# spark.master                     spark://master:7077
# spark.eventLog.enabled           true
# spark.eventLog.dir               hdfs://namenode:8021/directory
#spark.serializer                 org.apache.spark.serializer.KryoSerializer
#spark.driver.memory              5g
#spark.executor.extraJavaOptions  -XX:+PrintGCDetails -#Dkey=value -Dnumbers="one two three"
spark.cassandra.connection.host localhost

【问题讨论】:

【参考方案1】:
15/08/04 21:24:50 ERROR Executor: Exception in task 0.0 in stage 0.0 (TID 0)
    java.lang.NullPointerException
            at java.lang.ProcessBuilder.start(Unknown Source)
            at org.apache.hadoop.util.Shell.runCommand(Shell.java:445)
            at org.apache.hadoop.util.Shell.run(Shell.java:418)
            at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
            at org.apache.hadoop.fs.FileUtil.chmod(FileUtil.java:873)
            at org.apache.hadoop.fs.FileUtil.chmod(FileUtil.java:853)

看起来问题在于底层的分叉执行程序进程无法启动或对本地文件系统执行某些操作。确保 Executor Process 可以访问默认 spark 目录。

【讨论】:

感谢您为我指引正确的方向并在 Stack Trace 中突出显示相关区域。我终于在这里找到了我的解决方案:comments.gmane.org/gmane.comp.lang.scala.spark.user/11471 Hadoop 库需要在 Windows 中执行 chmod 操作。我的解决方案在上述链接的最后一篇文章中。再次感谢您的帮助,让我摆脱了这个问题。 啊,很高兴您找到了解决方案!您可以将其添加为该问题的附加答案并接受您自己的答案;)我很乐意为它 +1

以上是关于如何在 Windows 中使用 Scala 将 Cassandra 与 Spark 连接起来的主要内容,如果未能解决你的问题,请参考以下文章

Windows 上安装 Scala

我将如何在 Scala 中表达链式赋值?

windows下Scala安装

scala练习题300道

如何将 Scala 期货与超时联系起来?

Scala Slick 如何将 Scala 代码翻译成 JDBC?