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 ...
随机推荐
- JAVA线程和进程区别
1,JAVA线程和进程区别? (1)简单来讲一个运行的程序就是一个进程,一个进程中可以有多个线程(线程是程序执行的最小单元). (2)线程有四种状态:运行,就绪,挂起,结束 (3)使用多线程的好处 使 ...
- HDU 5909 Tree Cutting 动态规划 快速沃尔什变换
Tree Cutting 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5909 Description Byteasar has a tree T ...
- Educational Codeforces Round 14 B. s-palindrome 水题
B. s-palindrome 题目连接: http://www.codeforces.com/contest/691/problem/B Description Let's call a strin ...
- CentOS下的apache配置支持php
修改Apache的配置文件httpd.conf(vi /etc/httpd/conf/httpd.conf) DirectoryIndex index.html index.php #添加index. ...
- 使用Puppeteer进行数据抓取(四)——图片下载
大多数情况下,图片获取并不是很困难的事情,获取图片的url,然后模拟浏览器请求即可.但是,有的时候这种方法往往无法生效,常见的情形有: 动态图片,每次获取都是一个新的,例如图片验证码,重新获取时是一个 ...
- STM32 F4 General-purpose Timers for Periodic Interrupts
STM32 F4 General-purpose Timers for Periodic Interrupts
- Revit Family API 添加材质参数设置可见性
start //添加类型 void AddType(FamilyManager familyMgr, string name, double w, double d) { FamilyType ...
- Java知识回顾 (1) 编译环境与基本变量类型
参考资料 runoob Java知识回顾序列的相关资料,主要来自 runoob,并对其中的知识进行概况或总结,去除对一个之前了解过Java的人员无关的知识点.以便能够使得一个新手,或之前有Java经验 ...
- webrtc在ubuntu14.04上的编译过程(12.04亦可)
转自:http://blog.csdn.net/xiangjai/article/details/44409751 一.虚拟机环境搭建 1.安装ubuntu 14.04虚拟机: 因为可以屏蔽svn版本 ...
- 侏罗纪世界2百度云在线观看迅雷下载高清BT下载
原名:Jurassic World: Fallen Kingdom 地区:美国 语言:英语 首播:2018-06-15(中国大陆) / 2018-06-22(美国) 电视台: 类型:动作 / 科幻 / ...