一、Cassandra简介

Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。其主要功能比Dynamo (分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型)。Cassandra最初由Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以Amazon专有的完全分布式的Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型。P2P去中心化的存储。很多方面都可以称之为Dynamo 2.0。

二、安装与配置

  • 解压安装包
tar -zxvf apache-cassandra-3.11.3-bin.tar.gz -C ~/training/
  • 设置环境变量
CASSANDRA_HOME=/root/training/apache-cassandra-3.11.3
export CASSANDRA_HOME
PATH=$CASSANDRA_HOME/bin:$PATH
export PATH
  • 将以下三个地址设置为Linux相应的IP
listen_address: 192.168.56.111
rpc_address: 192.168.56.111
- seeds: "192.168.56.111"
  • 启动Cassandra
注意:要以root用户启动Cassandra,需要使用-R参数。
命令:cassandra -R
  • 验证Cassandra运行环境:nodetool工具
命令:nodetool status

从Cassandra 2.1版本开始,日志和数据都被存放在logs和data的子目录下。老版本默认保存在/var/log/cassandra和 /var/lib/cassandra。

三、Cassandra的配置参数

核心配置文件:conf/cassandra.yaml,启动过程中的日志信息如下图所示:

  • 主要的运行时参数
cluster_name: 集群的名称
storage_port:节点内部通信的端口(默认: 7000)
listen_address:Cassandra绑定的、用来连接其他Cassandra节点的IP地址或者主机名称。(默认: localhost)
native_transport_port:客户端监听CQL本地传输的端口(默认: 9042)
  • 目录相关的参数
data_file_directories:这个目录位置就是表数据存储的地方(在SSTables里)。Cassandra将数据均匀的分布在这个位置,受配置的压缩策略粒度的限制。
commitlog_directory:这个目录是commit log 存放的地方。为了获得最佳的写入性能,将commit log放在单独的磁盘分区,或者(理想情况下)和data文件目录分开的物理设备上。commit log只能追加的。
saved_caches_directory:这个目录是table key和row缓存存放的地方。默认位置:$CASSANDRA_HOME/data/saved_caches
hints_directory:设置hints的存储位置(默认: $CASSANDRA_HOME/data/hints)

四、Cassandra的基本操作

(一)登录CQL客户端:cqlsh localhost

  • 查看表system.local的结构:

  • 查询系统的信息:

  • 查看表空间:describe keyspaces;

  • 查看已有表:describe tables;

  • 查看表结构:describe table table_name;

(二)使用Cassandra的Java客户端

Cassandra使用cql语言作为操作语言,Cassandra在2.0之后,在操作上越来越像sql数据库的操作,这样想从传统关系型数据库,切换到Cassandra的话,上手成本也越来越低。使用官方java驱动操作Cassandra非常简单。maven引入相关的依赖如下所示:

<dependency>
<groupId>info.archinnov</groupId>
<artifactId>achilles-core</artifactId>
<version>6.0.0</version>
<classifier>shaded</classifier>
</dependency>

下面执行CRUD操作:

