文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

NoSQL数据库 Cassandra(一)

2024-04-02 19:55

关注

   随着互联网技术的发展,对数据存储的要求越来越高,在容量、安全性、备份、高可用性等方面都有很高的需求,很受欢迎的关系型数据库有SQLServer、MySQL、Orcale等,非关系型数据库有key、value型的Redis,Memcached,文档型数据库有MongoDB、CouchDB,还有列簇类型的Hbase、Cassandra。种类繁多,要学习的知识点越来越多,我们在技术选型时,必须遵循“没有最好的技术,只有最适合的技术”。因为业务的需要有的折腾新的技术,接下来将初步研究Cassandra的过程做一下笔记,以便后期查阅。

  1、初识Cassandra

  Apache Cassandra是高度可扩展的,高性能的分布式NoSQL数据库。 Cassandra旨在处理许多服务器上的大量数据,提供高可用性而无需担心单点故障。

  Cassandra具有能够处理大量数据的分布式架构。 数据放置在具有多个复制因子的不同机器上,以获得高可用性,而无需担心单点故障。

官网:http://cassandra.apache.org/     帮助文档:http://cassandra.apache.org/doc/latest/contactus.html 

目前主流的版本:Apache Cassandra 3.11  Apache Cassandra 3.0  

                              Apache Cassandra 2.2    Apache Cassandra 2.1

  目前没发现Cassandra比较新书籍,网上能搜到的Cassandra 实战  Cassandra 权威指南 是基于0.6与0.7,相对目前常用的版本已经很陈旧,所以当我们学习Cassandra 时,最好的方式是研究官方文档。

1.1  Cassandra与关系数据库比较

Cassandra关系数据库
Cassandra用于处理非结构化数据。RDBMS用于处理结构化数据。
Cassandra具有灵活的模式。RDBMS具有固定的模式。
在Cassandra中,表是“嵌套键值对”列表(行x列键x列值)。在RDBMS中,表是数组的数组(一行x列)
在Cassandra中,keyspace是包含与应用对应的数据的最外层的容器。在RDBMS中,数据库是包含与应用程序对应的数据的最外层的容器。
在Cassandra中,表或列族是键空间的实体。在RDBMS中,表是数据库的实体。
在Cassandra中,行是一个复制单元。在RDBMS中,行是单条记录。
在Cassandra中,列是一个存储单元。在RDBMS中,列是表示关系的属性。
在Cassandra中,使用集合来表示关系。在RDBMS中,有外键,连接等的概念。

  在MySQL等关系型数据库中,都有表和库的概念,不同类型的数据库中库的创建等方式都是不一样的,MySQL等关系型数据库必须先用CREATE语句创建数据库和表结构才能插入数据,而Redis中根据配置文件中数据库的个数,已经生成若干个数据库,只需要用SELECT切换即可。MongoDB又是特殊的一种特殊的数据库,里面没有表的概念是库和集合,在一定的情形下,不用自己创建,可以直接插入数据非常的便捷。Cassandra里面没有库的概念,里面是keyspace和表的实体。有些使用方法和MySQL等关系型数据库相似,有些地方两者又有很大的差距。

1.2  Cassandra与HBase比较

HBaseCassandra
HBase是基于Bigtable(Google)Cassandra基于DynamoDB(亚马逊)。 它最初是由前亚马逊工程师在Facebook开发的。 这是Cassandra支持多数据中心的原因之一。
HBase使用Hadoop基础架构(Zookeeper,NameNode,HDFS)。 部署Hadoop的组织必须具备Hadoop和HBase的知识。Cassandra与Hadoop分开开发,其基础工具和操作知识的要求与Hadoop不同。 然而,对于分析,许多Cassandra部署使用Cassandra + Storm(使用zookeeper)和/或Cassandra + Hadoop。
HBase-Hadoop基础工具有几个由Zookeeper,Name Node,HBase master和数据节点组成的“移动部件”,Zookeeper是集群的,自然是容错的。名称节点需要集群为容错。Cassandra使用单个节点类型。 所有节点相等并执行所有功能。 任何节点都可以作为协调器,确保没有Spof。 添加Storm或Hadoop当然会增加基础设施的复杂性。
HBase非常适合进行基于范围的扫描。Cassandra不支持基于范围的行扫描,这可能在某些用例中是有限制的。
HBase提供跨越一个HBase集群的异步复制。Cassandra随机分区提供了跨越单行的行复制。
HBase仅支持有序分区。Cassandra正式支持有序分区,但Cassandra没有生产用户使用有序分配,由于“热点”创建并操作困难等热点引起。
由于有序分区,HBase可以轻松地水平放置,同时还支持Rowkey范围扫描。如果数据存储在Cassandra的列中以支持范围扫描,Cassandra中行大小的实际限制是10兆字节。
HBase支持原子比较和设置,HBase支持一行内的事务。Cassandra不支持原子比较和设置。
HBase不支持单行读取负载平衡,一行只有一个区域服务器一次提供。Cassandra将支持单行读取负载平衡。
Bloom过滤器可用于HBase作为另一种形式的索引。Cassandra使用bloom过滤器进行键查找。
触发器由HBase中的协处理器功能支持。Cassandra不支持协处理器功能

   近年来随着大数据技术与产业链的发展,Hadoop、Spark、Storm等技术发展迅速,同时,好多做大数据相关的技术人员供不应求,身价翻了好多,让我这种屌丝好生羡慕。而HBase是大数据存储领域里的先锋和基石。扮演着非常重要的角色。但是整体架构的体量确实不小,整体的架构比Cassandra复杂很多,无形中加大了系统的复杂度和可维护性。

1.3  使用Cassandra的互联网公司

国外:

国内:

2、安装与实践 

1、环境需求

Installing Cassandra


Prerequisites
The latest version of Java 8, either the Oracle Java Standard Edition 8 or OpenJDK 8. To
verify that you have the correct version of java installed, type java -version.
For using cqlsh, the latest version of Python 2.7. To verify that you have
the correct version of Python installed, type python --version
根据官网知道文档需要java8以及python2.7的支持  现在好多生产环境已经都在使用CentOS7.X操作系
统了,而CentOS7.X是自带python2.7,我们自行检查一下,缺少python2.7和java8的情况,请自己安装
即可。

2、常见安装方式

二进制安装方式简答快捷,不需要编译,安装包下载后,对网络依赖比较低。

3、单机安装测试

操作系统:CentOS  7.1

Cassandra:Cassandra 3.11.1 

安装方式:yum安装  能够上网,

yum源信息:

/etc/yum.repos.d/cassandra.repo
[cassandra]
name=Apache Cassandra
baseurl=
gpgcheck=1
repo_gpgcheck=1
gpgkey=
安装
sudo yum install cassandra

启动服务
service cassandra start

服务开机启动
chkconfig cassandra on

Cassandra的相关内容比较多,后续再介绍常见的对keyspace的操作,以及对表操作,增删改查,日常监控、安全与备份、高可用性集群等相关知识。


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