返回顶部
首页 > 资讯 > 数据库 >Cassandra简单介绍和二进制安装
  • 753
分享到

Cassandra简单介绍和二进制安装

Cassandra简单介绍和二进制安装 2021-09-21 00:09:20 753人浏览 无得
摘要

Cassandra简介: Apache Cassandra最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身Facebook于2

Cassandra简单介绍和二进制安装

Cassandra简介:

Apache Cassandra最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式架构于一身Facebook于2008将 Cassandra 开源

Apache Cassandra是一个高度可扩展的高性能分布式数据库,用于处理大量商用服务器上的大量数据,提供高可用性,无单点故障,是一种NoSQL类型的数据库。 

由于Cassandra良好的可扩展性,被Digg、Twitter等知名WEB 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。

Cassandra特点:

Cassandra因其卓越的技术特性而变得如此受欢迎。下面给出了Cassandra的一些特性:

  • 弹性可扩展性 - Cassandra是高度可扩展的; 它允许添加更多的硬件以适应更多的客户和更多的数据根据要求。

  • 始终基于架构 - Cassandra没有单点故障,它可以连续用于不能承担故障的关键业务应用程序。

  • 快速线性性能 - Cassandra是线性可扩展性的,即它为你增加集群中的节点数量增加你的吞吐量。因此,保持一个快速的响应时间。

  • 灵活的数据存储 - Cassandra适应所有可能的数据格式,包括:结构化,半结构化和非结构化。它可以根据您的需要动态地适应变化的数据结构

  • 便捷的数据分发 - Cassandra通过在多个数据中心之间复制数据,可以灵活地在需要时分发数据。

  • 事务支持 - Cassandra支持属性,如原子性,一致性,隔离和持久性(ACID)。

  • 快速写入 - Cassandra被设计为在廉价的商品硬件上运行。 它执行快速写入,并可以存储数百TB的数据,而不牺牲读取效率。

Cassandra架构:

Cassandra的设计目的是处理跨多个节点的大数据工作负载,而没有任何单点故障。

Cassandra在其节点之间具有对等分布式系统,并且数据分布在集群中的所有节点之间。

  • 集群中的所有节点都扮演相同的角色。 每个节点是独立的,并且同时互连到其他节点。

  • 集群中的每个节点都可以接受读取和写入请求,无论数据实际位于集群中的何处。

  • 当节点关闭时,可以从网络中的其他节点提供读/写请求。

Cassandra中的数据复制

在Cassandra中,集群中的一个或多个节点充当给定数据片段的副本。

如果检测到一些节点以过期值响应,Cassandra将向客户端返回最近的值。

返回最新的值后,Cassandra在后台执行读修复以更新失效值。

下图显示了Cassandra如何在集群中的节点之间使用数据复制,以确保没有单点故障的示意图。

 注 Cassandra在后台使用Gossip协议,允许节点相互通信并检测集群中的任何故障节点。

Gossip协议是一个通信协议,一种传播消息的方式,灵感来自于:瘟疫、社交网络等。

使用Gossip协议的有:Redis Cluster、Consul、Apache Cassandra等。

Cassandra的组件:

Cassandra的关键组件如下:

  • 节点 - 它是存储数据的地方。

  • 数据中心 - 它是相关节点的集合

  • 集群 - 集群是包含一个或多个数据中心的组件。

  • 提交日志 - 提交日志是Cassandra中的崩溃恢复机制。每个写操作都写入提交日志。

  • Mem- - mem-表是存储器驻留的数据结构。提交日志后,数据将被写入mem表。有时,对于单列族,将有多个mem表。

  • SSTable - 它是一个磁盘文件,当其内容达到阈值时,数据从mem表中刷新。

  • 布隆过滤器 - 这些只是快速,非确定性的算法,用于测试元素是否是集合的成员。它是一种特殊的缓存。 每次查询后访问Bloom过滤器。

JAVA&Cassandra安装:

环境条件:

  • Cassandra 3.0及更高版本需要Java 8u40或更高版本。
  • Java 8的最新版本,即oracle Java Standard Edition 8Openjdk 8。要验证您是否安装了正确的Java版本,请输入。java -version
  • 对于使用cqlsh,最新版本的python 2.7。要验证您是否安装了正确的Python版本,请输入。python --version

创建用户和组:

在开始时,建议为Cassandra创建一个单独的用户,这样可以不使用root达到权限隔离。

