SlideShare una empresa de Scribd logo
1 de 28
LAMP人 主题分享交流会


        www.LAMPER.cn
         QQ群:3330312
   http://weibo.com/lampercn
Cassandra实时统计分享

   zhaowei@mediav.com
Outline
•   使用场景
•   Cassandra简介
•   性能测试
•   实际应用
古希腊神话的杯具预言家
• Digg 的Cassandra杯具
  – 工程副总裁John Quinn在Digg V4中使用Cassandra取代Mysql,
    导致上线后网站经常宕机。
  – Quinn遭遇重大反对,至少遭遇了严重的短期问题,他也因此丢
    掉了在Digg的工作。
  – “Cassandra数据库速度更快,但或许它仍然处于实验期,也或者
    是Digg正在对Cassandra数据库进行测试,总之Cassandra的运
    行状况并不能令用户满意。” CEO Kevin Rose
Best used
• Write more than you read (logging)
• One natural niche is real time data analysis
Twitter




   摘自:
   http://www.slideshare.net/kevinweil/rainbird-
   realtime-analytics-at-twitter-strata-2011
Outline
•   使用场景
•   Cassandra简介
•   性能测试
•   实际应用
简介

分布式无中心
弹性可扩展
高可用与容错
可调节的一致性
面向行
高性能
CAP
• CAP
  – Consistency
  – Availbility
  – Partition Tolerance

  CAP理论指出,同时只能具有这三个特性中的两个。

  AP:Cassandra、CouchDB
数据模型
Cluster
Keyspace:数据的最外层容器,类似关系型数据库
Column family:容纳一组有序行的容器,每行包含一组有序列
Column:最基本数据结构单元,名称、值、时钟构成的三元组
Super column:value是一个子列的映射(一起查询的内容放一起)

五维哈希:
[Keyspace][Column family][Key][Super column][Column]
架构设计
  P2P:对等结构,可用性和可扩展性
  Gossip:流言协议用于故障检测(增量),故障节点计入列表
  Anti-entropy:逆熵,副本同步机制,邻居交换Merkle树比对
  Memtable、SSTable、Commit log:数据写入Commit log则认为写
成功, Commit log可用于数据修复。
  Hinted handoff:提示移交,提升弱一致性级别的写性能(ANY)
  Bloom filter:判断元素是否存在于集合的超快速、不确定的判断算
法,可看做查询的缓存,假阳性结果
  Tombstone:删除标记,合并SSTable时清理
为什么写快
  写优化是Cassandra的设计决策。

  Memtable和Commit log的存在,写一个值不需要任何的读或者定位
操作,所有的写都是以追加方式顺序写入的。
Outline
•   使用场景
•   Cassandra
•   性能测试
•   实际应用
测试环境
• 硬件
  – 4 node
• 软件
  – Cassandra v1.0.0,Thrift API
• 数据
  – Num of key space = 1, num of column family = 1, replication
    factor = 2
  – Random Partition方式600M x 1KB记录
  – Byte Ordered Partition方式 300M x 1KB记录
结果
Cassandra VS Hbase
• Hbase Introduction
  – Yet Another NoSQL database
  – A Key-Value database
  – A kind of BigTable implementation
  – Built-in MapReduce processing
  – HDFS data storage/Fault tolerance
  – Great Scalability
HBase = HDFS + Random read/write
测试环境
• 参数
  – Cassandra:KeysCached设为0,其余参数均取缺省值
  – Hbase:缺省值
• 数据量
  – 实验的数据总量均在60G左右
  – 各有六个节点,数据平均分布
Random Update/Random Read :5/95


                         update latency                                                          read latency
              10                                                                 40
                                                                                 35
               8
                                                                                 30
latency(ms)




                                                                   latency(ms)
               6                                                                 25
                                                                                 20
               4
                                                                                 15
               2                                                                 10

               0                                                                  5

                   0   1000      2000      3000      4000   5000                  0
                                                                                      0   1000       2000      3000      4000   5000
                               throughput(ops/sec)
                                                                                                   throughput(ops/sec)
                              cassandra      hbase
                                                                                                  cassandra      hbase
Scalability(Random Update/Random Read:5/95)

                           read latency
              25


              20
latency(ms)




              15


              10


              5


              0
                   0            5000            10000           15000
                                throughput(ops/sec)

                       3_node          6_node         12_node
