what hadoop good at

说白点就是适合真的非常大的数据量,并且数据本身是稳定的,查询的结果不要求太快。



数据驱动编程模型是将数据喂给不同的处理单元(带有相同或不同的执行逻辑). 运行是被数据的到达触发。因为处理只能访问分给它的数据, 因为数据共享天然被禁止了,就因为这样,所以没有必须进行协调数据的访问了,也就没有死锁等问题。


这不意味着一点也不需要数据访问协调,我们认为协调已经完成:定义处理单元是如何通过数据管道彼此连接的。

Map-Reduce编程模型是数据驱动编程模型的一个专门实现,,这种协调图是使用MapReduce工作job顺序完成的,在每个Map/Reduce工作中, 运行被切分成一个"map"段和一个"reduce"段phase. 在map段中, 每个被划分数据被处理,一个或多个结果产生,这些结果都带有一个key. 这个key用于路由输出结果给下第二个"reduce" 段phase, 在那里,带有同样key的数据被收集在一起,然后以一种聚合方式被处理。

注意在Map/Reduce模型中, 并行只有在一个工作job中发生,工作job之间是通过顺序方式实现的,不同的工作jobs 可以访问同样的数据, 必须了解工作job的串行执行可以消除数据之间协调访问的需要。

Hadoop 处理特点:
1. Hadoop是数据并行,处理串行. 在一个工作中job, 并行只在一个map段和一个reduce段中发生. 但是这两个段不能并行运行, reduce段直到map段完全完成后才能开始。

2.所有被map过程访问的数据都必须被冻结 (也不能有修改发生),直至整个工作job完成. 这就意味做Hadoop处理数据是在一个面向批处理batch-oriented风格的链条中实现的,, 这就注定它不适合在基于流stream-based处理的方式,在流处理中,数据流是持续的必须立即得到及时处理。

3.数据之间联系是通过一个分布式文件系统(HDFS)完成. 延迟会因为网络I/O开销发生了,这种延迟不会成为面向批处理模式的主要问题,在面向批处理模式中,吞吐量才是首要考虑的,但是这意味做Hadoop不适合实现对延迟要求很严格,甚至不允许有延迟发生的在线实时系统。

根据Hadoop以上特点,给出下来Hadoop不适合的场合:
1.需要数据低延迟性的在线数据处理,(比如股票系统,更新需要让所有人及时知道,不能有丝毫延迟。)

2.在一个大数据集中执一个小数据集的随机ad/hoc处理。

3.执行实时/基于流的处理模式,数据持续到达需要立即被处理(如视频等)。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值