📅  最后修改于: 2020-11-22 09:08:21             🧑  作者: Mango
下面列出了最常见的Cassandra面试问题和答案。
Cassandra是一种流行的NOSQL数据库管理系统,用于处理大量数据。它是免费的开源分布式数据库,可提供高可用性而不会发生任何故障。
Cassandra用Java编写。它最初由Facebook设计,由灵活的架构组成。它对于大数据具有高度可扩展性。
Cassandra的原始作者是Avinash Lakshman和Prashant Malik。它最初是在Facebook上开发的,用于支持Facebook收件箱搜索功能。
Cassandra引入了自己的Cassandra查询语言(CQL)。 CQL是访问Cassandra的简单接口,是传统的结构化查询语言(SQL)的替代方法。
Cassandra将其数据存储在数据字典中。
Cassandra的主要设计目标是在多个节点上处理大数据工作负载而不会出现单点故障。
NoSQL数据库主要有4种类型:
这些是Cassandra数据模型的一些关键组成部分:-
Cassandra的其他一些组件是:
在Cassandra中,键空间是确定节点上数据复制的名称空间。一个集群每个节点包含一个密钥空间。
在Cassandra中,复合键用于定义键或具有不同类型数据串联的列名。 Cassandra中有两种复合键:
数据复制是将数据从一台计算机或服务器中的数据库电子复制到另一台计算机或服务器中的数据库,以便所有用户可以共享相同级别的信息。 Cassandra将副本存储在多个节点上,以确保可靠性和容错能力。复制策略决定放置副本的节点。
在Cassandra中,节点是存储数据的地方。
数据中心是集群的完整数据。
在Cassandra中,提交日志是崩溃恢复机制。每个写操作都会写入提交日志。
列族是RDMS中的一个表,其中包含行的有序集合。
Cassandra中的一致性指定如何同步和更新Cassandra数据行及其副本。
它支持两种一致性:最终一致性和强一致性。
当未对给定数据项进行任何新更新时,将使用最终一致性,所有访问最终都会返回最后更新的值。已知具有最终一致性的系统已实现副本收敛。
Cassandra支持以下条件以实现高度一致性:
R + W> N
这里
N:副本数
W:成功写入需要达成共识的节点数
R:成功读取需要达成共识的节点数
可调整的一致性是Cassandra的显着特征,使其成为受欢迎的选择。一致性是指所有副本上的最新数据行和同步数据行。 Cassandra的可调一致性可帮助用户选择最适合其用例的一致性级别。
CREATE KEYSPACE WITH
在Cassandra中,行的集合称为“列族”。
Cassandra通过应用两次提交来执行写函数:
Memtable是包含键和列格式内容的内存中/回写式缓存空间。在内存表中,数据按键排序,每个ColumnFamily都有一个不同的内存表,可通过键检索列数据。它存储写操作,直到写满,然后将其清空。
SSTable是“排序字符串表”的缩写。它引用Cassandra中的重要数据文件,并接受常规的书面内存表。它们存储在磁盘上,并存在于每个Cassandra表中。
一旦写入,SStables不允许进一步添加和删除数据项。 Cassandra为每个SSTable创建三个单独的文件,例如分区索引,分区摘要和Bloom筛选器。
DataStaxOpsCenter:它是针对Cassandra集群和DataStax的基于Internet的管理和监视解决方案。它是免费下载的,其中包括OpsCenter的附加版本。
SPM:SPM主要管理Cassandra指标以及各种OS和JVM指标。除了Cassandra之外,它还监视Hadoop,Spark,Solr,Storm,zookeeper和其他大数据平台。
SPM的主要功能是:
在Cassandra中,群集是键空间的最外层容器,该空间以环形格式排列节点并为它们分配数据。这些节点具有一个副本,在数据处理失败的情况下负责。
ALTER KEYSPACE用于更改DURABLE_WRITES及其相关属性的值。
Cqlsh是用于执行CQL(Cassandra查询语言)命令的Cassandra查询语言外壳。
节点:节点是一台运行Cassandra的计算机。
群集:群集是节点的集合,这些节点一起包含相似类型的数据。
数据中心:为不同地理区域的客户提供服务时,数据中心是一个有用的组件。群集的不同节点可以分组到不同的数据中心。
Cassandra CQL集合用于收集数据并将其存储在列中,其中每个集合代表相同类型的数据。 CQL包含三种类型的类型:
根据数据请求,在执行任何磁盘I / O之前,Bloom过滤器会检查所请求的数据是否存在于SSTable的行中。
在Cassandra中,要删除行,需要将column的值与Tombstone关联(其中Tombstone是一个特殊值)。
在Cassandra中,SuperColumn是包含相似数据收集的唯一元素。它们实际上是具有值作为列的键值对。
列和超级列之间的区别:
Hadoop,HBase,Hive和Cassandra都是Apache产品。
Apache Hadoop支持文件存储,通过Map reduce进行网格计算处理。 Apache Hive是Haddop顶部的类似SQL的界面。 Apache HBase遵循像Big Table一样构建的列系列存储。 Apache Cassandra还遵循像Big Table这样构建的具有Dynamo拓扑和一致性的列族存储。
在Cassandra中,void close()方法用于关闭当前会话实例。
cqlsh命令用于启动cqlsh提示符。
“ cqlsh-version”命令用于提供您正在使用的cqlsh的版本。
是。 Cassandra在Windows上兼容并且运行良好。现在可以使用其Linux和Window兼容版本。
在Cassandra中,Kundera是使用Java注释编写的对象关系映射(ORM)实现。
Thrift是用于与Cassandra服务器通信的RPC客户端的名称。
Hector是Cassandra的早期客户之一。这是一个使用MIT许可证用Java编写的开源项目。