Apache Cassandra 是一个高度可伸缩的分区行存储。行用主键key组织成表.
Partitioning 的意思是Cassandra可以在应用程序透明的情况下将数据分布到多台机器上。 Cassandra 将在添加和从集群中删除机器时自动重新分区。
Row store 的意思是就像关系数据库一样, Cassandra 按行和列组织数据。 Cassandra查询语言(CQL)是SQL的近亲。
查看更多信息, 请查看 the Apache Cassandra web site.
-
注释掉了一些cassandra需要去官方下载一些文件的代码,改为直接读取本地的文件。
-
修改了FileAuditLogger写入sql带有换行符,导致数据不是一条的问题。
-
默认分发包配置会自动打开FileAuditLogger
-
v4.1.1.1 分支修改了AuditLogger数据直接发送写入elasticsearch。表对应es的索引。
-
v4.1.1.1 分支在cassandra.yaml 增加 配置 es_node_listhttps://xxx 配置交换数据的es集群节点的9200端口服务地址。
-
v4.1.1.1 完善了数据写入 elasticsearch 的逻辑 测试数据
-
v4.1.1.3 cassandra.yaml 增加 配置,配置哪些表需要同步到elasticsearch
-
v4.1.1.3 修改同步到elasticsearch 的索引名称为 keyspace+"-"+表名
-
v4.1.1.6 这个版本完全是为了集成到 opensearch 里边做的修改,作为 opensearch 的一个子项目。单独使用慎用。
-
v4.1.1.8 版本 去掉了
sync_keyspace:
和sync_es_table:
两个配置,增加表属性WITH syncEs=true;
。但是这个配置写在内存,服务重启后需要重新写入。 第二是在创建表的时候,会主动向elasticsearch 创建 索引,获取elasticsearch 集群节点数量,平均分配主分片和副本数量,保证所有的分片均衡分配到所有节点上。
这个简短的指南将引导您完成一个基本的单节点集群 和运行, 并演示一些简单的读写。 有关更完整的指南,请参阅 Apache Cassandra website’s Getting Started Guide.
$ tar -zxvf apache-cassandra-$VERSION.tar.gz $ cd apache-cassandra-$VERSION
cqlsh> CREATE KEYSPACE schema1 WITH replication = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }; cqlsh> USE schema1; cqlsh:Schema1> CREATE TABLE users ( user_id varchar PRIMARY KEY, first varchar, last varchar, age int ); cqlsh:Schema1> INSERT INTO users (user_id, first, last, age) VALUES ('jsmith', 'John', 'Smith', 42); cqlsh:Schema1> SELECT * FROM users; user_id | age | first | last ---------+-----+-------+------- jsmith | 42 | john | smith cqlsh:Schema1>
写入数据的操作界面大概就是下图这个样子的。
如果没有出现其他问题,那么一个单节点的安装就完成了!
有关CQL的更多的信息, 可以查看 the CQL reference。
一种合理的理解方式是,"SQL减去连接和子查询,加上集合。"
举例 节点一的配置:
cluster_name: Test Cluster ## 集群名字,集群内的所有节点要全部一样。 - seeds: "ip1:7000,ip2:7000,ip3:7000" ## 集群内所有节点的通信地址和端口,默认的端口是7000 listen_address: ip1 ## 这个节点绑定的对外IP地址 rpc_address: ip1 ## 传输地址 # es 节点 列表 # es_node_list: http://ip1:9200,http://ip2:9200,http://ip3:9200 es_node_list:
本来是希望把同步配置,保留在元数据里边,但是with配置,集群间不共享,只是在内存里边 存储了一个hashMap。
所以只能恢复到 sync_es_table:
这个配置。
默认是同步到es的,但是如果配置上表名,就不同步了。
配置例子:keyspace名字.表名
-
加入 #cassandra 在 ASF Slack 并且提问
-
通过发送邮件到订阅用户邮件列表 [email protected]
-
查看 community section 了解 Cassandra 更多信息.
-
查看 development section 了解如何进行构建。