gpt4 book ai didi

cassandra - 使用 Spark 连接到 Cassandra

转载 作者:行者123 更新时间:2023-12-03 08:10:42 24 4
gpt4 key购买 nike

首先,我购买了新的 O'Reilly Spark 书籍并尝试了那些 Cassandra 设置说明。我还在网上找到了其他 stackoverflow 帖子和各种帖子和指南。他们都没有按原样工作。以下是我所能得到的。

这是一个只有少量虚拟测试数据记录的测试。我正在运行由 plasetcassandra.org 提供的最新 Cassandra 2.0.7 Virtual Box VM,从 Cassandra 项目主页面链接。

我下载了 Spark 1.2.1 源代码并从 github 获得了最新的 Cassandra 连接器代码,并针对 Scala 2.11 构建了两者。我在 Mac OS 10.10.2 上安装了 JDK 1.8.0_40 和 Scala 2.11.6。

我在加载了 cassandra 连接器的情况下运行 spark shell:

bin/spark-shell --driver-class-path ../spark-cassandra-connector/spark-cassandra-connector/target/scala-2.11/spark-cassandra-connector-assembly-1.2.0-SNAPSHOT.jar

然后我在一个包含四条记录的测试表上做一个简单的行计数类型测试:
import com.datastax.spark.connector._
sc.stop
val conf = new org.apache.spark.SparkConf(true).set("spark.cassandra.connection.host", "192.168.56.101")
val sc = new org.apache.spark.SparkContext(conf)
val table = sc.cassandraTable("mykeyspace", "playlists")
table.count

我收到以下错误。令人困惑的是,它在尝试在 127.0.0.1 处查找 Cassandra 时出错,但它也识别出我配置的主机名 192.168.56.101。
15/03/16 15:56:54 INFO Cluster: New Cassandra host /192.168.56.101:9042 added
15/03/16 15:56:54 INFO CassandraConnector: Connected to Cassandra cluster: Cluster on a Stick
15/03/16 15:56:54 ERROR ServerSideTokenRangeSplitter: Failure while fetching splits from Cassandra
java.io.IOException: Failed to open thrift connection to Cassandra at 127.0.0.1:9160
<snip>
java.io.IOException: Failed to fetch splits of TokenRange(0,0,Set(CassandraNode(/127.0.0.1,/127.0.0.1)),None) from all endpoints: CassandraNode(/127.0.0.1,/127.0.0.1)

顺便说一句,我还可以使用 conf/spark-defaults.conf 中的配置文件来执行上述操作,而无需关闭/重新创建 spark 上下文或传入 --driver-clas-path 参数。不过,我最终还是遇到了同样的错误,在这篇文章中,上述步骤似乎更容易交流。

有任何想法吗?

最佳答案

检查 cassandra 节点上 cassandra.yaml 文件中的 rpc_address 配置。 spark 连接器很可能正在使用 system.local/system.peers 表中的该值,并且它可能在您的 cassandra.yaml 中设置为 127.0.0.1。

spark 连接器使用 thrift 从 cassandra 获取 token 范围拆分。最终我打赌这将被替换,因为 C* 2.1.4 有一个名为 system.size_estimates ( CASSANDRA-7688 ) 的新表。看起来它正在获取主机元数据以找到最近的主机,然后使用端口 9160 上的 thrift 进行查询。

关于cassandra - 使用 Spark 连接到 Cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29087090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com