问题标签 [spark-cassandra-connector]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cassandra - 运行通过 Spark 作业服务器通过 Spark SQL 查询 Cassandra 的作业时出错
因此,我正在尝试运行仅使用 spark-sql 对 cassandra 运行查询的作业,作业提交正常并且作业开始正常。此代码在未通过 spark 作业服务器运行时(仅使用 spark 提交时)有效。有人可以告诉我导致以下错误的工作代码或配置文件有什么问题吗?
这是我正在运行的工作:
这是我的 spark-jobserver 配置文件
cassandra - Cassandra 不使用 UDT
我有一个 Java 应用程序,Spark-1.4.0
其中Cassandra-2.1.5
有Cassandra-Spark-connection-1.4.0-M1
.
在此应用程序中,我尝试使用Dataframe
或使用javaFunctions class
其中有一些UDTs
.
或者
但我得到了这个错误
以前,我可以使用映射器类成功地将消息对象保存到 Cassandra 表中。
这是我的 Java Bean
cassandra - Spark-Cassandra 连接器:无法打开到 Cassandra 的本机连接
我是 Spark 和 Cassandra 的新手。在尝试提交 Spark 作业时,我在连接到 Cassandra 时遇到错误。
细节:
版本:
Spark 和 Cassandra 在一个虚拟集群上 集群详情:
我正在尝试通过我的客户端计算机(笔记本电脑)- 172.16.0.6 提交工作。在谷歌搜索这个错误之后,我确保我可以从客户端机器上 ping 集群上的所有机器:spark master/slaves 和 cassandra 节点,并且还禁用了所有机器上的防火墙。但我仍在努力解决这个错误。
卡桑德拉.yaml
我正在尝试运行一个最小的示例作业
要提交作业,我使用 spark-shell(:将代码粘贴到 spark shell 中):
我得到的错误:
谁能指出我在这里做错了什么?
java - 无法使用 java 中的 spark-cassandra-connector 读取火花集群上的 cassandra 列族
这是我使用 spark cassandra 连接器简单地读取列族的代码
这是我build.gradle
构建和运行应用程序的文件
我首先通过构建 jar 来执行我的工作gradle build
,然后我执行gradle run
. 但是工作失败了,看着stderr
我的执行者,我得到了以下异常
我有一个 3 节点设置,其中一个节点充当 spark 主节点,而另外两个是 spark 工作节点,也形成一个 cassandra 环。如果我更改我的 spark 主机,我可以在本地执行该作业,但是在集群上我遇到了这个奇怪的异常,我在其他任何地方都找不到。版本:
- 火花:1.4.0
- 卡桑德拉:2.1.6
- 火花卡桑德拉连接器:1.4.0-M1
编辑
我无法准确回答我是如何解决这个问题的,但是我从所有节点中删除了所有 java 安装,重新启动所有内容并安装了新的副本jdk1.8.0_45
,再次启动我的集群,现在作业成功完成。欢迎对此行为进行任何解释。
java - 使用 spark 在 Cassandra 列族上执行 SQL 查询的不同方法之间的比较
作为我项目的一部分,我必须为一个非常大的 Cassandra 数据集创建一个 SQL 查询接口,因此我一直在研究使用 Spark 对 cassandra 列族执行 SQL 查询的不同方法,我想出了 3 种不同的方法
使用带有静态定义模式的 Spark SQLContext
我将定义定义为:
/li>将 Spark SQLContext 与动态定义的模式一起使用
/li>使用来自 spark-cassandra-connector 的 CassandraSQLContext
/li>
我想知道一种方法相对于另一种方法的优缺点。此外,对于该CassandraSQLContext
方法,查询仅限于 CQL,还是与 Spark SQL 完全兼容。我还想要一个与我的特定用例有关的分析,我有一个 cassandra 列族,其中包含 62 列的约 1760 万个元组。对于查询这么大的数据库,哪种方法最合适?
java - Apache Spark 无法处理大型 Cassandra 列族
我正在尝试使用 Apache Spark 来处理我的大型(约 230k 条目)cassandra 数据集,但我经常遇到不同类型的错误。但是,在数据集 ~200 个条目上运行时,我可以成功运行应用程序。我有 3 个节点的 spark 设置,1 个 master 和 2 个 worker,2 个 worker 还安装了 cassandra 集群,数据索引的复制因子为 2。我的 2 个 spark worker 在 Web 界面上显示 2.4 和 2.8 GB 内存,我spark.executor.memory
在运行应用程序时设置为 2409,以获得 4.7 GB 的组合内存。这是我的 WebUI 主页
其中一项任务的环境页面
在这个阶段,我只是尝试使用 spark 处理存储在 cassandra 中的数据。这是我在 Java 中用来执行此操作的基本代码
为了成功运行,在一个小数据集(200 个条目)上,事件界面看起来像这样
但是当我在大型数据集上运行相同的东西(即我只更改CASSANDRA_COLUMN_FAMILY
)时,工作永远不会在终端内终止,日志看起来像这样
大约 2 分钟后,执行者的标准错误看起来像这样
约7分钟后,我得到
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
在我的终端中,我必须手动终止该SparkSubmit
进程。但是,大型数据集是从仅占用 22 MB 的二进制文件中索引的,并且nodetool status
我可以看到只有约 115 MB 的数据存储在我的两个 cassandra 节点中。我也尝试在我的数据集上使用 Spark SQL,但也得到了类似的结果。对于 Transformation-Action 程序和使用 Spark SQL 的程序,我的设置哪里出错了,我应该怎么做才能成功处理我的数据集。
我已经尝试过以下方法
用于
-Xms1G -Xmx1G
增加内存,但程序失败并出现异常说我应该改为 setspark.executor.memory
,我有。使用
spark.cassandra.input.split.size
,它不能说它不是一个有效的选项,类似的选项是spark.cassandra.input.split.size_in_mb
,我设置为 1,没有效果。
编辑
基于这个答案,我还尝试了以下方法:
设置
spark.storage.memoryFraction
为 0未设置
spark.storage.memoryFraction
为零并与persist
、MEMORY_ONLY
和MEMORY_ONLY_SER
一起使用。MEMORY_AND_DISK
MEMORY_AND_DISK_SER
版本:
火花:1.4.0
卡桑德拉:2.1.6
火花卡桑德拉连接器:1.4.0-M1
scala - 如何将嵌套案例类转换为 UDTValue 类型
我正在努力使用自定义案例类使用 Spark(1.4.0)写入 Cassandra(2.1.6)。到目前为止,我已经通过使用 DataStaxspark-cassandra-connector 1.4.0-M1
和以下案例类进行了尝试:
为了完成这项工作,我还实现了以下转换器:
如果我手动查找转换器,我可以使用它将实例转换Event
为UDTValue
,但是,当使用相关对象sc.saveToCassandra
传递它的实例时RsvpResponse
,我收到以下错误:
由于连接器库在内部处理的方式,我的转换器似乎从未被调用过UDTValue
。但是,上述解决方案确实适用于从 Cassandra 表(包括用户定义的类型)中读取数据。基于连接器文档,我还com.datastax.spark.connector.UDTValue
直接用类型替换了我的嵌套案例类,然后修复了所描述的问题,但中断了读取数据。我无法想象我打算定义 2 个单独的模型来读取和写入数据。还是我在这里遗漏了一些明显的东西?
java - 在 java 上为 cassandra 设置 spark 需要一些帮助
在 java 上设置 spark 来访问 cassandra 会抛出 NoClassDefFoundError
添加了两个 jar 文件。spark-cassandra-connector-java-assembly-1.4.0-M1-SNAPSHOT.jar & spark-core_2.10-0.9.0-incubating.jar。spark-cassandra-connector-java-assembly-1.4.0-M1-SNAPSHOT.jar 是针对 scala 2.10 构建的。在显示 scala 代码运行器版本 2.11.6 的命令提示符下键入 scala -version。从 spark-shell 访问 spark 没有问题。即使从 spark-shell 访问 cassandra 列族也可以正常工作。
错误的原因可能是什么?
java - 使用 IN 子句过滤 Spark Cassandra 连接器
我面临一些关于 java 的 spark cassandra 连接器过滤的问题。Cassandra 允许使用 IN 子句按分区键的最后一列进行过滤。例如
我如何指定在 spark 的 CQL 查询中使用的 IN 子句?如何也可以指定范围查询?
java - java中spark cassandra连接器的问题
我正在尝试从 java 中的 spark 查询 cassandra。下面是获取数据的代码,但 mapToRow 方法需要两个参数。第一个是类,第二个是 ColumnMapper。如何在 java 中获取 ColumnMapper 类的实例。谷歌搜索它建议创建派生类 JavaBeanColumnMapper 的对象,但没有找到 JavaBeanColumnMapper 类应该如何实例化。
任何线索将不胜感激。