hadoop是一个由Apache基金会所开发的分布式系统基础架构。它可以使用户在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。hadoop的框架最核心的设计就是HDFS和MapReduce,HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算。
Hadoop由ApacheSoftwareFoundation公司于2005年秋天作为Lucene的子项目Nutch的一部分正式引入。它受到最先由GoogleLab开发的Map/Reduce和GoogleFileSystem(GFS)的启发。
Hadoop是最受欢迎的在Internet上对搜索关键字进行内容分类的工具,但它也可以解决许多要求极大伸缩性的问题。
一、为什么需要hadoop?
在数据量很大的情况下,单机的处理能力无法胜任,必须采用分布式集群的方式进行处理,而用分布式集群的方式处理数据,实现的复杂度呈级数增加。所以,在海量数据处理的需求下,一个通用的分布式数据处理技术框架能大大降低应用开发难点和减少工作量。
我们先来看这么一个例子:我们要从一个用户使用app的日志数据中统计每个用户搜索了哪些关键词,这个日志文件有21G大,而我们的一个服务器只有8G内存,很显然一台服务器无法干这活。那么我们的处理方案应该是这样,见图一:
从图一我们知道,要顺利完成这么一个集群工作,它存在几个问题:
要我们自己编写一个程序来处理以上的问题是极其复杂的,我曾经写过一个脚本完成“如何分发业务应用到集群的各台服务器上”这个问题,复杂度也是不小的。
而hadoop却可以帮助我们处理上面的所有问题,我们只需要编写我们的业务程序即可。
二、hadoop是什么?
hadoop是用于处理(运算分析)海量数据的技术平台,并且是采用分布式集群的方式。
hadoop有两大功能:
hadoop三大核心组件:
hadoop两大使用角度:
spark和hadoop的区别:诞生的先后顺序、计算不同、平台不同。诞生的先后顺序,hadoop属于第一代开源大数据处理平台,而spark属于第二代。属于下一代的spark肯定在综合评价上要优于第一代的hadoop。
计算不同spark和hadoop在分布式计算的底层思路上,其实是极为相似的,即mapreduce分布式运算模型:将运算分成两个阶段,阶段1-map,负责从上游拉取数据后各自运算,然后将运算结果shuffle给下游的reduce,reduce再各自对通过shuffle读取来的数据进行聚合运算spark和hadoop在分布式计算的具体实现上,又有区别;hadoop中的mapreduce运算框架,一个运算job,进行一次map-reduce的过程;而spark的一个job中,可以将多个map-reduce过程级联进行。
平台不同spark和hadoop区别是,spark是一个运算平台,而hadoop是一个复合平台(包含运算引擎,还包含分布式文件存储系统,还包含分布式运算的资源调度系统),所以,spark跟hadoop来比较的话,主要是比运算这一块大数据技术发展到目前这个阶段,hadoop主要是它的运算部分日渐式微,而spark目前如日中天,相关技术需求量大,offer好拿。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)