转自: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的更多相关文章

  1. SSIS Data Flow 的 Execution Tree 和 Data Pipeline

    一,Execution Tree 执行树是数据流组件(转换和适配器)基于同步关系所建立的逻辑分组,每一个分组都是一个执行树的开始和结束,也可以将执行树理解为一个缓冲区的开始和结束,即缓冲区的整个生命周 ...

  2. kafka教程

    一.理论介绍(一)相关资料1.官方资料,非常详细:   http://kafka.apache.org/documentation.html#quickstart2.有一篇翻译版,基本一致,有些细节不 ...

  3. PipelineWise illustrates the power of Singer

    转自:https://www.stitchdata.com/blog/pipelinewise-singer/ Stitch is based on Singer, an open source st ...

  4. 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 ...

  5. [DE] Pipeline for Data Engineering

    How to build an ML pipeline for Data Science 垃圾信息分类 Ref:Develop a NLP Model in Python & Deploy I ...

  6. 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 ...

  7. 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, ...

  8. Awesome Big Data List

    https://github.com/onurakpolat/awesome-bigdata A curated list of awesome big data frameworks, resour ...

  9. 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 ...

随机推荐

  1. Android应用程序模型:应用程序,任务,进程,线程

    大多数操作系统,在应用程序所寄存的可执行程序映像(如Windows系统里的.exe).它所运行的进程以及和用户交互的图标和应用之间有一种严格的1对1关系.在Android系统里,这些关联要松散得多.并 ...

  2. [Ubuntu] 编译安装 PHP 依赖库

    编译环境 sudo apt-get -y install build-essential xml sudo apt-get -y install libxml2-dev pcre sudo apt-g ...

  3. ARM 编程平台+coresight

    http://www.keil.com/product/ DS-5:http://www.cnblogs.com/njseu/p/6023081.html http://www.arm.com/pro ...

  4. Managing DbContext the right way with Entity Framework 6: an in-depth guide by mehdime

    UPDATE: the source code for DbContextScope is now available on GitHub: DbContextScope on GitHub. A b ...

  5. How AOT compares to a traditional JIT compiler

    Ahead-of-Time (AOT) compilation is in contrast to Just-in-Time compilation (JIT). In a nutshell, .NE ...

  6. 使用Visual Studio 2012远程调试Windows Azure网站

    登录Windows Azure门户,点击"所有项目"中的网站名称. 点击"配置". 在"远程调试"选项中选择"打开",在 ...

  7. Netbeans 安装emmet插件

    一.下载插件 http://plugins.netbeans.org/plugin/48315/emmet 二.点击工具-> 插件 -> 已下载 -> 添加插件 ->(导入下载 ...

  8. python测试开发django-19.admin后台自定义显示

    前言 django的admin后台默认显示的内容很少,只显示了表的相关信息,查看字段内容需点开详情才能查看,不是很直观. 在admin.py文件里面是可以自定义相关的展示内容的,也可以添加搜索框,快速 ...

  9. 推荐一款移动端的web UI控件 -- mobiscroll

    用mobiscroll 可实现ios系统自带的选择器控件效果,支持几乎所有的移动平台(iOS, Android, BlackBerry, Windows Phone 8, Amazon Kindle) ...

  10. 用开源项目RangBar来实现有范围的SeekBar

    RangeBar是一个可以有选择范围的Seekbar,用这个项目其实是很简单的.就是一个自定义控件~ 一.布局文件 这里可以看到有很多属性可以定制,除了通过xml来定义也可以再java代码中进行定义. ...