CASSANDRA - 技术教程文章

Cassandra代替Redis?【图】

最近用Cassandra的又逐渐多了,除了之前的360案例,在月初的QCon Shanghai 2013 篱笆网也介绍了其使用案例。而这篇百万用户时尚分享网站feed系统扩展实践文章则提到了Fashiolista和Instagram从Redis迁移到Cassandra的案例。考虑到到目前仍然有不少网友在讨论最近用Cassandra的又逐渐多了,除了之前的360案例,在月初的QCon Shanghai 2013 篱笆网也介绍了其使用案例。而这篇百万用户时尚分享网站feed系统扩展实践文章则提到了Fashio...

Cassandra研究报告

1基本安装 1.1在基于RHEL的系统中安装Cassandra 1.1.1必要条件 ? YUM包管理器 ? Root或sudo权限 ? JRE6或者JRE7 ? JNA(Java native Access)(生产环境需要) 1.1.2步骤 ? 安装配置JRE(略) ? 添加软件包仓库到YUM的软件库 将以下内容添加进/etc/yum.repos.d/d1基本安装 1.1在基于RHEL的系统中安装Cassandra 1.1.1必要条件 ? YUM包管理器 ? Root或sudo权限 ? JRE6或者JRE7 ? JNA(Java native Access)(生产环境需要) 1.1.2步骤...

Cassandra分布式NoSQL数据库安装部署指导

Apache Cassandra是一套开源分布式 Key-Value 存储系统。它最初由 Facebook 开发用于储存特别大的数据。Cassandra适合于实时事务 Apache Cassandra是一套开源分布式 Key-Value 存储系统。它最初由 Facebook 开发用于储存特别大的数据。Cassandra适合于实时事务处理和提供交互型数据。Cassandra的数据模型是基于列族(Column Family)的四维或五维模型。它借鉴了 Amazon 的 Dynamo 和 Googles BigTable 的数据结构和功能特点,采用 ...

在Apache Cassandra中改变VNodes数量的影响

在我们进行深入探讨之前,需要注意的是,一旦一个节点已经加入了集群,num_tokens这个设置参数就不应该再有任何的改变。因为这样会使得该节点在重启时将发生故障。 ?一个数据中心中所有节点的num_tokens值应该是一样的。从过去来说,异构的集群是允许有不同的num_tokens值的。虽然这种情况很少见,我们也不推荐这么做——但从理论上讲,如果节点的硬件规格提升两倍,你是可以将num_tokens的值加倍的。 ?另外,一个数据中心的节点的...

Cassandra nodetool详解【代码】

Cassandra自带一个nodetool工具,安装目录/bin/nodetool nodetool help:帮助信息[cassandra@node3 bin]$ ./nodetool help usage: nodetool [(-p <port> | --port <port>)] [(-h <host> | --host <host>)][(-pwf <passwordFilePath> | --password-file <passwordFilePath>)][(-pw <password> | --password <password>)][(-u <username> | --username <username>)] <command> [<args>]The most commonly used nodetool commands a...

java-如何处理Cassandra中的竞赛条件?【代码】

我正在使用Cassandra db开发一个简单的Spring Boot微服务. 我的服务器在Subscription类中的主要实体如下:public final class Subscription {private String id;private String firstUser;private String secondUser;private String firstUserStatus;private String secondUserStatus;}我的存储库使用Subscription对象并将其持久化.但是在坚持之前,我应该检查一些约束条件,主要是不能有另一个具有相同firstUser和secondUser的订阅....

python-Cassandra / Pycassa:get_slice()/ get_indexed_slice()失败,并出现TApplicationException:未知结果【代码】

