看到了吗,一只小象在向我们走来
认识一下吧!
是什么
Hadoop是一个使用JAVA开发的开源框架,是一个可以分析和处理海量数据的软件平台。它允许在整个集群使用简单编程模型计算机的分布式环境存储并处理大数据。它的目的是从单一的服务器到上千台机器的扩展,每一个台机都可以提供本地计算和存储。
发展历史
雏形开始于2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。
2003年Google发表了一篇论文谷歌文件系统GFS(google File System),google公司为了存储海量搜索数据而设计的专用分布式文件系统,可运行在普通的廉价硬件上。
2004年Nutch创始人Doug Cutting基于Google的GFS论文实现了分布式文件存储系统名为NDFS。
2004年Google发表了一篇技术学术论文MapReduce。
2005年Doug Cutting基于MapReduce,在Nutch搜索引擎实现了该功能。
2006年,Yahoo雇用了Doug Cutting,Doug Cutting将NDFS和MapReduce升级命名为Hadoop,Yahoo开建了一个独立的团队给Goug Cutting专门研究发展Hadoop。
不得不说Google和Yahoo对Hadoop的贡献功不可没。
内部各个节点基本都是采用Master-Woker架构
核心内容
Hadoop的核心就是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用。
Hadoop旗下有很多经典子项目,比如HBase、Hive等,这些都是基于HDFS和MapReduce发展出来的。
要想了解Hadoop,就必须知道HDFS和MapReduce是什么。
HDFS
HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。
HDFS的设计特点是:
HDFS的关键元素:
MapReduce
MapReduce是Hadoop体系中数据存储管理的基础,mapreduce意为映射和规约,可简单理解为把指令分发到各个块上进行操作(映射)然后把各个块的计算结果合并(规约)。
MapReduce的关键元素:
总结
Hadoop典型应用有:搜索、日志处理、推荐系统、数据分析、视频图像分析、数据保存等。
Hadoop可运行于一般的商用服务器上,具有高容错、高可靠性、高扩展性等特点
特别适合写一次,读多次的场景
最后
要知道,Hadoop的使用范围远小于SQL或Python之类的脚本语言,所以不要盲目使用Hadoop,看完这篇文章,要知道Hadoop是否适用于你的项目。
另外,对于没有项目需求的童鞋们,小媛在面试时被问到了大量的大数据题目,主要都与MapReduce有关,有面试相关需求的童鞋记得重点关注MapReduce原理与应用鸥!
参考:
https://www.cnblogs.com/austinspark-jessylu/p/8746843.html
https://www.w3cschool.cn/hadoop/i1la1jyc.html
https://blog.csdn.net/liuxe1990/article/details/89577927