网赢中国专注大数据营销 [会员登录][免费注册][网赢中国下载]我要投稿|加入合伙人|设为首页|收藏|RSS
网赢中国是大数据营销代名词。
大数据营销
当前位置:网赢中国 > 行业资讯 > 技术文章 > 大数据营销技术文章 > Apache Hadoop准实时数据处理的架构模式-Hadoop
Apache Hadoop准实时数据处理的架构模式-Hadoop
编辑:董飞 发布时间: 2015-6-24    文章来源:36大数据
大数据营销

  



  评估好哪一种流架构模式最适合你的案例,是成功生产开发的先决条件。


  Apache Hadoop 生态系统已成为企业实时地处理和挖掘大数据的首选。 Apache的Kafka, Flume, Spark, Storm, Samza等技术在不断地推进新的可能。人们很容易泛化大规模实时数据案例,但其实他们可以细分为几种架构模式,Apache系统里的不同组件适合于不同的案例。


  这篇文章探讨四种主要的设计模式,案例来自于我们企业客户的数据中心的实例,并解释如何在Hadoop上实现这些架构模式。


  流处理模式


  四种流模式(经常串联使用)为:


  流采集:低延迟将数据输入到HDFS,Apache HBase和Apache Solr。


  基于外部环境的准实时事件处理: 对事件采取警报,标示,转化,过滤等动作。这些动作的触发可能取决于复杂的标准,例如异常监测模型。通常的使用案例,例如准实时的欺诈监测和推荐系统,需要达到100毫秒以内的延迟。


  准实时事件分割处理:类似于准实时事件处理,但通过将数据分割获得一些好处—例如将更多相关外部信息存入内存。这个模式也要求延迟在100毫秒以内。


  为整合或机器学习使用的复杂拓扑结构:流处理的精髓:实时地通过复杂而灵活的操作从数据中获取答案。这里,因为结果通常依赖于一段窗口内的计算,需要更多的活跃的数据, 于是重点从获得超低延迟转移到了功能性和准确性。


  接下来,我们将介绍如何用可检测的,可被证明的和可维护的方式来实现这些设计模式。


  流采集


  传统上,Flume是最为推荐的流采集系统。它的大的源和池囊括了所有关于消费什么和写到哪里的基础(关于如何配置和管理flume,参考Using Flume,由O’Reilly 出版的Cloudera工程师/Flume 项目管理委员会成员Hari Shreedharan编写)。


  


Apache Hadoop

 


  Figure 1译者附:Flume架构


  在过去的一年中,Kafka也变得非常受欢迎,因为playback和replication等特性。由于Flume和Kafka有重叠的目标,他们的关系常常令人困惑。他们如何配合?答案是简单的:Kafka的管道和Flume的通道类似,虽然是一个更好的管道,原因就是刚才所述的特性。一个通行的方法就是用Flume作为源(source)和池(sink),而Kafka是他们中间的管道。


  下图阐明kafka如何作为Flume的上游数据和下游目的,或Flume管道。


  


Apache Hadoop

 


  下图的设计是具有大规模拓展性,经过实战检验的架构设计,由Cloudera 管理者监控,容错,并且支持回放。


  


Apache Hadoop

 


  值得注意的一件事就是,这个设计多么优雅地处理故障。Flume 池从Kafka消费者群里取回。通过Apache zookeeper的帮助,Kafka 消费者群取回topic的位移。如果一个Flume池发生故障,Kafka消费者将把负载重新分发到其他的池中。当那个池恢复了,消费者池将重新分发。


  基于外部环境的准实时事件处理


  重申一下,这个模式的适用案例通常是观察事件流入然后采取立即动作,可以是转化数据或一些外部操作。决策的逻辑依赖于外部的档案或元数据。一个简单并且可拓展的实现方法是,在你的Kafka/Flume架构中添加源(Source)或池(Sink)Flume拦截器。只需简单配置,不难达到低毫秒级延迟。


  Flume拦截器允许用户的代码对事件或批量事件进行修改或采取动作。用户代码可以与本地内存或外部Hbase交互,以获取决策需要的档案。Hbase通常可以4-25毫秒内给予我们信息,根据网络状况,模式概要,设计和配置而有所不同。你也可以将Hbase配置为永远不停止服务或被中断,即便在故障情况下。


  


Apache Hadoop

 


  这一设计的实现除了拦截器中应用的具体逻辑几乎不需要编程。Cloudera管理器提供直观的用户界面,可以部署这个逻辑,包括连结,配置,监测这一服务。


  准实时基于外部环境的分割化的事件处理


  下图的架构(未分割方案),你将需要频繁查询Hbase,因为针对某一事件的外部上下文环境在flume拦截器的本地内存中装不下。


  


