
Cassandra
文章平均质量分 64
zxfBdd
这个作者很懒,什么都没留下…
展开
-
cassandra导出和导入数据
cassandra像其他RDBMS一样提供了export/import工具:cqlsh命令COPY TO/FROM 注意这不是cql命令。使用这组命令可以在cassandra与其他RDBMS或cassandra之间迁移数据。COPY TO/FROM支持CSV文件格式以及标准输出和输入。 COPY TO/FROM命令同样支持集合数据类型。 sstable2json/json2ss...转载 2020-04-20 15:06:27 · 2687 阅读 · 0 评论 -
cassandra datastax驱动程序抛出的写入超时
在进行大量数据加载时,基于日志数据增加计数器,但是遇到超时异常。我正在使用Datastax 2.0-rc2 Java驱动程序。这是服务器无法跟上问题的问题(即服务器端配置问题),还是客户端无聊的等待服务器响应的问题?无论哪种方式,我都可以进行简单的配置更改来解决此问题吗?Exception in thread "main" com.datastax.driver.core.exceptions.WriteTimeoutException: Cassandra timeout during ...转载 2021-03-11 20:07:29 · 915 阅读 · 0 评论 -
Cassandra - prepared statements discarded in the last minute because cache limit reached
版权INFO[ScheduledTasks:1] 2019-11-04 11:01:19,755QueryProcessor.java:139 - 49 prepared statements discarded in the last minute because cache limit reached (32899072 bytes)prepared_statements_cache_size_mb:Maximum size of the native prot...转载 2021-03-11 14:04:55 · 335 阅读 · 0 评论 -
CASSANDRA READ or write timeout
CASSANDRA READ or write timeout:problem:Cassandra timeout during write query at consistency LOCAL_ONE (1 replica were required but only 0 acknowledged the write)Cassandra timeout during read query at consistency LOCAL_ONE (1 replica were requ...转载 2021-03-11 13:51:33 · 1149 阅读 · 0 评论 -
cassandra-stress 压测使用介绍
Cassandra从很早的版本就自带了cassandra-stress压力测试工具,它的使用方法在cassandra-stress后添加命令和选项。其中常用的命令一般只用到:write、read、mixed、user。其中单纯的write和read只测试读和写,mixed则测试同时读写。user是2.1之后新增的,通过自定义配置文件,在配置文件中可以指定insert和query查询语句。命令command没有以-开头,而选项[options]有两种方式:-选项名称 选项值或者选项名称=选项值。常...转载 2021-01-19 19:02:38 · 1067 阅读 · 0 评论 -
Cassandra集群搭建
1.Cassandra介绍Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据。NoSQl数据库分为4大类,Key-value类型、列存储型、文档类型、图形(Graph)等,而Cassandra为列存储型。Cassandra的特点:弹性可扩展性 - Cassandra是高度可扩展的; 它允许添加更多的硬件以适应更多的客户和更多的数据根据要求。数据存储灵活 - Cassandra适应所有可能的数据格式,包括:结构化,半结构化和非...转载 2021-01-19 15:18:15 · 626 阅读 · 0 评论 -
Cassandra集群管理-删除异常节点
Cassandra集群管理-删除异常节点故障模拟节点:172.20.101.166,模拟节点系统直接损坏,所有数据丢失。注意:本文档只是体系文档中的一部分,前面文档信息详见:测试准备+下线正常节点:https://blog.51cto.com/michaelkang/2419518节点异常重启:https://blog.51cto.com/michaelkang/2419524添加新节点:https://blog.51cto.com/michaelkang/2419521删除异...转载 2021-01-19 14:10:09 · 354 阅读 · 1 评论 -
Cassandra 集群管理-添加新节点
Cassandra 集群添加节点注意本文档只是体系文档中的一部分,前面文档信息详见:https://blog.51cto.com/michaelkang/2419518场景:用于节点扩容,测试方法:清理(172.20.101.165)节点上所有数据,模拟新节点加入;确认内容:1:使用相同版本的Cassandra2:注意,种子节点不能引导。确保新节点没有在-seeds列表中列出,不要使所有节点种子节点。3:copy加入DC现有节点配置文件到新节点,然后进行配置修改,文件...转载 2021-01-19 14:08:55 · 792 阅读 · 0 评论 -
Cassandra集群管理-节点异常重启
Cassandra集群管理-节点异常重启登陆一台集群节点,直接重启服务器(172.20.101.166),设置了 cassandra 开机启动。注意:本文档只是体系文档中的一部分,前面文档信息详见:测试准备+下线正常节点:https://blog.51cto.com/michaelkang/2419518节点异常重启:https://blog.51cto.com/michaelkang/2419524添加新节点:https://blog.51cto.com/michaelk...转载 2021-01-19 14:07:59 · 445 阅读 · 0 评论 -
Cassandra集群管理-下线正常节点
测试前题:测试cassandra集群使用了vnodes,如何判断是否用了vnodes呢? 主要看你的cassandra.yml配置文件中。默认(3.x)为空,系统自动生成。为空表示使用virtual nodes,默认开启,使用了vnodes,删除了节点之后它会自己均衡数据,需要人为干预。测试数据生成创建一个名为kevin_test的KeySpace创建一个名为kevin_test的KeySpace,使用网络拓扑策略(SimpleStrategy),集群内3副本,另外开启写c...转载 2021-01-19 14:06:08 · 294 阅读 · 0 评论 -
Cassandra_Cassandra下线节点
今天要从群上下线一个节点,途中遇到了不少问题,特此记录一下。1.首先查看 Cassandra 状态。nodetool status并用cqlsh 去查看下集群的备份信息:注意: 对于cassandra 节点数 >= 预先设置的副本数计算下下线后集群中还有几台机器 !!!cqlsh 下的命令:select * from system.schema_keyspaces;或者用DESCRIBE clicki_v4 //指定具体的key...转载 2021-01-19 13:55:25 · 312 阅读 · 0 评论 -
Cassandra集群管理-下线正常节点
测试前题:测试cassandra集群使用了vnodes,如何判断是否用了vnodes呢? 主要看你的cassandra.yml配置文件中。默认(3.x)为空,系统自动生成。为空表示使用virtual nodes,默认开启,使用了vnodes,删除了节点之后它会自己均衡数据,需要人为干预。测试数据生成创建一个名为kevin_test的KeySpace创建一个名为kevin_test的KeySpace,使用网络拓扑策略(SimpleStrategy),集群内3副本,另外开启写commit...转载 2021-01-19 13:54:24 · 179 阅读 · 0 评论 -
So you have a broken Cassandra SSTable file?
Every few months I have a customer come to me with the following concern: my compactions for one of my Cassandra tables are stuck or my repairs fail when referencing one of the nodes in my Cassandra cluster. I take a look or just ask a couple of questio...转载 2021-01-14 16:55:19 · 458 阅读 · 0 评论 -
cassandra建表异常处理 · Messay
今天需要在cassandra建立一个新表用作英文spu匹配,报错如下: 123 Warning: schema version mismatch detected, which might be caused by DOWN nodes; if this is not the case, check the schema versions of your nodes in system.local and system.peers. OperationTi...转载 2021-01-14 14:35:03 · 678 阅读 · 1 评论 -
Cassandra与硬盘不平衡,如何配置?(Cassandra with uneven hardware, how to configure?)
我们正在构建一个用于存储大量时间序列数据的Cassandra(2.1.5)集群,我们计划利用现有硬件,问题是可用的硬件真的不同。2台机器:4核心,8 GB,SSD2台机器:8核心,16 GB,SSD2机器:32核心,64 GB,硬盘显然,32核机器可以处理比4核机器更大的负载,我们应该如何配置Cassandra来处理这个。我们正在使用RF 3和最新的datastax java驱动程序。有任何建议吗?解决方案:当你配置一个Cassandra节点,你告诉它用于该节点的v...转载 2020-12-21 17:14:58 · 371 阅读 · 0 评论 -
cassandra实战--物化视图(Materialized View)
在关系型数据库中,例如Mysql,视图是一个非常有用的功能。当项目遇到复杂业务的时候,不可避免的需要创建中间表来完成需求。通过视图,我们可以定制用户的数据,针对公司不同角色创建不同的视图,提供其需要的数据;其次,视图可以简化数据操作,对于频繁发生的操作,我们可以创建相应的视图。对于关系型数据库,视图是一张虚拟表,只提供对真实数据的引用,如果真实表发生变化,视图也相应发生变化。NoSql一般不支持视图功能,对于cassandra而言,需要在一开始就明确自己的表结构,如果需要反范式操作,可以通过建立...转载 2020-12-07 15:41:42 · 910 阅读 · 0 评论 -
重新认识HBase,Cassandra列存储——本质是还是行存储,只是可以动态改变列(每行对应的数据字段)数量而已,当心不是parquet
重新认识HBase,Cassandra列存储——本质是还是行存储,只是可以动态改变列(每行对应的数据字段)数量而已,当心不是parquet行先是以一种非常独特的方式被索引,随后Bigtable利用行键对数据进行分割,将它们分布到集群中。列可以被迅速地定义在行中,让Bigtable适用于大多数的非模式环境。数据在表面上最初是由行进行排列的,表的主要键是行键。但是与关系型数据库不同,在列式数据库中,没两个行需要相同的列。正如上面所说的那样,在表被创建后,用户能够快速在行中加入列。实际上,你能够向一行中增转载 2020-12-04 18:25:16 · 718 阅读 · 0 评论 -
CAP原理和最终一致性(Eventually Consistency)
#0 系列目录# 分布式设计与开发 CAP原理和最终一致性(Eventually Consistency) 分布式算法 [分布式Paxos算法] 分布式一致性Hash算法 轮循算法(Round Robin) Hash求余算法(Hash) 最少连接算法(Least Connection) 响应速度算法(Response Time) 加权算法(Weighted) 分布式消息 分布式发布订阅消...转载 2020-12-01 18:23:33 · 820 阅读 · 0 评论 -
cassandra表重命名方案
cql3.0中并没有给出重命名表的方式,所以需要从cassandra启动读取数据库文件、快照备份和还原的原理来入手cassandra启动时会加载system_schema中的表的元信息然后根据这些元信息去定位数据文件位置而cassandra快照的原理又是如下1.将原有表目录下的文件做硬链接至./snapshots/目录下(元信息等一些比较小的文件采用直接写入的方式,data文件采用硬链接的方式)2.保留原本的文件,新建sstable,之后的数据全部往新的sstable中写入...转载 2020-09-11 11:46:44 · 701 阅读 · 0 评论 -
走进cassandra之五:存储机制
有图有真相。先上个图。这个图总的意思就是说,数据先写入内存中的Memtable,Memtable达到条件后刷新到磁盘,保存为SSTable,同一个CF的多个SSTable可以合并(Compaction)以优化读操作commit log -> memtable -> sstable -> compaction.看起来似乎有些麻烦,存个数据要这么多弯弯绕,但是记得,兄弟们,现在是应付海量数据,同时有很多节点,所以必须要走这么多弯路。memtable是啥呢,所谓mem, m...转载 2020-07-03 11:24:53 · 486 阅读 · 0 评论 -
cassandra日常维护之nodetool cleanup
版权nodetool cleanup 官方的解释是:cassandra在扩容一个节点到新集群的时候,有些数据会复制一份到新节点,然后属于新节点的数据仍然存在那些老节点上。它自己不会主动的去删除。所以在每次扩容之后,你需要在每个老节点上执行cleanup操作。根据实践:cleanup操作在执行过程中可能会生成一些临时文件,并且导致IO利用率少许上升,机器负载少许增加,cleanup是单线程操作,整体上影响不大,不需要关闭压缩。cleanup是单机行为,也不需要限制节点stream传输。只要不是.转载 2020-07-03 10:15:48 · 654 阅读 · 0 评论 -
Apache Cassandra SSTable 存储格式详解
简介:在 Cassandra 中,当达到一定条件触发 flush 的时候,表对应的 Memtable 中的数据会被写入到这张表对应的数据目录(通过 data_file_directories 参数配置)中,并生成一个新的 SSTable(Sorted Strings Table,这个概念是从 Google 的 BigTable 借用的)。在 Cassandra 中,当达到一定条件触发 flush 的时候,表对应的 Memtable 中的数据会被写入到这张表对应的数据目录(通过 data_file...转载 2020-06-23 10:08:55 · 1011 阅读 · 0 评论 -
Apache Cassandra性能调优-混合工作负载压缩
这是我们关于使用Apache Cassandra进行性能调整的系列文章中的第三篇。在我们的第一篇文章中,我们讨论了如何使用火焰图直观地诊断性能问题。在第二篇文章中,我们讨论了JVM调优,以及不同的JVM设置如何影响不同的工作负载。在本文中,我们将深入探讨通常被忽略的表级设置:压缩。可以在创建或更改表时指定压缩选项,如果未指定,则默认启用。当处理写入繁重的工作负载时,默认值很棒,但是对于读取繁重的混合工作负载可能会成为问题。在进行优化之前,让我们退后一步来了解Cassandra中的压缩基础。建...转载 2020-06-17 17:57:22 · 681 阅读 · 0 评论 -
cassandra压缩——从文档看,本质上也应该是在做块压缩
CompressionCompression maximizes the storage capacity of Cassandra nodes by reducing the volume of data on disk and disk I/O, particularly for read-dominated workloads. Cassandra quickly finds the location of rows in the SSTable index and decompresse...转载 2020-06-16 18:48:57 · 252 阅读 · 0 评论 -
操作Cassandra(5)-Compression
压缩Cassandra为操作员提供了在每个表上配置压缩的能力。通过用户可配置压缩参数chunk_length_in_kb压缩SSTable来减小磁盘上的数据大小。因为Cassandra SSTables是不可变的,压缩的CPU成本只有在写入SSTable时才是必要的,随后的数据更新将落在不同的SSTables中,因此Cassandra不需要在发布UPDATE命令时解压缩,覆盖和重新压缩数据。在读取时,Cassandra将在磁盘上定位相关的压缩块,解压缩完整的块,然后继续读取剩余的路径(合并来自磁盘...转载 2020-06-16 17:35:10 · 536 阅读 · 0 评论 -
操作Cassandra(3)-Compaction
压实类型(Types of compaction)压实的概念用于Cassandra中的不同类型的操作,这些操作的常见之处在于它需要一个或多个sstables并输出新的sstables。压实的类型有:轻度压实(Minor compaction)在Cassandra中自动触发。高度压实(Major compaction)用户对节点上的所有sstables执行压实。用户自定义压实(User defined compaction)用户在给定的一组sstables上触发压实。擦洗...转载 2020-06-16 17:34:09 · 1688 阅读 · 0 评论 -
操作Cassandra(1)-Snitch
Snitch在cassandra中,snitch有两个功能:它指导Cassandra识别网络拓扑以有完成效地路由请求。 它允许Cassandra在您的集群周围传播副本,以避免相关的故障。它通过将机器分组到“数据中心”和“机架”来实现这一点。Cassandra将尽最大努力在同一“机架”(实际上可能不是物理位置)上拥有多个副本。动态snitching(Dynamic snitching)动态snitch监视器读取延迟,以避免从已减速的主机读取。动态snitch使用cassandra...转载 2020-06-16 17:33:05 · 311 阅读 · 0 评论 -
操作Cassandra(4)-Bloom过滤器
Bloom过滤器在读取路径中,Cassandra将磁盘(SSTables)中的数据与RAM(memtables)中的数据合并。为了避免为每个SSTable数据文件检查所请求的分区,Cassandra采用了一种称为bloom过滤器的数据结构。Bloom过滤器是一种概率数据结构,允许Cassandra确定两种可能状态之一: - 数据肯定不存在于给定文件中,或 - 数据可能存在于给定文件中。虽然bloom过滤器不能保证数据存在于给定的SSTable中,但是通过消耗更多的RAM来使Bloom过滤器...转载 2020-06-16 15:07:03 · 481 阅读 · 0 评论 -
cassandra调优
1.配置脚本文件cassandra-env.shMAX_HEAP_SIZE#java 堆总大小,cassandra是运行在java环境下的,java heap size是cassandra 运行起来后内存的总大小HEAP_NEWSIZE #heap size 初始化值java gc 配置: JVM_OPTS="$JVM_OPTS -XX:CMSInitiatingOccupancyFraction=70"#当使用内存达到heap size的 70%时就执行java gc操作(垃圾回收...转载 2020-06-15 18:15:17 · 527 阅读 · 0 评论 -
Cassandra学习与实践(八)——参数调优
参考资料Cassandra官方文档http://cassandra.apache.org/doc/latest/faq/index.htmlLinux优化1. 安装 jemallocjemalloc是一个在内存分配上比linux自带的malloc(ptmalloc)要优秀的分配工具Github地址:https://github.com/jemalloc/jemalloc下载后安装:tar xjf jemalloc-3.6.0.tar.bz2cd jemalloc-...转载 2020-06-15 18:01:23 · 876 阅读 · 0 评论 -
Cassandra的内存占用分析
最近,由于我们使用的Cassandra经常因为内存不足而挂掉,由于分析了一阵子Cassandra的内存占用的机制,总结如下:默认配置Cassandra的内存占用并非是Java的Heap(-Xmx参数控制)加上常规的Linux进程所需的少量内存即可,而是还需加上Direct Memory。假设我们在Cassandra设置MAX_HEAP_SIZE=4096M,但通过ps看到该Java内存占用达到6-7G。而根据我的理解, 除了Heap内存之外,Java进程还需要其它一些内存占用,包括Linux本地进程.转载 2020-06-15 15:36:13 · 989 阅读 · 0 评论 -
3.cassandra遇到内存占用过高的问题
目前cssandra的内存分配如下:https://docs.datastax.com/en/cassandra/2.1/cassandra/operations/ops_tune_jvm_c.html#opsTuneJVM__tuning-the-java-heap# some systems like the raspberry pi don't report cores, use at least 1if [ "$system_cpu_cores" -lt "1" ]t...转载 2020-06-15 15:26:25 · 1037 阅读 · 0 评论 -
Cassandra_调整占用内存大小
Cassandra 下面的运行环境基于Java , 可以调整Cassandra 的占用的资源大小主要依据于以下两个参数:MAX_HEAP_SIZEHEAP_NEWSIZE这两个参数位于 cassandra-env.sh文件内Determining the heap sizeYou might be tempted to set the Java heap to consume the majority of the computer's RAM. However, this ...转载 2020-06-15 15:25:29 · 812 阅读 · 0 评论 -
nodetool 常用命令梳理
Cassandra 自带了多个功能强大集群或数据管理工具,数量掌握有助于诊断和维护Cassandra集群、快速解决各种问题。命令如下:nodetool: 是一个命令行的工具集,它可以监控Cassandra和执行例行的数据库操作。作为内建的工具,nodetool一般用于在节点上直接运行。nodetool工具集支持大多数重要的JMX指标和操作,并且包含了一些为管理员准备的命令。cassandra utility: Cassandra utility 其实是Cassandra提供的一个启动时配置接..转载 2020-06-15 14:54:25 · 1270 阅读 · 0 评论 -
Cassandra/Spark showing incorrect entries count for large table
Cassandra/Spark showing incorrect entries count for large tableI am trying to use spark to process a large cassandra table (~402 million entries and 84 columns) but I am getting inconsistent results. Initially the requirement was to copy some columns .转载 2020-05-29 17:26:59 · 266 阅读 · 0 评论 -
cassandra日常维护之nodetool repair
前提cassandra的根据分区key的操作是很快的,这也是它的优势,但是它的多条件查询是很弱的,特别是如果你有删除操作的话,就更坑爹了。cassandra的删除操作,实际上并不是真的删除,它是执行的插入操作,插入的数据叫做tombstone(墓碑),记录了被删除记录的信息和删除时间。当你根据条件查询的时候,如果它会把满足条件的记录查询出来,包括tombstone。然后过滤掉删除的记录,再把结果返回给你。现象如果你的表mykeyspace.t_table有3个副本,主键是(a,b,c) 。你插...转载 2020-05-29 17:22:35 · 875 阅读 · 1 评论 -
Cassandra 3.11.2 单节点配置教程
Cassandra 配置先决环境测试的系统环境为 Ubuntu 14.04 LTS安装 Cassandra 需要首先安装 Java 8 环境,Oracle Java Standard Edition 8 或者 OpenJDK 8 均可。OpenJDK 8 的安装方法如下:$ sudo apt-get update$ sudo apt-get install openjdk-8-jdk$ sudo apt-get install openjdk-8-jre如果想使用 cqls...转载 2020-05-27 17:08:55 · 636 阅读 · 0 评论 -
Apache Cassandra多节点跨数据中心集群配置以及日常操作
Cassandra是去中心化的集群架构,没有传统集群的中心节点,各个节点地位都是平等的,通过Gossip协议维持集群中的节点信息。为了使集群中的各节点在启动时能发现其他节点,需要指定种子节点(seeds),各节点都先和种子节点通信,通过种子节点获取其他节点列表,然后和其他节点通信。种子节点可以指定多个,通过在 conf/ cassandra.yaml中的seeds属性配置。环境介绍主机信息如下表所示:所有节点已安装了jdk 8。如下:[root@db03 ~]# Java -versi...转载 2020-05-12 17:29:49 · 1612 阅读 · 0 评论 -
cassandra多个数据中心实现异地容灾
cassandra是集群部署,多个节点,多个数据备份,一两个节点挂掉,一般不会有数据丢失。只要删除当掉的节点,对其它节点进行repair,数据都会自动均衡到完整的份数。但是如果大面积节点掉电,或者机房着火那就肯定要丢失数据了,使用cassandra作为数据存储的业务,肯定是很大的业务,数据量超大的那种。机房容灾肯定是必不可少的。cassandra提供多种多数据中心部署、机架敏感策略。这里介绍一种最普通的一种: GossipingPropertyFileSnitchGossipingProp...转载 2020-05-12 17:27:17 · 1173 阅读 · 0 评论 -
Cassandra 之多数据中心集群搭建
1. 集群架构如下:准备5台RHL 7.2 的VM servers模拟4台在数据中心TJPDC,一台在数据中心WHDRC此次安装的cassandra 版本是 apache-cassandra-2.2.7数据中心 机器列表TJPDC 192.168.1.180,192.168.1.181,192.168.1.182,192.168.1.183WHDRC 192.168.1.1902. 配置集群管理工具pdsh下载地址 https://sourceforge.net/proj...转载 2020-05-12 15:37:10 · 1127 阅读 · 0 评论