设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

用Hadoop还是不用Hadoop?

2013-10-15 14:55| 发布者: joejoe0332| 查看: 3879| 评论: 0|原作者: 论坛|来自: 论坛

摘要:   Hadoop通常被认定是能够帮助你解决所有问题的唯一方案。 当人们提到“大数据” 或是“数据分析”等相关问题的时候,会听到脱口而出的回答:Hadoop!实际上Hadoop被设计和建造出来,是用来解决一系列特 定问题的。 ...


  3.你的问题会在多少时间内得到响应


  对于要求实时响应查询的问题来说,Hadoop并不是一个好的解决方案。Hadoop的计算任务要在map和reduce上花费时间, 并且在shuffle阶段还要花时间。 这些过程都不是可以在限定时间内可以完成的, 所以Hadoop并不适合用于开发有实时性需求的应用。一个实际的例子是,在期货或股票市场的程序化交易系统(Program Trading)中用到的成交量加权平均价格(Volume-weighted average price,VWAP)的计算,通常是实时的。这要求交易系统在限定时间内将结果给到用户,使得他们能够进行交易。


  (译者注:Hadoop的MapReduce中的shuffle过程指的是将多个map任务的结果分配给一个或多个reduc任务是的数据洗牌 和分配的操作,这篇blog解释的比较详细,http://langyu.iteye.com/blog/992916 。 这里的用例是在投资银行的程序交易中,如何计算股票或期货交易的基准价格。 这样的计算我觉得每次对数据的查询响应时间应该是在100ms以下的,详见http://baike.baidu.com/view /1280239.htm,http://baike.baidu.com/view/945603.htm。关于这个例子,相信投行的xdjm们应该有 更多的发言权。)


  对数据分析人员来说, 他们实际上非常想使用SQL这样的查询语言的。Hadoop系统并不能很好地支持对存储在Hadoop上的数据的随即访问 。即便你使用了HIVE来帮助将你的类似SQL的查询转换成特定MapReduce计算任务的时候, 数据的随机访问也不是Hadoop的强项。Google的 Dremel系统(和它的扩展, BigQuery系统)被设计成能够在几秒中之内返回海量的数据。启示SQL还能够很好地支持数据表之间的各种join操作。 另外一些支持实时响应的技术方案包括,从Berkley 加州分校(University of California, Berkeley)的AmpLab诞生的Shark项目, 以及Horntoworks领导的Stinger项目等。


  所以你需要问自己:

  你的用户和分析人员期望的数据访问的交互性和实时性要求是怎样的?

  你的用户希望要能够访问TB级别的数据吗,还是只需要访问其中的一部分数据?


  (译者注:Apache Hive 是Hadoop生态系统中的一个开源项目,其主要目的是在Hadoop系统上提供接近ANSI SQL的数据操作,以方便熟悉SQL语言的数据分析人员对Hadoop上的数据进行查询。Dremel 系统是Google开发的支持大数据的实时查询系统,它利用了精心设计的列式存储结构和大规模并行查询的机制, 在测试中能够到达在3秒内在分析和查询1PB数据的性能(英文论文,中文翻译 )。 BigQuery是Google基于Dremel开发出的开放给开发人员的SaaS服 务,可以对大量数据进行操作 。Berkeley Data Analytics Stack, BDAS 是AmpLab提供的基于Hadoop的大数据平台, 包含多个开源项目, 详见https://amplab.cs.berkeley.edu/software/。 Spark项目是BDAS中的一个项目, 它使用Scala语言开发,提供了类似于SQL的数据操作接口,完全兼容Hive。其主要的特点是利用底层的Spark将查询翻译为具体的计算任务。 Spark会通过大量使用Hadoop集群中结点上内存的方式来进行数据缓存和 在内存中进行实时计算, 达到加速查询和计算的目的。详见http://shark.cs.berkeley.edu/。 Hortonworks是目前几家专注于提供基于Hadoop的大数据系统和应用的公司之一, Stinger是用来 Horontoworks提出的为了提升Hive查询性能的一系列在基于Hadoop的项目和改进的总称,其主要方法是优化Hive的文件存储格式以及针 对Hive的查询请求进行分析优化。)


  我们应该认识到, Hadoop是在批处理的模式下工作的。 这意味着当有新的数据被添加进来的时候, 数据处理的计算任务需要在整个数据集合上重新运行一遍。所以,随着数据的增长,数据分析的时间也会随之增加。 在实际情况下,小块新数据的增加、单一种类的数据更改或者微量数据的更新都会实时地发生。通常, 商业程序都需要根据这些事件进行决策。 然而,不论这些数据多么迅速地被输入到Hadoop系统,在Hadoop处理这些数据的时候,仍然是通过批处理的方式。Hadoop 2.0的MapReduce框架YARN承诺将解决这个问题。 Twitter使用的Storm平台是另一个可行的、流行的备选方案。将Storm和例如Kafka这样的分布式消息系统结合在一起,可以支持流数据处理 和汇总的各种需求。痛苦的是,目前Storm并不支持负载平衡,但是Yahoo的S4版本中会提供。


  所以你需要问自己:

  我的数据的生命周期是多长?

  我的业务需要多迅速地从输入数据中获得价值?

  对我的业务来说响应实时的数据变化和更新有多重要?


  实时性的广告应用和收集传感器的监控应用都要求对流数据的实时处理。 Hadoop以及之上的工具并不是解决这类问题的唯一选择。 在最近的Indy 500车赛中,迈凯轮车队在他们的ATLAS系统中使用了SAP的HANA内存数据库产品来进行数据分析,并结合Matlab来进行各种模拟,对比赛中实 时得到的赛车遥测数据进行分析和计算。很多数据分析人员认为,Hadoop的未来在于能够支持实时性和交互性的操作。


  (译者注:YARN是Hadoop2.0采用的新不同于MapReduce的资源管理和任务处理的框架,它号称能够支持比MapReduce更 广的编程模型, 同时实现对实时查询和计算的任务的支持,详见http://hortonworks.com/hadoop/yarn/ 。Storm是由Twitter主导的开源项目, 是一种分布式数据处理系统,其主要特点是能够很好地支持实时性要求高的流数据处理,详见http://storm-project.net 。淘宝阿里巴巴都 在使用Storm。Simple Scalable Streaming System, S4 是由Yahoo创建的另外一个实时流数据处理的分布式系统,详见http://incubator.apache.org/s4/ 。这里有一篇网页引用了很多比较Yahoo S4和Storm的文章,http://blog.softwareabstractions.com /the_software_abstractions/2013/06/links-comparing-yahoo-s4-and-storm-for-continuous-stream-processing-aka-real-time-big-data.html 。Kafka是Apache 的一个开源项目,http://kafka.apache.org/。HANA是 SAP推出的商业产品,是可一个支持横向扩展的内存数据库解决方案,可以支持实时的大数据分析和计算。详见 http://www.sap.com/HANA。 Matlab是Mathworks公司开发的一个用于科学计算的开发类产品, www.mathworks.com/products/matlab. McLaren 车队是著名的英国F1车队, 它是F1方程式比赛中一支非常成功的队伍。同时他们也参加美国著名的Indy 500赛车比赛。他们使用大数据平台处理赛车数据来提高赛车成绩的故事可以看这篇文章,http://blogs.gartner.com/doug- laney/the-indy-500-big-race-bigger-data/ )


  4.我才和我的社交网络分手


  当数据能够被分解为 键值对,又不用担心丢失上下文或者某些数据之间隐性关系的时候,Hadoop,特别是MapReduce框架,是最好的选择。但 是图这样的数据结构中包含着各种隐性的关系, 如图的边、子树 、节点之间的父子关系、权重等,而且这些关系并非都能在图中一个结点上表示。这样的特性就要求处理图的算法要在每一次的迭代计算中加入当前图的完整或部分 的信息。 这样的算法基本上用MapReduce的框架是不可能实现的,即便能够实现也会是一种很迂回的解决方案。 另外一个问题是如何制定将数据切分到不同结点上的策略。如果你要处理的数据的主要数据结构是图或者是网络, 那么你最好选择使用面向图的数据库,比如NeoJ或者Dex。或者你可以去研究一下最新的Google Pregel 或者Apache Giraph项目。


  所以你需要问自己:

  我的数据的底层结构是否和数据本身一样重要?

  我希望从数据的结构中得到的启发和见解,是否和数据本身一样重要, 甚至更重要?


  (译者注:NeoJ 拥有商业和GPL双许可证模式,详见http://www.neo4j.org/,Dex是商业产品,详见http://www.sparsity- technologies.com/dex 。Apache Giraph 项目http://giraph.apache.org 是根据Google Pregel论文http://dl.acm.org/citation.cfm?id=1807184, http://kowshik.github.io/JPregel/pregel_paper.pdf 的开源实现 ,是用来分析社交网络这样可以被抽象为图或网络数据结构的大数据处理平台。 )


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部