首先,选择Hadoop,其实是选择的的MapReduce,把大块的任务切分为若干份小任务,由集群的每台服务器来计算,最后把结果合并。
这个思想是解决大数据的最直接的方案,一台机器放不下的数据,我用多台机器来解决。这和分治算法的思路是一致的。
那么,为什么选择Hadoop?
因为开源,免费,上万开发者维护了很多年了,资料也很多,使用起来比较容易,出了问题一般之前也有人给你踩过坑写过资料了。
当然了,国内一些实力强的大公司,喜欢自己开发一套MapReduce,其实思想都摆在那里,就是实现而已,有些公司不喜欢用Java,所以就用C、C++自己做。比如腾讯,从Google挖了一批人,来了就先搞一套自己的GFS和MapReduce,实际效果如何呢?开发了一年多,bug很多,只是靠内部关系在推,当初如果直接用Hadoop,也许没这么曲折,据了解搜搜拆分之后,也转到HBase和Hadoop了。
Apache在分布式领域除了Hadoop,还有HBase和Zookeeper这两大杀器。HBase我不太熟,Zookeeper基本是目前分布式一致协作算法里的头牌了,大公司有自己搞MapReduce的,但是自己搞分布式协作算法的不多,基本都直接用zookeeper了,为什么?因为实现起来太难太复杂。
谢邀
— 完 —
本文作者:爱宇直
【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)
此问题还有 45 个回答,查看全部。
延伸阅读:
Hadoop和bi如何结合?搭建一个基于hadoop+hive的数据仓库,它的前端展现如何实现?如何实现BI?
基于 hadoop 的 mapreduce+hdfs 的 Hive 云数据仓库除了淘宝在用外,还有哪些企业在用?应用的场景是否是结合 Hbase 一起使用?