cassandra压缩特性介绍
cassandra1.0 compress特性介绍:cassandra版本1.0增加了压缩特性,与关系型数据库数据文件压缩可能带来系统读写性能损失相比,因为cassandra数据文件时一次刷新的,而且不可修改的,所以对系统的性能反而有10%的性能提升。一、cassandra compress适用的场景:一个row中具有大量的column,而且column相同,至少具有大量共同的column,这种情况下可以达到很高的压缩比,并且获得很好的读性能。二、如何配置cassandra压缩:cassandra的压缩可以指定columnfamily级别的压缩。压缩具有两个属性(compression_options):sstable_compression:指定
create keyspace in shell
use script to connect cassandra and create keyspace ...:echo -e "connnet localhost/9181; nshow keyspace;" | bin/cassandra-cli -u obs -pw 'password'[@more@]
cassandra 1.0.0新特性
1.增加了SSTable的压缩(compress)支持,通过在创建和修改Column Family的定义compression_options参数, 例如你可以在命令行创建带压缩特性的CF: create column family Cf with compression_options={sstable_compression: SnappyCompressor} SSTable的压缩特性默认是没有激活的,但可以在任何时刻激活或去激活此特性。 2.对压缩的SSTable数据块进行了校验和计算以保护数据免受衰变影响。 3.受LevelDB激发灵感,CF的compact算法可以指定为compaction_strategy=LeveledCompactionStrategy, 分级(leveled)合并意味着只需要保留几个MB的空
JUnit测试方法
运行测试用例的方法:一、在测试类中定义main()方法,把它当成普通的Java Application来运行:public static void main(String args[]){ junit.textui.TestRunner.run(MoneyTest.class); }二、通过Testrunner用java的命令行执行程序java.exe来启动它:java junit.textui.TestRunner junitExplained.testCase.MoneyTest[@more@]
cassandra0.7.4 binary_memtable_throughput_in_mb
I don't see binary_memtable_throughput_in_mb parameter incassandra.yaml anymore.What is it replaced by ? It is still there, but we took it out of the sample config becausepeople think it affects normal writes which it does not. -- Jonathan EllisProject Chair, Apache Cassandraco-founder of DataStax, the source for professional Cassandra supporthttp://www.datastax.com[@more@]
cassandra streaming 操作(翻译2)
请求(Request)1. 目标节点编译一个它需要从其他节点获取的范围列表。2. 目标节点发送一个包含key范围列表的StreamRequestMessage消息给源节点。3. 源节点准备指定范围的sstable 文件,并创建暂挂文件。4. 源节点流传输列表中俄第一个文件。第一个流的头部包含当前流的信息以及剩余的请求范围内的暂挂文件列表。5. 目标节点接收流并写入到磁盘,产生相应的日志信息"Streaming added org.apache.cassandra.io.sstable.SSTableReader(path='/var/lib/cassandra/data/Keyspace1/Standard1-e-1-Data.db')".6. 目标
cassandra streaming 操作(翻译1)
原文:http://wiki.apache.org/cassandra/Streaming在0.7版本之后,有连个主要的流实例:传输 - 当源节点把一个给定范围的key推送到目标节点时产生。由源节点进行初始化和控制。请求 - 当目标节点向原节点请求一定范围的key集合时产生。有目标节点进行初始化和控制。传输(Transfer)进行流传输的步骤:1. 源节点拥有一个必须传送到其它节点的key范围。2. 源节点把此范围的数据拷贝到sstable文件中,以准备进行流传输。此步骤被称作anti-compaction(因为compact归并多个sstable文件为一个,而此操作相反。)3. 源节点构建一个包
get string MD5
import java.io.*;import java.util.*;import java.math.BigInteger;import java.nio.ByteBuffer;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;class cassandraMD5{ static final Scanner cin=new Scanner(System.in); public static byte[] hash(String type, byte[]... data){ byte[] result = null; try{ MessageDigest messageDigest = MessageDigest.getInstance(type); for(byte[] block : data) messageDigest.update(block); result = messageDigest.digest
cassandra getNaturalEndpoints JMX client
import java.net.InetAddress;import java.util.List;import javax.management.MBeanServerConnection;import javax.management.MBeanServerInvocationHandler;import javax.management.ObjectName;import javax.management.remote.JMXConnector;import javax.management.remote.JMXConnectorFactory;import javax.management.remote.JMXServiceURL;import org.apache.cassandra.service.StorageServiceMBean;public class RmiClient { private JMXServiceURL jmxUrl; private JMXConnector connector; private MBeanServerConne
HBase 增量备份和还原工具
HBase 增量备份和还原工具(收藏)By John_Yang|CloudingComputing, HBase Research|Be the first to comment!HBase自带的export/import机制可以实现Backup Restore功能。而且可以实现增量备份。下面设增量备份的python脚本在这个脚本中,每天做增量备份,每个月15日做全备份。view plaincopy to clipboardprint? import time import datetime from datetime import date import sys import os tablename=sys.argv[1] backupDst=sys.argv[2] today=date.today() if today.day == 15: /
cassandra0.7以上版本多数据中心部署
cassandra0.7以上版本多数据中心部署一、引子0.7-beta2...* rename RackAwareStrategy to OldNetworkTopologyStrategy, RackUnawareStrategy to SimpleStrategy, DatacenterShardStrategy to NetworkTopologyStrategy,AbstractRackAwareSnitch to AbstractNetworkTopologySnitch (CASSANDRA-1392)...二、部署配置副本存放策略(Replica Placement Strategy): NetworkTopologyStrategy (NTS)复制因子(Replication Factor):每个数据中心都为1.相应的定义见如下的strategy_options选项配置strategy_options:DC1 : 1DC2 : 1DC3 : 1使用Cassandr
cassandra0.6 扩展数据中心方法
Cassandra0.6 版本添加数据中心没有0.7版本来的容易,下面介绍0.6版本添加数据中心的正确方式,并与错误的方式进行对比。正确的方法:--将当前DC切换到DC-aware snitch,但保留集群仍为RUS(RackUnawareStrategy).--Bootstarp第二个数据中心的节点,每次启动一个,以是环在两个数据中心间交替DC1 DC2 DC1 DC2等等。因为RAS(RackAwareStrategy)在各数据中心近似均衡的存放数据,所以应让每个数据中心的节点数目相同。--切换集群到RAS(RackAwareStrategy)--启动repair.在cassandra0.6,只能在一个节点上运行repair,所以在每个节点上运行repa
crontab usage
名称 : crontab使用权限 : 所有使用者使用方式 :crontab file [-u user]-用指定的文件替代目前的crontab。crontab-[-u user]-用标准输入替代目前的crontab.crontab-1[user]-列出用户目前的crontab.crontab-e[user]-编辑用户目前的crontab.crontab-d[user]-删除用户目前的crontab.crontab-c dir- 指定crontab的目录。crontab文件的格式:M H D m d cmd.M: 分钟(0-59)。H:小时(0-23)。D:天(1-31)。m: 月(1-12)。d: 一星期内的天(0~6,0为星期天)。时程表的格式如下 :f1 f2 f3 f4 f5 program其中 f1 是表示分钟,f2 表示小时,f3
daily job tips(cassandra)
1.多数据中心部署问题思考?Token选择问题分区策略选择单数据中心内部数据平衡多数据中心扩容节点故障带来的问题2.集群维护?系统日志聚集(todo)定时备份任务(todo)集群系统配置文件维护方案选择 参考文档(cassandra wiki)http://wiki.apache.org/cassandra/Operations#Replication 相关词汇:consult 考虑,顾及vital 致命的;生死攸关的corollary 推论,必然的结果disproportionately 不成比例 不对称的consequence 结果,后果wipe 揩,擦;揩干;擦净hypothetical 假设的,假定的;有待证实的depition 描写;叙述 rigid 刚硬的; 僵硬的; 不弯曲的
Packtpub.Cassandra.High.Performance.Cookbook.Jul.2011目录
第8章 多数据中心部署变化跟踪以确定读操作被路由到了那里使用IPTable在本地环境模拟复杂的网络场景选择IP地址与RackInferringSnitch协同工作编写多数据中心安装脚本设定Rack和Datacenter配置以使用property file snith方式使用JConsole进行动态snitch问题跟踪在多数据中心环境使用Quorum操作使用traceroute进行跨数据中心延时问题跟踪确保多机架环境中交换机之间的带宽增大rpc_timeout值一处理多数据中心间的延迟通过CLI修改一致性级别,测试多数据中心部署时各种一致性级别使用TWO和THREE两种一致性级别为使用NTS和Random Partitioner计
几个可以来做cassandra性能评测的工具
1.yahoo's --> YCSB2.cacti 3.cassandra supplied -->stress.py4.挽起袖子用hector、thrift写吧5.nagios + nrpe + some custom scripts6.CloudKick7.zabbix https://gist.github.com/7447618.ClearStone [@more@]
cassandra图形客户端工具
cassandra图形客户端工具:1.cassui ## Cassandra UI - a web based interface over Cassandra (google code)2.suguru / cassandra-webconsole ##Web based console for cassandra (github)3.driftx/chiton ## A browser for Cassandra using GTK (github)* Automatic Keyspace, Column, and SuperColumn introspection* Browse columns with pagination* Completion history for rows and SuperColumn names4.apollohttp://www.codefreun.de/apollo/[@more@]
topic links
------vector clockA vector clock event synchronization strategywill likely be introduced in a future versionof Cassandra.--《Cassandra The Definitive Guide》why vector clocks are easy: http://blog.basho.com/2010/01/29/why-vector-clocks-are-easy/ why vector clocks are hard http://blog.basho.com/2010/04/05/why-vector-clocks-are-hard/ vector clocks again: http://pl.atyp.us/wordpress/?p=2830 Conflict Resolutionhttp://pl.atyp.us/wordpress/?p=2601------yamlyaml process:http://code.google.com/p/snakeya
About compation
minor compaction vs. major compactionmin compaction threshold vs. max compaction threshold 问题一、minor compaction vs. major compaction1.major compaction 只能手动的通过nodetool触发,对整个column family所有的sstable进行compact;minor compcation通过配置参数min compaction threshold 和max compaction threashold达到条件后触发2.在0.7-beta2版本之后,non-major compation 在比较bloom filter确认tombstone标示的row不存在于其它sstable中也可以将其删除。因为minor compaction会根据min compaction threshold 和ma
cassandra最终一致性相关算法数据结构
Merkle Tree(MT)是一个非常容易理解的数据结构,简单来说就是一颗hash树,在这棵树中,叶子节点的值是一些hash值、非叶节点的值均是由其子节点值计算hash得来的。在Dynamo中,每个节点保存一个范围内的key值,不同节点间存在有相互交迭的key值范围。在去熵操作中,考虑的仅仅是某两个节点间共有的key值范围。MT的叶子节点即是这个共有的key值范围内每个key的hash,通过叶子节点的hash自底向上便可以构建出一颗MT。 Dynamo首先比对MT根处的hash,如果一致则表示两者完全一致,否则将其子节点交换并继续比较的过程。1.Dynamo中每个子节点保