当通过Pycassa从Cassandra获取行时,有时会出现TApplicationException:get_slice失败:结果未知). 我无法重现此异常,也找不到有关此问题的任何文档.现在,我将Cassandra作为单个节点运行(用于开发),并且总是在发生大量并发请求的环境中引发Exception.我想知道原因是否是性能问题,或者是否与其他问题有关(因此,我想知道在生产中运行多个节点时它是否可能消失?). Cassandra版本为1.0.7,日志的输出如下:[DEBUG 17:45:58,253 Thrift t...

java-奇怪的Cassandra ReadTimeoutExceptions,取决于正在查询的客户端【代码】

我有三个带有或多或少默认配置的Cassandra节点的集群.最重要的是,我有一个Web层,其中包含两个用于负载平衡的节点,两个Web节点始终在查询Cassandra.一段时间后,由于存储在Cassandra中的数据变得不平凡,因此只有一个Web节点开始针对特定查询获取ReadTimeoutException. Web节点在各个方面都是相同的. 查询非常简单(?是日期的占位符,通常在当前时刻之前几分钟):SELECT * FROM table WHERE time > ? LIMIT 1 ALLOW FILTERING;该表是使...

java-获取Cassandra选择查询的完整结果

根据Cassandra文档,使用execute来获取选择查询的结果并不能保证返回完整的结果.ResultSet execute(Statement statement) Executes the provided query.This method blocks until at least some result has been received fromthe database. However, for SELECT queries, it does not guarantee thatthe result has been received in full. But it does guarantee that someresponse has been received from the database, and in ...

c#-将DateTime保存到Cassandra Date列【代码】

Cassandra .NET驱动程序文档真是太糟糕了,我试图将一些功能拼凑在一起,但我浪费大量时间试图从发现的Java文档中更改代码. 我正在尝试使用Cassandra驱动程序将数据写入一个简单的表.该表已经存在,并且里面有日期.我创建了一个映射并添加了一些列.这是演示的简化版本:For<Profile>().TableName("profiles").PartitionKey(p => p.IntegerId).Column(p => p.IntegerId, cm => cm.WithName("profileid")).Column(p => p.BirthDate, cm ...

java-Apache Spark无法处理大型Cassandra列系列【代码】

我正在尝试使用Apache Spark处理我的大型(?230k条目)cassandra数据集,但是我经常遇到各种错误.但是,当在约200个数据集上运行时,我可以成功运行应用程序.我有一个包含3个节点的Spark设置,其中有1个主节点和2个worker,并且2个worker还安装了一个cassandra群集,其索引索引的复制因子为2.我的2个spark作业在Web界面上显示2.4 GB和2.8 GB的内存,我在运行应用程序时将spark.executor.memory设置为2409,以获得4.7 GB的组合内存.这是我的We...

javascript-Cassandra DB的查询结果【代码】

我正在创建一个基于Cassandra的Web应用程序:到目前为止使用Play Framework.我通过Java驱动程序与Cassandra连接,但是如何将查询结果嵌入到前端?详细信息:我有一个“用户”列族,并且想要在页面上显示“所有用户”.是否可以将查询结果嵌入HTML或JavaScript中?还是有其他通用的方法? 在此先感谢并加油!解决方法:典型的方法是从可以动态构建网页的服务器提供网页. Java的一个示例是提供网页,这些网页最初是由您的服务器(例如tomca...

java-Cassandra上已准备好的语句的最大数量【代码】

Backgound:我们正在使用Cassandra存储一些时间序列数据,并且正在使用准备好的语句来访问数据. 我们通过以下方式对表中的数据进行分区: >时间段(例如一周或一个月),以及>保留政策(例如1年,5年或10年) 对于不同的表,我们需要为查询,时间段和保留策略的每种组合准备(仅在使用时)不同的语句,因此,准备好的语句数量将激增.一些数学:timePeriods = 12..52 * yearsOfData maxNumOfPrepStatements = timePeriods * policies * numOfQuer...

java-每个搜索cassandra lucene索引的多个过滤器【代码】

有没有办法使用多个过滤器(使用生成器)进行cassandra lucene索引搜索? 这是我正在做的事的一个例子:// Age Filter conditionsToFilter.add(range("age").lower(indexFormatDate(preferences.getAgeMax())).upper(indexFormatDate(preferences.getAgeMin())).includeLower(true).includeUpper(true).docValues(DOC_VALUES));// Height Filter conditionsToFilter.add(range("height").lower(preferences.getHeightMin()).upper(pr...

Cassandra 3.4 Java LIKE运算符【代码】

现在,Cassandra 3.4通过自定义索引提供了LIKE运算符. 在我的使用cqlsh的测试示例中,它与SELECT * FROM table WHERE indexed_column LIKE’%VALU%’类似,可以正常工作.我已经建立了一个索引,并且它的所有功能都完美无缺. 如何在具有动态值的Java驱动程序(我正在使用3.0.2版)中执行此操作?当使用像这样的文字值时,我的查询可以使用QueryBuilder并使用PreparedStatements(PS示例,但QueryBuilder也可以使用文字值):PreparedStateme...

ARM64计算机上的Cassandra启动失败(java.lang.NoClassDefFoundError:无法初始化com.sun.jna.Native类)【代码】

当我尝试在运行64位oracle JDK的ARM64计算机上启动cassandra 3.9和3.7时.但是它无法从没有找到类定义错误开始. JNA似乎有问题. 但是,同样可以在ARM32机器上正常运行. 以下是cassandra的启动日志:- pi @ DietPi:?/ cassandra / apache-cassandra-3.9 / conf $../bin/cassandra -fCompilerOracle: dontinline org/apache/cassandra/db/Columns$Serializer.deserializeLargeSubset (Lorg/apache/cassandra/io/util/DataInputPlus;Lo...

java-Spring Cassandra模型映射【代码】

我有一张桌子如下col1 text, col2 timestamp, col3 text, col4 text, col5 text, col6 date, col7 time,我不知道如何为上表创建一个bean类.到目前为止,我已经使用以下键创建了一个bean.但这不起作用@PrimaryKey String col1;Date col2;String col3;String col4;String col5;Date col6;String col6;请帮助我处理Spring中的Cassandra数据类型,例如时间戳,时间和日期.解决方法: ┌───────────┬─────────────...

java-新的Cassandra绑定语句getDate方法

在一个有点遗留的项目中,我们在Spring应用程序中使用了cassandra驱动程序的版本2.这个版本,特别是类BoundStatement公开了一个方法getDate,该方法返回一个JavaDate.我们都知道旧的Java日期api非常可怕,但是当谨慎使用时,它确实起作用了. 现在,由于某些必要,我们决定将cassandra驱动程序升级到版本3.4.首先要注意的是,在此版本中,相同的方法getDate现在返回类型为LocalDate的日期,datastax团队实现了该日期以补充Java的日期.有关该类...

在Java Maven项目中通过Spark在Cassandra中查询数据【代码】

我正在尝试做一个简单的代码,在其中创建模式,插入一些表,然后提取一些信息并将其打印出来.但是,我遇到了错误.我正在使用Datastax cassandra spark连接器.我一直在使用这两个示例来帮助我尝试完成此任务: https://gist.github.com/jacek-lewandowski/278bfc936ca990bee35a http://www.datastax.com/documentation/developer/java-driver/1.0/java-driver/quick_start/qsSimpleClientAddSession_t.html 但是,第二个示例不使用cassan...

python-默认情况下使用uuid时,Cassandra TimeUUID溢出文件描述符【代码】

我有Cassandra模型import uuid from cassandra.cqlengine import columns from cassandra.cqlengine.models import Modelclass MyModel(Model):......created_at = columns.TimeUUID(primary_key=True,clustering_order='DESC',default=uuid.uuid1)......最近的应用程序达到了uuid1 creation doesn’t close files – hits file descriptor limit.我试图找到解决方案,但似乎我认为哪些选项可能行不通 >默认情况下,用uuid4替换uuid1...

java-如何在同一spring boot应用程序中配置neo4j和cassandra存储库【代码】

我已经使用spring-data使用spring boot分别配置了neo4j和cassandra存储库.但是,当我尝试在同一项目中使用两个存储库时,它无法按预期工作. 这是我的文件夹结构. —– org.test.project-----controllerBarControllerFooController-----models-----dao-----cassandraBarDAOFooDAO-----neo4jBarDAOFooDAO-----repositories-----cassandraBarRepositoryFooRepository-----neoBarRepository FooRepository-----servicesCassandraService ...

我安装了Java 7后,cassandra 2抱怨Java 7【代码】

$cassandra Cassandra 2.0 and later require Java 7 or later.好的,init脚本的那部分发生了什么?java_ver_output=`"${JAVA:-java}" -version 2>&1`jvmver=`echo "$java_ver_output" | awk -F'"' 'NR==1 {print $2}'` JVM_VERSION=${jvmver%_*} JVM_PATCH_VERSION=${jvmver#*_}if [ "$JVM_VERSION" \< "1.7" ] ; thenecho "Cassandra 2.0 and later require Java 7 or later."exit 1; fi嗯,如果我从命令行获取版本:$java_ver_ou...

无法使用DataStax Python驱动程序远程连接到Cassandra【代码】

我无法远程(从我的笔记本电脑)连接到Cassandra(在EC2节点上运行).当我为Cassandra使用DataStax Python驱动程序时:from cassandra.cluster import Cluster cluster = Cluster(['10.X.X.X'], port=9042) cluster.connect()我明白了:Traceback (most recent call last):File "/Users/user/virtualenvs/test/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 3035, in run_codeexec(code_obj, self.user_global...

java – 读取cassandra中的行和反序列化问题【代码】

我想从列族中获取所有行并显示所有列.我试过这个:// Static import of HFactory!// First, insert the data Mutator<String> mutator = HFactory.createMutator(fKeyspace, fStringS); mutator.insert("fahrer1", "Fahrer", createStringColumn("first", "John")); mutator.insert("fahrer2", "Fahrer", createStringColumn("first", "Vorname")); mutator.insert("fahrer2", "Fahrer", createStringColumn("second", "Nachname")...

Datastax Cassandra Native Java Driver – 使用Query Builder是否具有性能优势?

使用新的本机驱动程序,可以使用字符串或通过QueryBuilder类构造CQL查询. 我想知道驱动程序如何处理使用QueryBuilder构造的语句.它是否向协调器节点传输已解析查询的表示,还是仅将构造的查询作为字符串传输? 我问的原因是因为我们以结构化格式指??定查询.将此格式转换为基于文本的CQL比使用QueryBuilder更容易,但如果值得,我们会这样做. 从本质上讲,我的问题归结为:在驱动程序或节点上解析CQL的位置是什么?解决方法:CQL全部在Cas...

从Java应用程序获取数据到Cassandra 2的最快方法是什么?【代码】

我已经尝试过DataStax Java驱动程序,它似乎是插入数据的最快方法是组成一个内联所有参数的CQL字符串. 这个循环在我的测试集群上需要2500ms左右:PreparedStatement ps = session.prepare("INSERT INTO perf_test.wibble (id, info) VALUES (?, ?)") for (int i = 0; i < 1000; i++) session.execute(ps.bind("" + i, "aa" + i));参数内联的相同循环大约是1300ms.如果有很多参数会变得更糟.我知道我可以使用批处理同时插入所有行但这...

python – Cassandra错误’NoneType’对象在导入csv时没有属性’datacenter’【代码】

我已经建立了一个包含3个节点的cassandra集群. 我试图使用复制命令进行简单的导出/导入,但它失败并出现以下错误:cqlsh:walmart> select * from test;store | date | isholiday | dept -------+------------+-----------+------1 | 22/04/1993 | False | 1cqlsh> use walmart; cqlsh:walmart> copy test to 'test.csv'; 'NoneType' object has no attribute 'datacenter'我研究了错误,每个相关链接似乎都指出了python...

java – 避免使用Cassandra 2.1警告触发器目录不存在

创建一个新的Cassandra并执行简单的插入会导致意外警告:SharedPool-Worker-1] WARN o.apache.cassandra.utils.FBUtilities – Trigger directory doesn’t exist, please create it and try again.检查源接口,Cassandra期望触发器目录(默认名称“触发器”)存在. 由于我每次都开始一个新的Cassandra,我想知道如何建议Cassandra创建触发器目录本身.我不想人为地摸索它. [更新] Cassandra使用默认的main方法,并在用户空间中启动.因为...

java – 通过spring配置查询Cassandra查询【代码】

有什么简单的方法可以通过xml配置打开cassandra上的查询日志记录吗?我正在使用命名空间:xmlns:cassandra="http://www.springframework.org/schema/data/cassandra"但我找不到任何合适的解决方案.我试图通过cqlsh打开跟踪,但它不适用于我的应用程序. 我还试图添加线:<logger name="com.datastax.driver.core.QueryLogger.NORMAL" level="TRACE" />但也行不通. 我的版本:弹簧数据卡桑德拉-1.4.0cassandra:2.1.5解决方法:请查看此...

java – Cassandra表中快速估计的行数【代码】

我很惊讶以前没有提出这个问题. 假设我们在cassandra中有一个巨大的表,我们需要在其中获得估计的行数(不精确,只是近似). 显然,从表中选择简单计数(*)效率不高,可能需要很长时间.我们需要一些又脏又快的东西. Datastax博客建议the following:I don’t care about the exact number, can I have a ballpark estimate? Because Cassandra knows how many rows there are in each SSTable it ispossible to get an estimate. The ‘no...