首页 > Hadoop是什么? 有什么用?

Hadoop是什么? 有什么用?

各位大神,这个是面试题啊,小弟是菜鸟,最好,用比较通俗的话说,最好不要直接 百度copy 其他人的,最好是自己处理总结过的,因为,本人已经百度了很多次了。


概念性的东西就不说了,关于hadoop的一些项目实例;希望能帮到你。


注意我下面的回答不是在面试中的回答,要是问“如何在面试中回答答主所问的问题”,私以为按照楼上那篇回答已经足够了,那么我为什么还要回答呢?因为我觉得,他的回答会让懂得人更懂,没法让不懂的人懂。

先看hadoop的为什么会存在?我分配你一个任务:统计一篇文章所有单词出现的次数,最后以键值对的形式保存到一个文件中。这任务描述很简单吧?但是搞过acm的人或者有经验的程序员会问一个问题,你的数据量是多少?你的运行要求时间是多少?好的,要求1.字符数小于10^8,只要稍微懂数据结构的人,都会想到用map去存,加上文件读写来完成,这个数据量勉强可以。但是时代在发展,数据在变多,数据量规模变大了,现在我有1TB,1PB的数据量呢?先别去想hadoop,交给你这个任务,你怎么完成?分布式,云计算,你可能知道这些词,但我说很多人不懂,是大部分传统程序员没去涉足这一块。一台电脑的性能已经不足以胜任这个任务了,我们想到把这个任务分摊给若干个子PC来完成,想想有什么问题没有?你原来有一个问题,现在你有了两个,多个电脑如何通信?hadoop帮你完成数据交互(MAPREDUCE),处理协议(SSH)等等。这种思想类似于分治(但不严谨)。

怎么分配任务?想想你是一个领导(MASTER),现在有一个任务需要分发给手下(SLAVE)去做,你会分析谁的能力强,于是把难的任务,多的任务给他;已经分配好任务后,有人无法完成,还需要更厉害的手下去帮他解决(MASTER自己不解决任务)。总体而言,你需要一个任务调度机制,而hadoop帮你按照内部算法帮你调度管理。不觉得有点类似操作系统的任务管理机制吗?( 我这么觉得:) )

回答问题,我们需要wordcount,传统模式小规模数据用数据结构就能解决,大规模数据我们用了hadoop解决。而现在这个时代,数据规模越来越大,我们可能会越来越依赖于hadoop这样的大数据处理平台来处理问题。这也是hadoop为什么这么火的原因。

最后强调下,大规模数据!=大数据;hadoop只是个离线(处理静态数据)大数据平台,hadoop不利于处理小规模问题(会多出资源调度的开销)...想要对hadoop有系统了解的还是需要自己看官方文档。最后强调下,我旨在把不懂的人讲懂,类比不恰当的地方请大家别纠结。


哎,其实Hadoop就是Apache旗下的一个云计算全家桶!(别去联想百度全家桶……)

第一代就是包含
HDFS 分布式文件存储系统
MAP REDUCE 分布式计算框架

第二代增加了
YARN 集群计算资源管理系统(把一大片机器当做一台超级电脑有木有!而且用这个,不仅可以跑MR,跑其他的计算框架例如Spark,STORM,甚至挂个Docker跑个网站都可以噻)
同时升级了MAP REDUCE用于支持在YARN上跑(其实YARN就是吸收了一代MR的部分功能,所以二代MR就是做得更精炼灵活啦)

除了基本款,还可以自选附加套餐,例如Hive,Pig,Tez等,他们会利用MR和HDFS来做大数据查询呀等等,有了这些套餐,你连MAP REDUCE程序都不用写,会写SQL就成,他们会帮你生成可分布式执行的程序的!

当然了,Hadoop全家桶也会依赖一些其他蘸酱,比如
Zookeeper 分布式一致性服务
有了他,做容错啦,统一配置啦,都可安心了,妈妈再也不用担心A节点和B节点所持有的元数据不一致啦~

【热门文章】
【热门文章】