Cassandra介绍
Apache Cassandra(社区内一般简称为C*)是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于改善电子邮件系统的搜索性能的简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式架构于一身。Facebook于2008年将 Cassandra 开源,此后,由于Cassandra良好的可扩展性和性能,被 Apple, Comcast,Instagram, Spotify, eBay, Rackspace, Netflix[8]等知名网站所采用,成为了一种流行的分布式结构化数据存储方案。
分布式
Cassandra集群
基本流程:点对点分布式系统,集群中各节点平等,数据分布于集群中的各节点,各节点间每秒交换一次信息。
每个节点的commit log提交日志捕获写操作来确保数据持久性。数据先被写入MemTable(内存中的数据结构),待MemTable满后数据被写入SSTable(硬盘的数据文件)。
所有的写内容被自动在集群中partition分区并replication复制。
库表结构:Cassandra数据库面向行。用户可连接至集群的任意节点,通过类似SQL的CQL查询数据。
集群中,一个应用一般包含一个keyspace,一个keyspace中包含多个表。
读写请求:客户端连接到某一节点发起读或写请求时,该节点充当客户端应用与拥有相应数据的节点间的coordinator协调者以根据集群配置确定环(ring)中的哪个节点应当获取这个请求。
Cassandra集群描述
集群中所有主机部署步骤与配置一模一样,区别在于集群中前三台为seed节点,在cassandra配置文件cassandra.yaml中会对种子节点及监听节点单独配置,细节在配置过程中会提到。
Cassandra依赖
Cassandra-2.1之前依赖于Python2.6,但是Cassandra2.2+之后必须使用Python2.7,同时Cassandra3.0+必须使用JDK8+。 由于CentOS6.7自带python2.6及JDK7,首先将python及JDK升级。
热门跟贴