小节
•   Cassandra与Hbase写操作的延时都很小。

•   Cassandra写操作的延时较Hbase大。

•   Cassandra读操作的延时较Hbase小很多。

•   Cassandra范围查询的延时较Hbase大,这在完全随机的请求下表现的尤为明显。

•   Cassandra的Scalability较Hbase好。
Outline
•   使用场景
•   Cassandra
•   性能测试
•   实际应用
Why real time data analysis
• Twitter
   – Twitter is real time
   – And Personal Favorite
   – Real time Reporting
   摘自:http://www.slideshare.net/kevinweil/rainbird-realtime-
     analytics-at-twitter-strata-2011
• Mediav
   – 广告投放决策
   – 广告效果跟踪
某模块的性能需求
• Throughout
  – Write 25K ops/sec
  – Read 2K ops/sec
• Latency
  – Write < 10ms
  – Read < 100ms
• 统计结果约40G
Design
Cassandra Cluster

  – 单台写性能约在 10K ops/sec,replication
    factor设置为2,需要机器数最少为5台。
  – 内存可满足数据量需求,可充分发挥
    Cassandra性能优势
具体用例

 需求:实时统计某客户的今日订单数据
 CF_Schema:
Create column family order_counter
WITH default_validation_class=CounterColumnType
AND key_validation_class=UTF8Type
AND comparator= UTF8Type
Meta_data:
Rowkey = siteId
column name
 order#time
