Twitter架构
2015-12-07 15:38
791 查看
Twitter一个最大特点就是用户产生大量数据,每天有7TB数据要保存。
使用apache Hadoop进行存储和分析数据,。如果依赖硬盘80MB/S,需要24小时才能写完7TB数。可以在62秒内对1TB数据排序,有分布式文件系统,基于Mapreduce算法。
传统方式
传统方式有三个:
1. MySQL的水平和垂直分区
2. 使用分布式缓存Memcached
3. 通过应用程序管理。
这些方式问题:
1.存在很多单点风险,一台服务器当机,整个应用崩溃
2.硬件密集型
3.人手密集型
4.紧耦合。
使用了memcached和MySQL的读延迟:
问题:
写吞吐量
MYSQL经常死锁
创建一个新的分区需要手工脏活累活
使用HBase和Cassandra与MYSQL协同
HBase容易实现输入 输出的批处理工作,Cassandra则不擅长;
HBase在namenode中有SPOF,HBase用于数据分析,而Cassandra用于在线实时系统。
使用Cassandra保存所有tweets,可容错,有高的写通过率。
标准的读写操作用MySQL,而动态的读写用Cassandran。
Twiiter的大数据:收集数据
scribe用于日志记录 包括监视写入HDFS的日志
主要用于收集数据,大数据来源。
前后端各种语言的操作都写入。有三十多种不同分类
持续与Facebook不断改进Scribe
https://github.com/traviscrawford/scribe
多层次的日志记录
Twitter的大数据第二步:存储和分析数据
每天7TB数据存在Hadoop中
下图是对每个tweet数据进行总数统计的Map/Reduce示意:
Hadoop可以解决下面两个分析挑战:
如何发现用户的朋友等社会关系统计?如果使用MySQL大概需要......
大量总数统计,类似Select count(*) from users和 select count(*) from tweets;
Twitter的大数据第三步:通过Pig机器学习
FlockDB
https://github.com/twitter/flockdb
如何将一个tweet消息传递给其关注者和回复者的跟随者们?这两个人分别有大概4.7M个跟随者。
下页
使用了memcached和MySQL的读延迟:
问题:
写吞吐量
MYSQL经常死锁
创建一个新的分区需要手工脏活累活
使用HBase和Cassandra与MYSQL协同
HBase容易实现输入 输出的批处理工作,Cassandra则不擅长;
HBase在namenode中有SPOF,HBase用于数据分析,而Cassandra用于在线实时系统。
使用Cassandra保存所有tweets,可容错,有高的写通过率。
标准的读写操作用MySQL,而动态的读写用Cassandran。
Twiiter的大数据:收集数据
scribe用于日志记录 包括监视写入HDFS的日志
主要用于收集数据,大数据来源。
前后端各种语言的操作都写入。有三十多种不同分类
持续与Facebook不断改进Scribe
https://github.com/traviscrawford/scribe
多层次的日志记录
Twitter的大数据第二步:存储和分析数据
每天7TB数据存在Hadoop中
下图是对每个tweet数据进行总数统计的Map/Reduce示意:
Hadoop可以解决下面两个分析挑战:
如何发现用户的朋友等社会关系统计?如果使用MySQL大概需要......
大量总数统计,类似Select count(*) from users和 select count(*) from tweets;
Twitter的大数据第三步:通过Pig机器学习
FlockDB
https://github.com/twitter/flockdb
如何将一个tweet消息传递给其关注者和回复者的跟随者们?这两个人分别有大概4.7M个跟随者。
下页
使用apache Hadoop进行存储和分析数据,。如果依赖硬盘80MB/S,需要24小时才能写完7TB数。可以在62秒内对1TB数据排序,有分布式文件系统,基于Mapreduce算法。
传统方式
传统方式有三个:
1. MySQL的水平和垂直分区
2. 使用分布式缓存Memcached
3. 通过应用程序管理。
这些方式问题:
1.存在很多单点风险,一台服务器当机,整个应用崩溃
2.硬件密集型
3.人手密集型
4.紧耦合。
使用了memcached和MySQL的读延迟:
问题:
写吞吐量
MYSQL经常死锁
创建一个新的分区需要手工脏活累活
使用HBase和Cassandra与MYSQL协同
HBase容易实现输入 输出的批处理工作,Cassandra则不擅长;
HBase在namenode中有SPOF,HBase用于数据分析,而Cassandra用于在线实时系统。
使用Cassandra保存所有tweets,可容错,有高的写通过率。
标准的读写操作用MySQL,而动态的读写用Cassandran。
Twiiter的大数据:收集数据
scribe用于日志记录 包括监视写入HDFS的日志
主要用于收集数据,大数据来源。
前后端各种语言的操作都写入。有三十多种不同分类
持续与Facebook不断改进Scribe
https://github.com/traviscrawford/scribe
多层次的日志记录
Twitter的大数据第二步:存储和分析数据
每天7TB数据存在Hadoop中
下图是对每个tweet数据进行总数统计的Map/Reduce示意:
Hadoop可以解决下面两个分析挑战:
如何发现用户的朋友等社会关系统计?如果使用MySQL大概需要......
大量总数统计,类似Select count(*) from users和 select count(*) from tweets;
Twitter的大数据第三步:通过Pig机器学习
FlockDB
https://github.com/twitter/flockdb
如何将一个tweet消息传递给其关注者和回复者的跟随者们?这两个人分别有大概4.7M个跟随者。
下页
Twitter 从Ruby的Rails移植到Java
Twitter在Ruby-to-Java迁移后才在总统大选中活下来
更多伸缩性scalable讨论
Facebook架构
LinkedIn架构
CAP原理和BASE思想
大数据
集群
使用了memcached和MySQL的读延迟:
问题:
写吞吐量
MYSQL经常死锁
创建一个新的分区需要手工脏活累活
使用HBase和Cassandra与MYSQL协同
HBase容易实现输入 输出的批处理工作,Cassandra则不擅长;
HBase在namenode中有SPOF,HBase用于数据分析,而Cassandra用于在线实时系统。
使用Cassandra保存所有tweets,可容错,有高的写通过率。
标准的读写操作用MySQL,而动态的读写用Cassandran。
Twiiter的大数据:收集数据
scribe用于日志记录 包括监视写入HDFS的日志
主要用于收集数据,大数据来源。
前后端各种语言的操作都写入。有三十多种不同分类
持续与Facebook不断改进Scribe
https://github.com/traviscrawford/scribe
多层次的日志记录
Twitter的大数据第二步:存储和分析数据
每天7TB数据存在Hadoop中
下图是对每个tweet数据进行总数统计的Map/Reduce示意:
Hadoop可以解决下面两个分析挑战:
如何发现用户的朋友等社会关系统计?如果使用MySQL大概需要......
大量总数统计,类似Select count(*) from users和 select count(*) from tweets;
Twitter的大数据第三步:通过Pig机器学习
FlockDB
https://github.com/twitter/flockdb
如何将一个tweet消息传递给其关注者和回复者的跟随者们?这两个人分别有大概4.7M个跟随者。
下页
Twitter 从Ruby的Rails移植到Java
Twitter在Ruby-to-Java迁移后才在总统大选中活下来
更多伸缩性scalable讨论
Facebook架构
LinkedIn架构
CAP原理和BASE思想
大数据
集群
相关文章推荐
- 如何扩展大规模Web网站的性能?
- [Linux主机] 优化你的php-fpm(php5.3+)让你的网站跑得更快
- QQ授权网站进行登录~php篇
- 架构实践论坛
- 电商架构及搜索引擎
- 学习源码的网站
- 高可用集群原理概念详述
- 高可用集群原理概念详述
- 关于网站编码显示问题 效果是 访问 带有中文注释的sass文件出现编码报错。
- Dubbo架构设计详解
- 分布式架构_Index
- VS2013自带的Browser Link功能引发浏览localhost网站时不停的轮询
- 京东咚咚架构演进
- mooc网站以及学习资料收集
- 网站调用其他域名的静态文件导致的跨域问题、CORS错误解决方法
- 【ITOO】浅谈MVC
- 网站收藏
- 为网站每个网页添加LOGO图标
- 关于网站设计
- 【2015-12-06】STM32系统架构学习