广告
返回顶部
首页 > 资讯 > 数据库 >NoSQL数据库 Cassandra(一)
  • 346
分享到

NoSQL数据库 Cassandra(一)

2024-04-02 19:04:59 346人浏览 八月长安
摘要

   随着互联网技术的发展,对数据存储的要求越来越高,在容量、安全性、备份、高可用性等方面都有很高的需求,很受欢迎的关系型数据库有sqlServer、Mysql、Orcale等,非关系型

   随着互联网技术的发展,对数据存储的要求越来越高,在容量、安全性、备份、高可用性等方面都有很高的需求,很受欢迎的关系型数据库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,Namenodehdfs)。 部署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的互联网公司

国外:

  • eBay:200+TB,400+M写,100+M读,应用场景:商品详情页上的Social Signals,如Like,Want,Own,Favorites等;用户和商品的hunch taste graph;时间序列如移动通知,反作弊,soa,监控日志服务等;

  • Netflix:包含288+96+60个实例的大规模集群,每秒110万的写操作,3个AWS EC2 美国东部region的zone自动复制副本,总计330万写操作/秒;

  • Apple:75000+ nodes, 10s  of PBs,Millions ops/s, largest cluster 1000+ nodes

国内:

  • 360  从公开的资料看,应该有至少1500台服务器的集群。360选用cassandra的原因如下:团队人员少,需求紧,选择开源项目;无单点,无中心,适合在线业务;代码易懂,团队成员有代码基础;社区比较活跃。

  • 杭州同盾科技  具体使用量暂不清楚,只知道底层的数据存储等架构主要基于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、常见安装方式

  • 二进制安装 

  • 源码安装

  • yum 等包管理器安装

    安装指导网页:http://cassandra.apache.org/download/ 

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

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的操作,以及对表操作,增删改查,日常监控、安全与备份、高可用性集群等相关知识。


您可能感兴趣的文档:

--结束END--

本文标题: NoSQL数据库 Cassandra(一)