value
order_value
数据更新: INCR order_counter [‘123456' ][‘order#1320310080000’] BY 1
推荐参考内容
http://cassandra.apache.org/
Cassandra:The Definitive Guide
Cassandra High Performance Cookbook
http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-
   vs-redis
广告时间
• MediaV:
  – 创建于2009年6月,目前在北京和上海设有研发中心。Mediav愿
    景:用互联网技术知识推动中国互联网产业创新,让互联网营销
    变得更有价值。在这里,你将与来自Google、Microsoft、
    Yahoo、百度、阿里巴巴的工程师一起工作,做分析建模型,用
    数字和逻辑改变互联网广告的未来。
  – 更多详情介绍请见:http://mediav.com
  – 简历投递 hr@mediav.com
  – 新浪微博 @mediavhr @mediav

Más contenido relacionado

Más de Shaoning Pan

海量数据计算架构实现
海量数据计算架构实现海量数据计算架构实现
海量数据计算架构实现Shaoning Pan
 
Technology Changes
Technology ChangesTechnology Changes
Technology ChangesShaoning Pan
 
一淘广告机器学习
一淘广告机器学习一淘广告机器学习
一淘广告机器学习Shaoning Pan
 
海量用户数据处理及其在一淘广告和推荐中的应用
海量用户数据处理及其在一淘广告和推荐中的应用海量用户数据处理及其在一淘广告和推荐中的应用
海量用户数据处理及其在一淘广告和推荐中的应用Shaoning Pan
 
大型互联网广告应用系统架构
大型互联网广告应用系统架构大型互联网广告应用系统架构
大型互联网广告应用系统架构Shaoning Pan
 
Tanx成长之路 real time media
Tanx成长之路 real time mediaTanx成长之路 real time media
Tanx成长之路 real time mediaShaoning Pan
 
移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶Shaoning Pan
 
移动互联网产业分析 梁文静
移动互联网产业分析 梁文静移动互联网产业分析 梁文静
移动互联网产业分析 梁文静Shaoning Pan
 
曾勇 Elastic search-intro
曾勇 Elastic search-intro曾勇 Elastic search-intro
曾勇 Elastic search-introShaoning Pan
 
Hadoop的etl任务—flume使用及其 优化-品友互动
 Hadoop的etl任务—flume使用及其 优化-品友互动 Hadoop的etl任务—flume使用及其 优化-品友互动
Hadoop的etl任务—flume使用及其 优化-品友互动Shaoning Pan
 
互联网广告发展的趋势-品友互动
互联网广告发展的趋势-品友互动 互联网广告发展的趋势-品友互动
互联网广告发展的趋势-品友互动 Shaoning Pan
 
互联网行为分析和数据挖掘-品友互动
互联网行为分析和数据挖掘-品友互动互联网行为分析和数据挖掘-品友互动
互联网行为分析和数据挖掘-品友互动Shaoning Pan
 
如何构建一个高可用可扩展的广告投放平台-品友互动
如何构建一个高可用可扩展的广告投放平台-品友互动 如何构建一个高可用可扩展的广告投放平台-品友互动
如何构建一个高可用可扩展的广告投放平台-品友互动 Shaoning Pan
 
网站前段性能优化-品友互动
 网站前段性能优化-品友互动 网站前段性能优化-品友互动
网站前段性能优化-品友互动Shaoning Pan
 
品友互动 Hadoop的etl任务—flume使用及其 优化
品友互动 Hadoop的etl任务—flume使用及其 优化品友互动 Hadoop的etl任务—flume使用及其 优化
品友互动 Hadoop的etl任务—flume使用及其 优化Shaoning Pan
 
分布式计算与Hadoop - 刘鹏
分布式计算与Hadoop - 刘鹏分布式计算与Hadoop - 刘鹏
分布式计算与Hadoop - 刘鹏Shaoning Pan
 
Android应用开发 - 沈大海
Android应用开发 - 沈大海Android应用开发 - 沈大海
Android应用开发 - 沈大海Shaoning Pan
 
淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林Shaoning Pan
 
Think social to go global
Think social to go globalThink social to go global
Think social to go globalShaoning Pan
 

Más de Shaoning Pan (20)

海量数据计算架构实现
海量数据计算架构实现海量数据计算架构实现
海量数据计算架构实现
 
RTB 优化算法
RTB 优化算法RTB 优化算法
RTB 优化算法
 
Technology Changes
Technology ChangesTechnology Changes
Technology Changes
 
一淘广告机器学习
一淘广告机器学习一淘广告机器学习
一淘广告机器学习
 
海量用户数据处理及其在一淘广告和推荐中的应用
海量用户数据处理及其在一淘广告和推荐中的应用海量用户数据处理及其在一淘广告和推荐中的应用
海量用户数据处理及其在一淘广告和推荐中的应用
 
大型互联网广告应用系统架构
大型互联网广告应用系统架构大型互联网广告应用系统架构
大型互联网广告应用系统架构
 
Tanx成长之路 real time media
Tanx成长之路 real time mediaTanx成长之路 real time media
Tanx成长之路 real time media
 
移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶
 
移动互联网产业分析 梁文静
移动互联网产业分析 梁文静移动互联网产业分析 梁文静
移动互联网产业分析 梁文静
 
曾勇 Elastic search-intro
曾勇 Elastic search-intro曾勇 Elastic search-intro
曾勇 Elastic search-intro
 
Hadoop的etl任务—flume使用及其 优化-品友互动
 Hadoop的etl任务—flume使用及其 优化-品友互动 Hadoop的etl任务—flume使用及其 优化-品友互动
Hadoop的etl任务—flume使用及其 优化-品友互动
 
互联网广告发展的趋势-品友互动
互联网广告发展的趋势-品友互动 互联网广告发展的趋势-品友互动
互联网广告发展的趋势-品友互动
 
互联网行为分析和数据挖掘-品友互动
互联网行为分析和数据挖掘-品友互动互联网行为分析和数据挖掘-品友互动
互联网行为分析和数据挖掘-品友互动
 
如何构建一个高可用可扩展的广告投放平台-品友互动
如何构建一个高可用可扩展的广告投放平台-品友互动 如何构建一个高可用可扩展的广告投放平台-品友互动
如何构建一个高可用可扩展的广告投放平台-品友互动
 
网站前段性能优化-品友互动
 网站前段性能优化-品友互动 网站前段性能优化-品友互动
网站前段性能优化-品友互动
 
品友互动 Hadoop的etl任务—flume使用及其 优化
品友互动 Hadoop的etl任务—flume使用及其 优化品友互动 Hadoop的etl任务—flume使用及其 优化
品友互动 Hadoop的etl任务—flume使用及其 优化
 
分布式计算与Hadoop - 刘鹏
分布式计算与Hadoop - 刘鹏分布式计算与Hadoop - 刘鹏
分布式计算与Hadoop - 刘鹏
 
Android应用开发 - 沈大海
Android应用开发 - 沈大海Android应用开发 - 沈大海
Android应用开发 - 沈大海
 
淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林
 
Think social to go global
Think social to go globalThink social to go global
Think social to go global
 

Cassandra实时统计分享 - 赵伟