cassandra
文章平均质量分 56
a414129902
这个作者很懒,什么都没留下…
展开
-
Cassandra安装和cql测试
一:下载cassandrahttp://archive.apache.org/dist/cassandra/我用的是2.1.8,3.9需要java8wget http://archive.apache.org/dist/cassandra/2.1.8/apache-cassandra-2.1.8-bin.tar.gz二:解压tar -zxvf apache-cassand...原创 2016-12-06 16:28:28 · 254 阅读 · 0 评论 -
cassandra的写过程
Cassandra的写操作包含几个过程。从开始实时写日志到最后进行压缩。1、把数据写入commit log2、数据写入内存表memtable3、从memtable中刷新4、存储到磁盘中的sstables里5、压缩写日志和memtable存储当有一个写入发生,cassandra会把数据存到内存里叫memtable的数据结构里,也会写到磁盘的commitlog里,提供持久化存储。com...原创 2016-12-12 09:29:44 · 471 阅读 · 0 评论 -
Cassandra解决单个磁盘损坏的情况
Cassandra一个节点的磁盘坏了,分两种情况,一种是节点还可以正常启动。另外一种是节点无法启动。第一种情况:节点还可以正常启动1、把坏的盘换掉,如果你没有新的盘去更换,你可以在cassandra.yaml里直接把坏的盘注释掉2、启动cassandra,如果启动的过程中报错,说找不到keyspace之类的,那你应该使用第二种情况的解决方案。3、使用nodetool repai...原创 2016-12-12 09:30:37 · 298 阅读 · 0 评论 -
Cassandra双中心节点要配置keepalive
在低流量的间隔,防火墙的设置会把长时间闲置的链接关闭,导致本地节点和其它datacenter的节点之间失去联系。链接闲置超时时间一般被网络管理员设置为60分钟。所以Cassandra在创建双中心的时候,中间传输数据会经常超时,如果你不设置系统的keepalive的话。配置系统的keepalive,首先通过sysctl -A | grep net.ipv4查看系统内核参数:n...原创 2016-12-12 09:30:49 · 217 阅读 · 0 评论 -
有关cassandra的存储引擎
Cassandra使用一个类似于日志结构的结合树(Log-Structured Merge Tree)的存储结构,不像传统关系数据库那样使用B-Tree。 Cassandra会避免在写之前去读。“写前读”(Read-before-write), 特别是在一个大的分布式系统里,会对读性能产生影响,还会带来其它问题,比如,两个客户端同时去读,其中一个去更新该行的A列,另外一个去更新该行的B列,...原创 2016-12-12 09:33:36 · 253 阅读 · 0 评论 -
cassandra日常维护之nodetool repair
前提cassandra的根据分区key的操作是很快的,这也是它的优势,但是它的多条件查询是很弱的,特别是如果你有删除操作的话,就更坑爹了。cassandra的删除操作,实际上并不是真的删除,它是执行的插入操作,插入的数据叫做tombstone(墓碑),记录了被删除记录的信息和删除时间。当你根据条件查询的时候,如果它会把满足条件的记录查询出来,包括tombstone。然后过滤掉删除的记录,再把结...原创 2016-12-13 11:19:27 · 993 阅读 · 0 评论 -
cassandra新版驱动,使用SchemaBuilder进行表的操作
在cassanda的官方驱动cassandra-driver-core-2.1.3.jar之前,创建表、修改表、创建索引操作,只能通过拼CQL语句,然后通过session去执行的方式。可能会经常导致语法格式错误。在最新版的驱动cassandra-driver-core-2.1.3.jar中,提供了一种更方便的对表的修改方式。类似于用于增删改查操作的com.datastax.driver.c...原创 2016-12-13 11:19:42 · 341 阅读 · 0 评论 -
译 - Cassandra 数据建模的基本规则
http://blog.csdn.net/bbaiggey/article/details/53033333原创 2016-12-13 11:22:26 · 109 阅读 · 0 评论 -
cassandra日常维护之nodetool cleanup
nodetool cleanup 官方的解释是:cassandra在扩容一个节点到新集群的时候,有些数据会复制一份到新节点,然后属于新节点的数据仍然存在那些老节点上。它自己不会主动的去删除。所以在每次扩容之后,你需要在每个老节点上执行cleanup操作。根据实践:cleanup操作在执行过程中可能会生成一些临时文件,并且导致IO利用率少许上升,机器负载少许增加,cleanup是单线程操作,...原创 2016-12-13 11:22:45 · 453 阅读 · 0 评论 -
cassandra如何扩容和替换一个节点
增加一个节点和替换一个DOWN掉的节点,步骤都是一样的,只是启动参数不一样。第一:准备一个新机器,cassandra的配置使用和集群中一个普通节点相同的配置。第二:然后就可以启动了,增加一个节点,只要bin/cassandra 启动就可以了。如果是替换一个节点(假设DOWN掉的节点ip=192.168.1.101),启动的时候,可以使用bin/cassandra -Dcassand...原创 2016-12-13 11:23:27 · 672 阅读 · 0 评论 -
cassandra如何分离一个表或者一个keyspace到新集群
cassandra数据迁移有好多种方法,只要你的sstable文件没有丢失,这里只讲述两种常见易用的方式:第一种方式:copy命令使用方法:适用于数据量小的情况下。使用方式:copy mykeyspace.mytable to ‘/home/db.csv’这样就成功的把表mytable以csv的格式导出到了db.csv文件。然后再另外一个集群中,建一个一模一样的表,然后...原创 2016-12-16 14:48:27 · 159 阅读 · 0 评论 -
Cassandra – 数据结构设计概念和原则
http://www.justinablog.com/archives/902原创 2016-12-16 14:49:20 · 154 阅读 · 0 评论 -
Cassandra – 数据库启动和访问
http://www.justinablog.com/archives/877原创 2016-12-16 14:52:22 · 201 阅读 · 0 评论 -
cassandra官方关于二级索引的解释
什么时候使用一个索引cassandra的内建索引适合这样一个表,它有好多列都包含这个索引列的值。这个索引列有更多的值,你的开销越大,主要是对查询和维护索引。例如假设你有一个播放列表的表里面有数十亿首歌曲。很多歌曲可能有共同的艺术家。这个艺术家的列就比较适合作为索引。什么情况不适合使用索引不要在以下情况使用索引:这列的值很多的情况下,因为你相当于查询了一个很多条记录,得到一个很...原创 2016-12-09 15:05:29 · 719 阅读 · 0 评论 -
cassandra的索引查询和排序
cassandra的索引查询和排序cassandra的查询虽然很弱,但是它也是支持索引和排序的,当然是简陋的查询,这一切都是为了追求性能的代价,所以要使用cassandra,你不能希望它完全适用你的逻辑,而是把你的逻辑设计的更适合cassandra。第一:索引查询cassandra是支持创建二级索引的,索引可以创建在除了第一个主键之外所有的列上,当然有些类型除外,例如集合类型。例如...原创 2016-12-09 15:04:42 · 351 阅读 · 0 评论 -
关于cassandra集群的数据一致性问题
cassandra集群要求严格的时间同步,有一点同步就会发生这样那样的问题,这个事情我已经在cassandra集群要求严格的时间同步里说明了,所以时间同步是cassandra集群的前提。cassandra使用的是最后一致性模型,也就是说一开始的并发更新的数据可能是不一致的,但是经过这段不一致的时间之后,系统会达到最终的一致性。让每个客户端看到的结果是一样的。这个最终一致性的强度,在cas...原创 2016-12-07 13:18:16 · 940 阅读 · 0 评论 -
Cassandra中的各种策略
1. 背景介绍 Cassandra 使用分布式哈希表(DHT)来确定存储某一个数据对象的节点。在 DHT 里面,负责存储的节点以及数据对象都被分配一个 token。token 只能在一定的范围内取值,比如说如果用 MD5 作为 token 的话,那么取值范围就是 [0, 2^128-1]。存储节点以及对象根据 token 的大小排列成一个环,即最大的 token 后面紧跟着最小的 tok...原创 2016-12-07 13:51:04 · 117 阅读 · 0 评论 -
cassandra多个数据中心实现异地容灾
cassandra是集群部署,多个节点,多个数据备份,一两个节点挂掉,一般不会有数据丢失。只要删除当掉的节点,对其它节点进行repair,数据都会自动均衡到完整的份数。但是如果大面积节点掉电,或者机房着火那就肯定要丢失数据了,使用cassandra作为数据存储的业务,肯定是很大的业务,数据量超大的那种。机房容灾肯定是必不可少的。cassandra提供多种多数据中心部署、机架敏感策略。这里...原创 2016-12-07 14:01:30 · 1347 阅读 · 0 评论 -
cassandra的连接池配置
cassandra的连接池配置cassandra的datastax驱动使用的是异步nio实现的,发出去的请求,不会阻塞线程,当有响应的时候会通知你。所以cassandra客户端和服务器之间不需要太多的连接,因为发送一个请求是很快的,只要一个线程不断监听响应就可以了。cassandra的配置方式如下:PoolingOptions poolingOptions = new Pooling...原创 2016-12-07 14:06:54 · 635 阅读 · 0 评论 -
java实现cassandra的增删改查
cassandra使用cql语言作为操作语言,cassandra在2.0之后,在操作上越来越像sql数据库的操作,这样想从传统关系型数据库,切换到cassandra的花,上手成本也越来越低。使用官方java驱动操作cassandra 非常简单。maven引入驱动包 <dependency><groupId>com.datastax.cassandra&l...原创 2016-12-08 11:15:06 · 219 阅读 · 0 评论 -
cassandra2.0 如何实现分页查询
本文用到的cassandra的版本是2.0.6版1、前提和约束CREATE TABLE test(a INT,b INT,c INT, d string,e string,PRIMARY KEY(a,b,c));CREATE INDEX ON test(d); cassandra的查询具有以下约束:第一主键 只能用=号查询第二主键 支持= > < >= &...原创 2016-12-08 11:15:29 · 380 阅读 · 0 评论 -
怎么设置nodetool使用用户名密码访问
cassandra的nodetool工具使用jdk的jmx和cassandra节点通信。nodetool是集群的重要管理工具。在cassandra2.0版本中,nodetool默认是允许远程访问,其不需要密码的。在cassandra2.1版本中,nodetool默认是只允许本机访问,很不方便,如果远程访问功能打开,又不安全,防止别人乱操作,好方法就是加上访问权限控制。第一步:打开远程访...原创 2016-12-08 11:16:53 · 271 阅读 · 0 评论 -
cassandra关于集合类型的操作
举例:create table test( a int, b list<text>, c set<text>, d map<text,text>, primary key(a)); 插入使用下面的形式insert into test(a,b,c,d) values(1,[‘listtext1′,’listtext2...原创 2016-12-08 11:17:56 · 119 阅读 · 0 评论 -
cassandra集群要求严格的时间同步
cassandra的集群对时间的要求是很严格的,在集群中的任何一台机器时间都必须保持同步,即便有一秒的延迟,也会带来莫名其妙的问题。因为cassandra是根据时间戳分辨出最后到达的响应,假设对同一个记录进行不同的操作,如果时间不同步,可能会导致前面的操作在后面的操作之后生效。当在高速操作的时候,可能会发生记录删除不掉,表drop了仍然存在等等奇怪的现象。同时如果发生这些形形色色的奇怪问题...原创 2016-12-08 11:20:33 · 442 阅读 · 0 评论 -
cassandra支持的查询表达式
本文介绍cassandra支持的,目前我所知道的所有查询表达式类型。如果你需要更复杂的查询,单单依靠cassandra是很难做到的,你需要借助其它手段或者工具。cassandra目前支持的表达式目前有三种:我们先假设我们的表结构是这样的: CREATE TABLE test(a INT,b INT,c INT,d INT,e INT,PRIMARY KEY(a,...原创 2016-12-09 14:18:35 · 522 阅读 · 0 评论 -
如何设置cassandra用户名和密码
适应于cassandra2.0以上的版本1、首先修改配置文件 cassandra.yaml把默认的authenticator: AllowAllAuthenticator运行所有人登录设置为用密码登录:authenticator: PasswordAuthenticator2、登录cassandra创建用户使用默认账户登录cassandra在bin目录下执行./cq...原创 2016-12-09 15:01:39 · 777 阅读 · 0 评论 -
cassandra如何删除一个节点
cassandra集群可能有好多机器,这么多机器肯定有宕机的几率,而且机器越多,几率越大,当发生宕机的时候,你如何删除一个节点呢?本文仅适应使用了vnodes的cassandra集群,怎么判断是否用了vnodes呢? 主要看你的cassandra.yml配置文件中,是否配置了initial_token,如果没有配置,就是使用了vnodes。使用了vnodes,删除了节点之后它会自己均衡数据...原创 2016-12-09 15:02:39 · 1215 阅读 · 0 评论 -
Cassandra – 理解关键概念和数据模型
http://www.justinablog.com/archives/882原创 2016-12-16 14:52:36 · 156 阅读 · 0 评论