Apache Hadoop

 


  但是,如果你定义一个键值来分割数据,你将可以把数据流匹配到相关上下文的一个子集。如果你将数据分割成十部分,那么你只需要将十分之一的档案放入内存里。 Hbase是快,但本地内存更快。Kafka允许你自定义分割器来分割数据。


  注意,在这里,Flume并不是必须的;根本的方案只是一个Kafka消费者。所以,你可以只用一个YARN消费者或只有Mapper的MapReduce。


  针对集成或机器学习的复杂拓扑


  到此为止,我们探索了事件层面的操作。然而,有时你需要更复杂的操作,例如计数,求平均,会话流程,或基于流数据的机器学习建模。在这种情况,Spark流处理是最理想的的工具,因为:


  和其他工具相比,Spark易于开发


  Spark丰富简明的API让建设复杂拓扑变得容易


  实时流处理和批处理的代码相似


  只需很少的修改,实时小量流处理的代码就可以用于大规模离线的批处理。不仅减少了代码量,这个方法减少测试和整合需要的时间。


  只需了解一个技术引擎


  训练员工了解一个分布式处理引擎的机制和构件是有成本的。使用spark并标准化将会合并流处理和批处理的成本。


  微批处理帮你更可靠地进行拓展规模


  在批处理层面的应答将允许更多的吞吐量,允许无需顾忌双发的解决方案。微批处理也帮助在大规模下高效发送修改到HDFS或Hbase。


  与Hadoop生态系统的集成


  Spark与HDFS,Hbase和Kafka有很深的集成。


  无丢失数据的风险


  由于有了WAL和Kafka,Spark流处理避免了故障时丢失数据的风险


  易于排错和运行


  在本地的IDE中你就可以对你的spark流处理代码进行排错和逐步检查。而且,代码和普通函数式程序代码类似,对Java或Scala程序员来说,无需花很多时间就能熟悉。(Python也支持)


  流处理是天然状态化的


  Spark流处理中,状态是“第一公民”,意味着很容易写基于状态的流处理应用,对节点的故障可恢复。


  作为实际的标准,Spark现在正在得到整个生态系统的长期投入


  在写此文时,spark在30天内已有700次左右的提交—和其它框架相比,例如Storm,只有15次的提交。


  你可以使用机器学习的库


  Spark的MLlib库越来越受欢迎,它的功能只会越来越强大。


  如果需要,你可使用SQL结构化查询语言


  通过Spark SQL,你可以为你的流处理应用添加SQL逻辑,从而简化代码


  结论


  流处理和几种可能的模式有很强大的功能,但正如你在这篇文章所了解,你可以通过了解哪一种设计模式适合你的案例,从而最少量的代码做非常好的事情。


  Ted Malaska是Cloudera解决方案架构师,Spark,Flume和Hbase的贡献者,O’Reilly书籍 《Hadoop 应用架构》的合作作者。


  End.


  Ted Malaska 译:Robin robinlee@cmu.edu


  原文地址:Architectural Patterns for Near Real-Time Data Processing with Apache Hadoop


 


  本文由 董飞老师翻译并投稿至36大数据,转载必须获得原文作者、译者和本站的同意。拒绝任何不标明作者和出处的转载。


大数据营销
编辑推荐
图片行业资讯
  • 雷军隔空喊话董明珠:格力 小米欢迎你
  • 杨元庆:Moto在华上市一周预定量超100万
  • 小米洪锋谈O2O布局:做商城不做具体服务
  • 盖茨向不知名实体捐赠15亿美元微软股票 持股降至3%
  • 刘强东:允许我获取数据 冰箱免费送给你
营销资讯搜索
大数据营销
推荐工具
    热点关注
    大数据营销
    大数据营销
    大数据营销
    大数据营销
     

    大数据营销之企业名录

    网络营销之邮件营销

    大数据营销之搜索采集系列

    大数据营销之QQ号采集

    大数据营销之QQ精准营销

    大数据营销之QQ消息群发

    大数据营销之空间助手

    大数据营销之QQ联盟

    大数据营销之QQ群助手
     
    设为首页 | 营销资讯 | 营销学院 | 营销宝典 | 本站动态 | 关于网赢中国 | 网站地图 | 网站RSS | 友情链接
    本站网络实名:网赢中国  国际域名:www.softav.com  版权所有 2004-2015  深圳爱网赢科技有限公司
    邮箱:web@softav.com 电话:+86-755-26010839(十八线) 传真:+86-755-26010838
    在线咨询:点击这里给我发消息 点击这里给我发消息 点击这里给我发消息  点击这里给我发消息  点击这里给我发消息

    深圳网络警
    察报警平台
    公共信息安
    全网络监察
    经营性网站
    备案信息
    不良信息
    举报中心
    中国文明网
    传播文明
    分享