[root@tse3 Cassandra]# /usr/sbin/groupadd -g 10001 cassandra
[root@tse3 Cassandra]# /usr/sbin/useradd -u 10001 -g cassandra cassandra
[root@tse3 Cassandra]# id cassandra
uid=10001(cassandra) gid=10001(cassandra) groups=10001(cassandra)
[root@tse3 Cassandra]# passwd cassandra
[root@tse3 Cassandra]# chown -R cassandra:cassandra /Cassandra
[root@tse3 Cassandra]# chmod -R 775 /Cassandra

ssh设置和密钥生成:

需要SSH设置才能在集群上执行不同的操作,例如启动,停止和分布式守护程序shell操作。

要对Cassandra的不同用户进行身份验证,需要为Cassandra用户提供公钥/私钥对,并与不同的用户共享。

以下命令用于使用SSH生成键值对:

  • 将公共密钥表单id_rsa.pub复制到authorized_keys,
  • 并提供所有者,
  • 分别对authorized_keys文件的读写权限。
[root@tse3 Cassandra]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory "/root/.ssh".
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:PEWPzRcxD/BVBiuJTHdMtQtlp7O7uqSpBTQ8HSpsqQw root@tse3
The key"s randomart image is:
+---[RSA 2048]----+
|          + o+Xo=|
|     . o * O =.X |
|  E   = * * * = .|
|   o o + +   o . |
|    o   S     + .|
|         o   + o |
|          . o o  |
|         . +   o |
|        ..o oo+o |
+----[SHA256]-----+
[root@tse3 .ssh]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[root@tse3 .ssh]# chmod 775 ~/.ssh/authorized_keys

验证SSH:

[root@tse3 .ssh]# ssh localhost

安装JAVA环境:

Java是Cassandra的主要先决条件。 首先,您应该使用以下命令验证系统中是否存在Java:

[root@tse3 ~]# java -version
-bash: java: command not found

如果您的系统中没有Java,请按照以下步骤安装Java。

以下链接下载JDK8:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

Cassandra 3.0及更高版本需要Java 8u40或更高版本

我这边下载了最新版的:jdk-8u241-linux-x64.tar.gz

我这边是下载了tar包上传到服务器,因为服务器下载速度太慢了

[root@tse3 downloads]# wget Https://download.oracle.com/otn-pub/java/jdk/14+36/076bab302c7b4508975440c56f6cc26a/jdk-14_linux-x64_bin.tar.gz

下载好的包,解压:

[root@tse3 downloads]# tar -zxvf jdk-8u241-linux-x64.tar.gz

移动jdk到/usr/local下面,对所有用户可用:

[root@tse3 downloads]# mv jdk1.8.0_241 /usr/local/

要设置PATH和JAVA_HOME变量:

export JAVA_HOME=/usr/local/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre

将更改生效:

[root@tse3 lib]# source ~/.bash_profile

输入命令查询java版本,出现如下代表装成功:

[root@tse3 bin]# java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

 

安装Cassandra:

先创建相关目录

[root@tse3 /]# mkdir -p /var/lib/cassandra/{data,commitlog,saved_caches}
设置读写权限:
[root@tse3 /]# chmod 777 /var/lib/cassandra
[root@tse3 /]# chmod 777 /var/log/cassandra
[root@tse3 /]# chown -R cassandra:cassandra /cassandra/
[root@tse3 /]# chmod -R 777 /cassandra/

设置环境变量

[root@tse3 bin]# vim ~/.bash_profile 
export CASSANDRA_HOME=/cassandra
export PATH=$PATH:$CASSANDRA_HOME/bin
[root@tse3 bin]# source ~/.bash_profile 

先从官方网站获取最新的tar包,我这里是按照3.11版本,已经获取到地址了

[root@tse3 downloads]# wget https://www.apache.org/dyn/closer.lua/cassandra/3.11.6/apache-cassandra-3.11.6-bin.tar.gz

解压下载的tar包

[root@tse3 downloads]# tar -zxvf apache-cassandra-3.11.6-bin.tar.gz

创建一个Cassandra目录,然后移动数据到这个目录下

[root@tse3 downloads]# mv apache-cassandra-3.11.6/* /cassandra/

配置Cassandra:

注意:如果您从deb或rpm包安装了Cassandra,配置文件将位于Cassandra的/etc/cassandra目录中。

我的是二进制安装方法,所以配置文件在/conf里面。

用vi或者vim打开cassandra.yaml文件。验证以下配置。 默认情况下,这些值将设置为指定的目录。

