设为首页收藏本站

LUPA开源社区

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

用Hadoop还是不用Hadoop?

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

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

  5.MapReduce的模具


  很多的计算任务、工作及算法从本质上来说就是不适合使用MapReduce框架的。 上一章中已经谈到了其中一类的问题。另一类的问题是,某些计算任务需要上一步计算的结果来进行当前一步的计算。一个数学上的例子就是斐波那契数列的计算。 某些机器学习的算法,如梯度和最大期望等,也不是很适合使用MapReduce的模式。很多研究人员已经对实现这些算法中需要的特定优化和策略(全局状 态,计算时将数据结构传入进行引用等)给出了建议,但是如果用Hadoop来实现具体算法的话,还是会变得很复杂而且不易被理解。


  所以你需要问自己:

  我的业务是否对特定的算法或者领域相关的流程有非常高的要求?

  技术团队是否有足够的能力和资源来分析算法是否可以使用MapReduce框架?


  (译者注:梯度方法, gradient method通常用于数学优化计算中,详见http://zh.wikipedia.org/wiki/%E6%A2%AF%E5%BA%A6%E4 %B8%8B%E9%99%8D%E6%B3%95。最大期望算法maximization expectation algorithm ,通常用于概率模型及相应的机器学习算法中, http://zh.wikipedia.org/zh-cn/%E6%9C%80%E5%A4%A7%E6%9C%9F%E6%9C%9B%E7%AE%97%E6%B3%95 )


  除此之外,需要考虑另外一些情况, 比如,数据总量并不大,或者数据集虽然很大,但主要是由上亿的小文件组成,而且不能拼接(如,许多图形文件需要以不同的形状被输入进来)。正如我们之前说 到的,对于那些不适合使用MapReduce分割、合并原则的计算任务,如果用Hadoop来实现他们的话,会让Hadoop的使用变得大费周折。


  现在我们已经分析了在哪些情况下Hadoop不合适,让我们看一下在哪些情况下使用Hadoop是正确的选择。


  你需要问自己,你的组织是否,

  想要从一堆文本格式的日志文件中抽取信息?

  想要将大多数是非结构化或者半结构化的数据转换为有用的、结构化的格式?

  有没有计算任务是每天晚上在整个数据集合上运行的?(比如说信用卡公司在晚上处理所有白天的交易记录)

  从一次数据处理中获取的结论和下一次计划要处理的结论是一致的(不像股票市场的价格,每一天都在变化)?

  如果以上答案都为“是”,那么你就应该深入研究Hadoop。


  以上所谈到的几类问题代表了相当大部分能够用Hadoop来解决的商业问题(尽管很多行业报告的结论是将这些类别的Hadoop系统部署到生产 环境 中并不是一件容易的事情)。对于某些计算任务,Hadoop的计算模型是非常合适的。 比如说, 你需要处理海量的非结构化或半结构化的数据,然后将内容进行汇总或者将相关计算结果转换成结构化的数据, 并且将结果提供给其他组件或系统使用。如果收集的数据可以很容易地被转换位一个ID以及和它对应的内容(用Hadoop的术语来说就是键值对,key- value pair),那么你就可以使用这种简单的关联来进行不同种类的汇总计算。


  总的来说, 关键是要认清你拥有的各种资源,并且理解想要解决的问题的本质。 结合本文提到的一些观点和你自己的理解和认识, 你就能够选择最适合你的工具。 在某些情况下, 最终的解决方案很有可能是Hadoop。


  你在使用Hadoop方面有哪些经验和教训? 请在评论中分享吧。

酷毙

雷人

鲜花

鸡蛋

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

最新评论

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

返回顶部