【赵渝强老师】NoSQL数据库之Cassandra基础的更多相关文章

  1. 基于列存储的开源分布式NoSQL数据库Apache Cassandra入门分享

    @ 目录 概述 定义 特性 与Hbase对比 Cassandra使用场景 术语 架构 概览 Dynamo 数据集分区使用令牌环的一致性哈希 存储引擎 部署 单实例部署 集群部署 CQL 概述 数据模型 ...

  2. 关于 NoSQL 数据库你应该了解的 10 件事

    四分之一个世纪以来,关系型数据库(RDBMS)一直是主流数据库模型.但是现在非关系型数据库,“云”或者“NoSQL”数据库,正在作为一种替代数据库模型获得越来越多的占有率.本文中我们将关注非关系型 N ...

  3. Atitit.nosql api 标准化 以及nosql数据库的实现模型分类差异

    Atitit.nosql api 标准化 以及nosql数据库的实现模型分类差异 1. 常用的nosql数据库MongoDB  Cassandra1 1.1. 查询> db.blogposts. ...

  4. 开源软件:NoSql数据库 - 图数据库 Cassandra

    转载原文:http://www.cnblogs.com/loveis715/p/5299495.html Cassandra简介 在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了 ...

  5. HBase与MongDB等NoSQL数据库对照

    HBase概念学习(十)HBase与MongDB等NoSQL数据库对照 转载请注明出处: jiq•钦's technical Blog - 季义钦 一.开篇 淘宝之前使用的存储层架构一直是MySQL数 ...

  6. 10个出色的NoSQL数据库

    http://www.infoq.com/research/nosql-databases?utm_source=infoqresearch&utm_campaign=lr-homepage ...

  7. NoSQL数据库之国产开源产品:SequoiaDB 分析前言

    随着互联网技术的发展,面对海量数据的存储和分析,传统关系型数据库已经无法满足,由此衍生出一种与关系型数据库区别开的数据库NoSQL(Not Only SQL). 国外做的比较成熟的NoSQL有Mong ...

  8. HBase概念学习(十)HBase与MongDB等NoSQL数据库对照

    转载请注明出处: jiq•钦's technical Blog - 季义钦 一.开篇 淘宝之前使用的存储层架构一直是MySQL数据库,配合以MongDB,Tair等存储. MySQL因为开源,而且生态 ...

  9. [转载] nosql 数据库的分布式算法

    原文: http://juliashine.com/distributed-algorithms-in-nosql-databases/ NoSQL数据库的分布式算法 On 2012年11月9日 in ...

  10. [转载]12款免费与开源的NoSQL数据库介绍

    Naresh Kumar是位软件工程师与热情的博主,对于编程与新事物拥有极大的兴趣,非常乐于与其他开发者和程序员分享技术上的研究成果.近日,Naresh撰文谈到了12款知名的免费.开源NoSQL数据库 ...

随机推荐

  1. [rCore学习笔记 018]实现特权级的切换

    写在前面 本随笔是非常菜的菜鸡写的.如有问题请及时提出. 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 本节内 ...

  2. stream的优化:java封装的拆箱与装箱的弊端

    authors.stream() .map(author->author.getAge) .map(age->age+10)//Stream<Integer> .filter( ...

  3. 从web2的用户名密码登录到web3的钱包签名认证

    Web2 都有哪些常用的认证场景 早期我们使用网页类 Web2 应用时,大多采用账号 + 密码的认证方式访问.为了方便很多网站设置的都是相同的密码(这很不安全). 随着移动应用的普及,慢慢我们习惯了手 ...

  4. 【Docker】05 容器操作

    [查看容器 Check Container] 查看所有容器: docker ps 查看所有正在运行的,或者运行过的容器: docker ps -a 查看单个指定的容器完整信息: docker insp ...

  5. 韩国网费比其他国家贵10倍?—— 因网费太高,直播平台 Twitch 宣布2024年2月退出韩国市场

    看新闻,说直播平台 Twitch因为韩国的网费太贵宣布退出韩国,这个新闻给我看纳闷了,从来么有听说过哪个视频或直播公司因为网费贵而关停,这个估计是这种原因关停的第一家吧,于是比较好奇. 相关: htt ...

  6. mujoco_py 运行example报错:ERROR: GLEW initalization error: Missing GL version ——— 解决方法

    mujoco的安装与mujoco_py的安装参见: https://www.cnblogs.com/devilmaycry812839668/p/16004320.html mujoco_py安装成功 ...

  7. SMU Summer 2023 Contest Round 15

    SMU Summer 2023 Contest Round 15 A. AB Balance 其实就只会更改一次 #include <bits/stdc++.h> #define int ...

  8. 你还在手动操作仓库?这款 CLI 工具让你效率飙升300%!

    前言 作为一名开发者,我经常会在 GitHub 和 Gitee 上 fork 各种项目.时间一长,这些仓库就会堆积如山,变成了"垃圾仓库".每次打开代码托管平台,看到那些不再需要的 ...

  9. 关于Arrays.asList返回List无法新增和删除?

    关于Arrays.asList返回的List无法新增和删除? 这个是在写项目的时候发现的,然后就分析了一下源码,得其内部原理 复现代码示例: public class ArraysAsList { p ...

  10. Tesla 开发者 API 指南:BLE 密钥 – 身份验证和车辆命令

    注意:本工具只能运行于 mac 或者 linux, win下不支持. 1. 克隆项目到本地 https://github.com/teslamotors/vehicle-command.git 2. ...