[root@tse3 conf]# vim cassandra.yaml 
[root@tse3 conf]# pwd
/Cassandra/conf
#存储数据的目录,如果未设置则默认目录为$CASSANDRA_HOME/data/data. data_file_directories: - /var/lib/cassandra/data #提交日志,如果未设置,则默认目录为$CASSANDRA_HOME/data/commitlog. commitlog_directory: /var/lib/cassandra/commitlog #保存缓存,如果未设置,默认目录$CASSANDRA_HOME/data/saved_caches. saved_caches_directory: /var/lib/cassandra/saved_caches
cluster_name:集群的名称。
seeds:用逗号分隔的群集种子IP地址列表。
storage_port注意:您不一定需要更改此设置,但请确保没有防火墙阻止此端口。
listen_address:节点的IP地址,这是允许其他节点与此节点通信的地址,因此更改它很重要。或者,您可以设置listen_interface告诉Cassandra使用哪个接口,以及连续使用哪个地址。仅设置一个,而不要同时设置两个。
native_transport_port:对于storage_port,请确保此端口未被防火墙阻止,因为客户端将在此端口上与Cassandra通信。
data_file_directories:数据文件所在的一个或多个目录。
commitlog_directory:提交日志文件所在的目录。
saved_caches_directory:保存的缓存所在的目录。
hints_directory:提示所在的目录。
出于性能原因,如果您有多个磁盘,请考虑将提交日志和数据文件放在不同的磁盘上。

启动Cassandra:

进入Cassandra主目录

[root@tse3 bin]# pwd
/cassandra/bin
[root@tse3 bin]# cassandra -f -R

 

CQLSH使用连接测试:

cqlsh是用于通过CQL(Cassandra查询语言)与Cassandra交互的命令行外壳。

它随每个Cassandra软件包一起提供,可以在cassandra可执行文件旁边的bin/目录中找到。

cqlsh利用Python本机协议驱动程序,并连接到命令行上指定的单个节点。

使用cqlsh,你可以

  • 定义模式,
  • 插入数据,
  • 执行查询。
[root@tse3 bin]# cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.6 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh> 

记录的Shell命令

下面给出了Cqlsh记录的shell命令。这些是用于执行任务的命令,如显示帮助主题,退出cqlsh,描述等。

  • HELP -显示所有cqlsh命令的帮助主题。

  • CAPTURE -捕获命令的输出并将其添加到文件。

  • CONSISTENCY -显示当前一致性级别,或设置新的一致性级别。

  • COPY -将数据复制到Cassandra并从Cassandra复制数据。

  • DESCRIBE -描述Cassandra及其对象的当前集群。

  • EXPAND -纵向扩展查询的输出。

  • EXIT -使用此命令,可以终止cqlsh。

  • PAGING -启用或禁用查询分页。

  • SHOW -显示当前cqlsh会话的详细信息,如Cassandra版本,主机或数据类型假设。

  • SOURCE -执行包含CQL语句的文件。

  • TRACING -启用或禁用请求跟踪。

CQL数据定义命令

  • CREATE KEYSPACE -在Cassandra中创建KeySpace

  • USE -连接到已创建的KeySpace。

  • ALTER KEYSPACE -更改KeySpace的属性。

  • DROP KEYSPACE -删除KeySpace

  • CREATE TABLE -在KeySpace中创建表。

  • ALTER TABLE -修改表的列属性。

  • DROP TABLE -删除表。

  • TRUNCATE -从表中删除所有数据。

  • CREATE INDEX -在表的单个列上定义新索引

  • DROP INDEX -删除命名索引。

CQL数据操作指令

  • INSERT -在表中添加行的列。

  • UPDATE -更新行的列。

  • DELETE -从表中删除数据。

  • BATCH -一次执行多个DML语句。

CQL字句

  • SELECT -此子句从表中读取数据

  • WHERE -where子句与select一起使用以读取特定数据。

  • ORDERBY -orderby子句与select一起使用,以特定顺序读取特定数据。

 

您可能感兴趣的文档:

--结束END--

本文标题: Cassandra简单介绍和二进制安装

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

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

