Building LinkedIn’s Real-time Activity Data Pipeline
转自:http://blog.163.com/guaiguai_family/blog/static/20078414520138911393767/
http://sites.computer.org/debull/A12june/pipeline.pdf
这一套可以成为互联网公司的标准基础架构了,摘要如下:
- 把数据的 source of truth 放在数据总线里,而非 Hadoop 和数据仓库里。这是个很违反直觉的做法,但得益与 Kafka 巧妙的数据持久性以及分区、备份的设计,数据总线成了实时系统和批处理系统的非常可靠的数据源头,兼顾两种处理范式;
- ActiveMQ 各种问题,不堪数据收集重任;
- Kafka 的各种巧妙设计,这点在其官方网站文档里说的也很详细;
- Kafka producer 推事件到 Kafka broker,Kafka consumer 从 Kafka broker 拉事件,queue 的核心功能之一本来就是缓存事件,consumer的担子轻松了;
- Kafka broker 单机硬盘容量很大,使用 RAID-10;broker 之间网络带宽很大;两者从硬件上给数据总线这个核心系统的可靠性和高性能打了预防针;
- 使用 Avro 作为事件序列化标准,建立 schema registry service,强制 schema change review,向后兼容,每个事件带有 schema id 和版本信息,所以从来不用担心反序列化时不知道数据格式;
- 因为数据的源头已经把 schema 的事情解决了,所以导入到 Hadoop 以及供 Hive、Pig 等读入就是顺理成章轻而易举了,一个人维护一个 loader 就可以导入各种事件流。HCatalog 集中管理 schema,隐藏 HDFS 文件路径的做法也有类似的哲学,使得 Hadoop 的数据管理拔升一个层次。Schema 这个做法再怎么强调其重要性都不为过,数据格式管理混乱,收集再多数据也是空守宝山两眼一抹黑;
- 用 Kafka 来收集 Kafka 系统自身的各种运行信息,实在是妙招,即统一了基础架构,又吃自家狗粮,大赞!
个人觉得这套设计比起 Facebook 的 scribe -> calligraphus -> HDFS -> { Continuous Copier -> HDFS, PTail -> Puma } 的方式干净许多,加上最近 LinkedIn 开源了基于 Kafka 的流处理框架 Samza (http://samza.incubator.apache.org/),LinkedIn 的技术还真是牛逼哄哄。。。
Building LinkedIn’s Real-time Activity Data Pipeline的更多相关文章
- SSIS Data Flow 的 Execution Tree 和 Data Pipeline
一,Execution Tree 执行树是数据流组件(转换和适配器)基于同步关系所建立的逻辑分组,每一个分组都是一个执行树的开始和结束,也可以将执行树理解为一个缓冲区的开始和结束,即缓冲区的整个生命周 ...
- kafka教程
一.理论介绍(一)相关资料1.官方资料,非常详细: http://kafka.apache.org/documentation.html#quickstart2.有一篇翻译版,基本一致,有些细节不 ...
- PipelineWise illustrates the power of Singer
转自:https://www.stitchdata.com/blog/pipelinewise-singer/ Stitch is based on Singer, an open source st ...
- Putting Apache Kafka To Use: A Practical Guide to Building a Stream Data Platform-part 1
转自: http://www.confluent.io/blog/stream-data-platform-1/ These days you hear a lot about "strea ...
- [DE] Pipeline for Data Engineering
How to build an ML pipeline for Data Science 垃圾信息分类 Ref:Develop a NLP Model in Python & Deploy I ...
- The Log: What every software engineer should know about real-time data's unifying abstraction
http://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-abo ...
- Streaming data from Oracle using Oracle GoldenGate and Kafka Connect
This is a guest blog from Robin Moffatt. Robin Moffatt is Head of R&D (Europe) at Rittman Mead, ...
- Awesome Big Data List
https://github.com/onurakpolat/awesome-bigdata A curated list of awesome big data frameworks, resour ...
- 100 open source Big Data architecture papers for data professionals
zhuan :https://www.linkedin.com/pulse/100-open-source-big-data-architecture-papers-anil-madan Big Da ...
随机推荐
- VMware vmdk文件打开方法
打开虚拟机设置——硬盘——映射,把虚拟机磁盘文件vmdk映射到系统中即可!
- C++11 function
#include <iostream> #include <functional> #include <vector> using namespace std; / ...
- FTP主动模式与FTP被动模式所需的端口
转载自:http://www.mofang.net/article/272/sort0963/2008/Article_11581.shtml FTP是仅基于TCP的服务,不支持UDP. 与众不同的是 ...
- 报错:Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
在保存数据的时候报这个错误,知道是验证错误,但到底是哪个属性验证错误呢? →打断点,运行,观察程序出错的地方→在出错的部分添加try...catch语句块→添加监视,输入((System.Data.E ...
- android:活动的最佳实践
2.6.1 知晓当前是在哪一个活动 这个技巧将教会你,如何根据程序当前的界面就能判断出这是哪一个活动.可能你会觉 得挺纳闷的,我自己写的代码怎么会不知道这是哪一个活动呢?很不幸的是,在你真正进入 ...
- 新版ADT创建项目时出现appcompat_v7的问题
做Android开发的朋友最近会发现,更新ADT至22.6.0版本之后,创建新的安装项目,会出现appcompat_v7的内容.并且是创建一个新的内容就会出现.这到底是怎么回事呢?原来appcompa ...
- FreeCommander 学习手册
概述 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3470728.html FreeCommander(下文简称FC),是Windows下面比较强大的文 ...
- Android Service总结01 目录
Android Service总结01 目录 1 Android Service总结01 目录 2 Android Service总结02 service介绍 介绍了“4种service 以及 它们的 ...
- 提高你的代码稳定性与可读性-lint工具
from://http://wiki.eoe.cn/page/Improving_Your_Code_with_lint.html 负责人:lingzideshensha 分任务原文链接:http:/ ...
- Linux、apache 无法使用PHP创建目录和文件
因为项目的需要,这几天搭建了虚拟机,环境是centos7+lamp,可是搭建好网站后,即使把权限放开了(777),我试了改父文件夹权限:重新创建文件夹,改权限再移动文件:更换文件夹的属主.统统不行.这 ...