我是Cassandra的新手 - 我一直在单个节点上搜索与Cassandra中的提交和崩溃恢复相关的信息.而且,希望有人能澄清细节.
我正在测试Cassandra - 所以,将它设置在一个节点上.我在datastax上使用stresstool插入数百万行.如果出现电气故障或系统关闭会发生什么?在Cassandra重新启动时,Cassandra内存中的所有数据都会被写入磁盘(我猜commitlog充当中介)吗?这个过程需要多长时间?
谢谢!
我在6节点集群上使用DataStax Cassandra 1.2.3,每个集群都有四核3GHz处理器和8GB RAM.最近,我开始使用VNodes功能,首先将num_tokens设置为256,然后设置为128.我观察到我正在使用的架构的性能下降[写入请求数/秒].我主要有一个规范化的模式,混合使用宽表和计数器列族.
是否有人观察到使用VNodes的性能下降?是否有任何已知的优化技术可以更好地利用VNode?
对于给定的硬件配置/节点,是否可以为num_tokens导出最佳值?
此外,我看到群集几乎平衡,一个节点自动占用更高的负载份额,尽管我有一个同类群集.在使用VNode之前,我会手动平衡Murmer3Partitioner的集群,性能很好.
谢谢,VS
有没有人知道如何在使用amazon ec2 M3.Xlarge机器的集群中使用Datastax enterprise(使用opscenter)?当我尝试使用这些类型的实例(使用ssd)时,我收到以下错误:启动实例失败.指定的节点大小无效
如果我使用M1.Xlarge它可以正常工作.
我使用的是spark 0.91与MLlib 0.91上DSE
尝试在独立模式下运行以下代码时
val parsedData = sc.parallelize((1 to 1000).
map {
line =>
LabeledPoint(0.0, Array(0.0, 0.4, 0.3))
})
val numIterations = 2
val model = LinearRegressionWithSGD.train(parsedData, numIterations)
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
14/09/20 14:28:37 ERROR OneForOneStrategy: org.jblas.DoubleMatrix cannot be cast to org.jblas.DoubleMatrix
java.lang.ClassCastException: org.jblas.DoubleMatrix cannot be cast to org.jblas.DoubleMatrix
at org.apache.spark.mllib.optimization.GradientDescent$$anonfun$runMiniBatchSGD$1$$anonfun$2.apply(GradientDescent.scala:150)
at org.apache.spark.mllib.optimization.GradientDescent$$anonfun$runMiniBatchSGD$1$$anonfun$2.apply(GradientDescent.scala:150)
at org.apache.spark.rdd.RDD$$anonfun$6.apply(RDD.scala:677)
at org.apache.spark.rdd.RDD$$anonfun$6.apply(RDD.scala:674)
at org.apache.spark.scheduler.JobWaiter.taskSucceeded(JobWaiter.scala:56)
at org.apache.spark.scheduler.DAGScheduler.handleTaskCompletion(DAGScheduler.scala:846)
at org.apache.spark.scheduler.DAGScheduler.processEvent(DAGScheduler.scala:601)
Run Code Online (Sandbox Code Playgroud)
只有在尝试运行独立应用程序时才会发生这种情况.它适用于火花壳(dse spark).有任何想法吗?
更新:
当我在REPL上创建一个对象时,getClassLoader返回:
scala> new org.jblas.DoubleMatrix().getClass().getClassLoader()
res3: ClassLoader = ModuleClassLoader:Analytics
Run Code Online (Sandbox Code Playgroud)
但是当我在独立模式下运行(使用spark类)时,它会返回
new org.jblas.DoubleMatrix().getClass().getClassLoader():
class= SystemClassLoader …Run Code Online (Sandbox Code Playgroud) 我正在使用cassandra-connector将数据从cassandra分区读取到spark.我尝试了以下解决方案来读取partitions.I尝试通过尽可能多地创建rdds来并行化任务,但解决方案ONE和解决方案TWO都具有相同的性能.
在解决方案ONE中,我可以立即看到spark UI中的各个阶段.我试图在解决方案TWO中避免一个for循环.
在解决方案TWO中,阶段在相当长的时间之后出现.随着用户ID的数量增加,在阶段出现在解决方案TWO的火花UI中之前,时间显着增加.
Version
spark - 1.1
Dse - 4.6
cassandra-connector -1.1
Setup
3 - Nodes with spark cassandra
Each node has 1 core dedicated to this task.
512MB ram for the executor memory.
Run Code Online (Sandbox Code Playgroud)
我的cassandra表架构,
CREATE TABLE test (
user text,
userid bigint,
period timestamp,
ip text,
data blob,
PRIMARY KEY((user,userid,period),ip)
);
Run Code Online (Sandbox Code Playgroud)
val users = List("u1","u2","u3")
val period = List("2000-05-01","2000-05-01")
val partitions = users.flatMap(x => period.map(y => (x,y))))
val userids = 1 to 10
for (userid <- userids){ …Run Code Online (Sandbox Code Playgroud) 我有一个场景,我将接收由我的火花流程序处理的流数据,并且每个间隔的输出将附加到我现有的cassandra表中.
目前我的火花流程序将生成一个数据框,我需要保存在我的cassandra表中.我目前面临的问题是当我使用下面的命令时,我无法将数据/行附加到我现有的cassandra表中
dff.write.format("org.apache.spark.sql.cassandra").options(Map("table" -> "xxx", "yyy" -> "retail")).save()
Run Code Online (Sandbox Code Playgroud)
我已阅读以下链接http://rustyrazorblade.com/2015/08/migrating-from-mysql-to-cassandra-using-spark/,他将mode ="append"传递给save方法但其抛出语法错误
此外,我还能够从以下链接了解我需要修复的位置 https://groups.google.com/a/lists.datastax.com/forum/#!topic/spark-connector-user/rlGGWQF2wnM
如何解决这个问题需要帮助.我正在scala中编写我的spark流媒体作业
cassandra datastax-enterprise apache-spark spark-streaming apache-spark-sql
我们在我们的盒子上安装了DataStax Cassandra社区服务器3.0.2,创建了几个键空间,我们将一些数据从旧数据库迁移到Cassandra(Aroudnd 10GB数据).虽然这就是我们materialized views在这些表上创建的迁移.在创建之后的几分钟(不确定到多长时间),我们获得了我们的服务(部署在2个数据中心架构中的~2x3节点上)随机停止,绝对没有关于它停止的原因的日志信息.之后我们尝试启动服务,我们的日志中出现以下错误
java.lang.RuntimeException: Cache schema version a2c390a1-f2cd-3d59-8b5c-a0a1d794d0fe does not match current schema version 8d1347d7-7729-3698-8537-4b91ae9ce7dd
at org.apache.cassandra.cache.AutoSavingCache.loadSaved(AutoSavingCache.java:198) ~[apache-cassandra-3.0.2.jar:3.0.2]
at org.apache.cassandra.cache.AutoSavingCache$3.call(AutoSavingCache.java:157) [apache-cassandra-3.0.2.jar:3.0.2]
at org.apache.cassandra.cache.AutoSavingCache$3.call(AutoSavingCache.java:153) [apache-cassandra-3.0.2.jar:3.0.2]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_66]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_66]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_66]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66]
Run Code Online (Sandbox Code Playgroud)
我们试图查看可能导致这种情况发生的代码.这给了我们一些关于它的原因的信息 - 显然服务试图将当前模式版本与缓存中存在的模式匹配(我会假设它在服务停止/创建物化视图之前)我们非常肯定我们没有除了创建物化视图之外,还可以对键空间进行任何架构更改.
那么是什么让我想知道过去没有人报告任何类型的问题?所以我们不确定自己出了什么问题.我们在cleanup节点上运行了nodetool 而没有任何帮助.我们不想丢失任何数据.我们正在尝试恢复,因此我们删除了$CASSANDRA_HOME\data\saved_caches文件夹并重新启动了服务.启动服务器时,它正在重播提交日志,这需要很长时间.我想这可能是由于我们拥有的数据量或机器完全消失而需要更换?
任何与该问题相关的指针可能都非常有用!先感谢您.
如果它可能有所帮助,我们在Windows机器上运行DataStax Cassandra Server并将Cassandra作为Windows服务运行.
设置:
我们有3个节点Cassandra集群,每个节点上的数据大约为850G,我们为Cassandra数据目录设置LVM(目前包含3个驱动器800G + 100G + 100G),并为cassandra_logs提供单独的卷(非LVM)
版本:
Cassandra v2.0.14.425
DSE v4.6.6-1
问题:
在每个节点上的LVM中添加第三个(100G)卷后,所有节点的磁盘I/O都非常高,而且它们经常停机,服务器也无法访问,我们需要重启服务器,服务器不要t稳定,我们需要每隔10-15分钟重新启动一次.
其他信息:
我们
在每个节点上的所有节点RAM上配置了DSE推荐的服务器设置(vm.max_map_count,文件描述符):每个节点上24G
CPU:每个节点上有6个核心/ 2600MHz
磁盘:1000G(数据目录)/ 8G(日志) )
cassandra datastax-enterprise datastax cassandra-2.0 datastax-startup
我试图在我的本地启动DSE 5.0.1 Cassandra(单节点).
得到以下错误:
CassandraDaemon.java:698 - 如果snitch的数据中心(Cassandra)与以前的数据中心(Graph)不同,则无法启动节点.请修复snitch配置,停用并重新启动此节点或使用标志-Dcassandra.ignore_dc = true
我正在从 Datastax (DSE) Cassandra 迁移到 Apache Cassandra 3.11。
我有一个包含 7 个 Datastax (DSE) Cassandra 节点的集群。
有没有办法创建新的 apache Cassandra 集群并将其连接到 DSE Cassandra,以便我的写入同时发送到 DSE 和 Apache cassandra
因此,一旦我的数据开始在 Cassandra 中写入,我就可以将我的读取 API 逐渐从 DSE 迁移到 Apache。