猜你喜欢
  • Cassandra简单介绍和二进制安装
    Cassandra简介: Apache Cassandra最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身Facebook于2...
    99+
    2021-09-21
    Cassandra简单介绍和二进制安装
  • Mysql数据库简单安装(二进制)
    二进制安装: [root@lufengcentos ~]# mkdir /home/lufeng/tools -p [root@lufengcentos ...
    99+
    2024-04-02
  • MySQL - 安装、连接、简单介绍
    1、安装 MySQL8.0 安装MySQL 8.0的步骤,以 Windows 为例: 1.1 下载MySQL Installer: 需要从MySQL官方网站下载MySQL Installer。在下载页面中,选择适用于Windows的MySQ...
    99+
    2023-08-16
    mysql 数据库
  • mysql5.6单实例安装(二进制)
    1.下载二进制安装包 mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz tar -xvf mysql-5.6.39-linux-glibc2.12-x86_64.tar....
    99+
    2024-04-02
  • mysql5.7单实例安装(二进制)
    1.下载二进制安装包 mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz tar -xvf mysql-5.7.21-linux-glibc2.12-x86_64.tar....
    99+
    2024-04-02
  • protobuf简单介绍和ubuntu 16.04环境下安装教程
    protobuf简单介绍       protobuf是谷歌的开源序列化协议框架,结构类似于XML,jsON这种,显著的特点是二进制的,效率高,主要用于通信协议和数据存储...
    99+
    2022-06-04
    protobuf简单介绍 protobuf ubuntu 16.04安装
  • 简单介绍mysql5.6的编译安装方法
    下面一起来了解下mysql5.6的编译安装方法,相信大家看完肯定会受益匪浅,文字在精不在多,希望mysql5.6的编译安装方法这篇短内容是你想要的。mysql wget http://dev.my...
    99+
    2024-04-02
  • redis简单介绍及安装使用小结
    一:redis介绍 Redis和Memcached类似,也属于k-v数据存储 Redis官网redis.io, 当前最新稳定版4.0.1 支持更多value类型,除了和string外,还支持hash、li...
    99+
    2024-04-02
  • MySQL权限控制的简单介绍
    这篇文章主要介绍“MySQL权限控制的简单介绍”,在日常操作中,相信很多人在MySQL权限控制的简单介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL权限控制的简单...
    99+
    2024-04-02
  • mysql5.6.20二进制安装
    1把105的/usr/local/mysql拷过去2. 把105的/etc/my.cnf拷过去3. mkdir /data/mysql/{data,tmp,binlog,log}-p4. 初始化 ...
    99+
    2024-04-02
  • Mysql二进制安装
    Mysql安装安装步骤1、新建用户groupadd mysqluseradd -r -g mysql mysqlcd /usr/local/----------------------------注意路径c...
    99+
    2024-04-02
  • mysql8.0 二进制安装
    博客只为记录学习过程。不喜勿喷mysql社区版:开源 免费,不提供技术支持,需要配合开源工具来使用。mysql企业版:和社区版本代码一样,通过插件提供额外功能特性,比社区版本增加线程插件,审计插件。等额外的...
    99+
    2024-04-02
  • Node.js和Express简单入门介绍
    仅仅入门如何用Node.js和Express搭建一个web服务器,没有说明太多概念性的东西。 一、 Nodejs简介 ​ ==Node是JavaScript语言的服务器运行环境。== ̴...
    99+
    2022-06-04
    入门 简单 Node
  • C# FileStream简单介绍和使用
    FileStream 是 C# 中用于操作文件的类,它提供了一种以字节为单位读取和写入文件的功能。使用 FileStream,可以实...
    99+
    2023-08-08
    C#
  • Redis安装入门简明介绍
    Redis数据库安装: 在ubuntu下: 1.下载数据库 wget http://download.redis.io/releases/redis-4.0.9.tar.gz [最后是版本,根据需要调整...
    99+
    2024-04-02
  • 简单介绍Java垃圾回收机制
    Java的内存分配与回收全部由JVM垃圾回收进程自动完成。与C语言不同,Java开发者不需要自己编写代码实现垃圾回收。这是Java深受大家欢迎的众多特性之一,能够帮助程序员更好地编写Java程序。这篇教程是系列第一部分。首先会解释基本的术语...
    99+
    2023-05-30
    java 垃圾回收机制 ava
  • MySQL 5.7.22 二进制安装
    MySQL 5.7.22 二进制安装 一、到官网下载mysql-5.7.22二进制包 二、创建mysql用户: useradd mysql -s /sbin/nologin -M 三、解压m...
    99+
    2024-04-02
  • MySQL 8.0.13 二进制安装
    MySQL 8.0 二进制安装大致与MySQL 5.7 类似 1.查询删除原有mysql使用rpm -qa | grep mysql 或mariadb 搜索 mysql,如果存在,使用rpm -e --no...
    99+
    2024-04-02
  • MySQL 5.7 二进制安装
    MySQL 在Linux 下的安装方式有 yum 、二进制 、源码安装,yum安装比较简单,这里不再介绍, 二进制版本要求不高,适用于测试用,若是线上环境,还请使用源码安装。这里主要介绍二进制安装。...
    99+
    2024-04-02
  • centos7+mysql5.7二进制安装
    一、优化部分1、操作系统参数调优2、数据库参数调优3、防火墙设置等二、安装部分1、创建用户和组# groupadd mysql # useradd -g m...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作