本文链接: https://www.lsjlt.com/news/44460.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • NoSQL数据库 Cassandra(一)
       随着互联网技术的发展,对数据存储的要求越来越高,在容量、安全性、备份、高可用性等方面都有很高的需求,很受欢迎的关系型数据库有SQLServer、MySQL、Orcale等,非关系型...
    99+
    2022-10-18
  • NoSQL 数据库
    NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动。NoSQL数据库的四大分类(1)键值(Key-Value)存储数据库   ...
    99+
    2022-10-18
  • NoSQL数据库一MongoDB基本使用
    如今的网站对数据存储要求越来越灵活,在这种需求下 NoSQL 也就是非关系数据库越来越流行。所谓非关系数据库,是指不使用 SQL 语言进行数据操作的数据库的统称。这类数据库存储数据时没有固定的模式,不支持数...
    99+
    2022-10-18
  • NoSQL数据库Cassandra和HBase与MongoDB在处理故障时候有哪些区别
    NoSQL数据库Cassandra和HBase与MongoDB在处理故障时候有哪些区别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  当...
    99+
    2022-10-18
  • 如何了解Cassandra数据库
    这篇文章给大家介绍如何了解Cassandra数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Cassandra数据库,值得介绍的技术细节其实挺多的。因为它很多实现思路和关系型数据库...
    99+
    2022-10-19
  • 如何用Python写一个NoSQL数据库
    这篇文章主要介绍“如何用Python写一个NoSQL数据库”,在日常操作中,相信很多人在如何用Python写一个NoSQL数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Python写一个NoSQL...
    99+
    2023-06-15
  • 使用PHP操作Cassandra数据库
    Cassandra是一个基于NoSQL的分布式数据库管理系统,可以支持处理大量数据。PHP作为一种流行的服务器端编程语言,可以用于操作Cassandra数据库。本篇文章将介绍如何使用PHP驱动程序和CQL来连接和操作Cassandra数据库...
    99+
    2023-05-16
    PHP 数据库操作 Cassandra
  • Cassandra数据建模
    1.  概述 Apache Cassandra将数据存储在表中,每个表都由行和列组成。CQL(Cassandra查询语言)用于查询存储在表中的数据。Apache Cassandra数据模型基于查询并针对查询进行了优化。Cassan...
    99+
    2019-01-28
    Cassandra数据建模
  • 如何使用PHP操作Cassandra数据库
    这篇“如何使用PHP操作Cassandra数据库”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用PHP操作Cassan...
    99+
    2023-07-06
  • Nosql里典型的数据库
    Nosql里典型的数据库Redis对网站服务器进行写入传统关系式数据库无法过多的写入对数据库要求:数据库高并发读写需求解决方案:(1:读写分离两台主如果同时写入会发生冲突(2:水平分割:关系式数据库数据之间...
    99+
    2022-10-18
  • 全方位认识HBase:一个值得拥有的NoSQL数据库(一)
    前言:说起HBase这门技术,在认知上对于稍微接触或使用过它的人来讲,可能只是百千数据库中一个很普通的库,大概就像我对Redis的认知一样:缓存嘛!可对于HBase,我确实是带着某些感情在的。今日突然萌生了一个生趣的想法,想抛开...
    99+
    2019-08-27
    全方位认识HBase:一个值得拥有的NoSQL数据库(一)
  • NoSQL数据库有哪些优点
    本篇内容主要讲解“NoSQL数据库有哪些优点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“NoSQL数据库有哪些优点”吧!1. 简介SQL:SQL是结构化查询语...
    99+
    2022-10-19
  • NoSQL数据库类型有哪些
    NoSQL数据库类型有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。优点和缺点由于Web应用程序和服务是NoSQL开发背后的主要驱动因...
    99+
    2022-10-18
  • nosql数据库有哪些特点
    这篇文章主要介绍了nosql数据库有哪些特点,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。nosql数据库的特点是:1、容易扩展;2、大数据...
    99+
    2022-10-18
  • PHP与NoSQL数据库的对比
    PHP和NoSQL数据库都是现今非常流行的技术,前者是一种流行的服务器端编程语言,后者则是一种非关系型数据库,主要用于处理半结构化和非结构化数据。PHP和NoSQL数据库分别在不同领域得到了广泛应用,但它们之间的对比究竟能够如何呢?本文将对...
    99+
    2023-05-15
    PHP NoSQL数据库 对比
  • 大数据NoSQL数据库HBase集群部署
    目录 1.  简介 2.  安装 1. HBase依赖Zookeeper、JDK、Hadoop(HDFS),请确保已经完成前面 2. 【node1执行】下载HBase安装包 3. 【node1执行】,修改配置文件,修改conf/hbase-...
    99+
    2023-10-23
    大数据 nosql hbase java 分布式 服务器
  • NoSQL数据库中怎么实现一个分布式算法
    NoSQL数据库中怎么实现一个分布式算法,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。数据一致性众所周知,分布式系统经常会遇到网络隔离或是延迟...
    99+
    2022-10-18
  • NoSQL:非关系型数据库分类
    NoSQL,全称 Not Only SQL,意为不仅仅是 SQL,泛指非关系型数据库。NoSQL 是基于键值对的,而且不需要经过 SQL 层的解析,数据之间没有耦合性,性能非常高。 非关系型数据库又可...
    99+
    2023-09-05
    nosql 数据库
  • 为什么会出现NoSql数据库
    NoSQL即Not-Only SQL是关系型数据库的良好补充 关系型数据库是基于关系模型提出来的数据库.那么什么是关系模型呢以行和列的方式二维表的方式存储数据的模型就是关系型数据库.例如:mysq...
    99+
    2022-10-18
  • NoSQL数据库的陷阱有哪些
    本篇内容介绍了“NoSQL数据库的陷阱有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Schema管理...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作