Hadoop实现了一个分布式文件系统,设计用来部署在低廉的硬件上;而且提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。
Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加载(ETL)方面上的天然优势。Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像ETL这样的批处理 *** 作相对合适,因为类似这样 *** 作的批处理结果可以直接走向存储。
Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。
扩展资料
Hadoop 由许多元素构成。其最底部是 HDFS,存储 Hadoop 集群中所有存储节点上的文件。HDFS的上一层是MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。
通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。
对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的,这是由它自身的特点决定的。
这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。
参考资料来源:百度百科-Hadoop
hadoop的实现思想来自与Google对于 数据的处理和计算难题,而hadoop起源于Lucene,Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中
实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎.对于大数据,Lucene也就面临着和Google相似的问题了,那么Lucene的创始人Doug Cutting 他就是个java程序员,借鉴了Google的思想,so..
Hadoop分为两大部分:HDFS、Mapreduce。
HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
由于编写MapReduce程序繁琐复杂,而sql语言比较简单,程序员就开发出了支持sql的hive。hive的出现方便了程序员和没有计算机背景的数据分析人员。我们只需要编写相对简单的sql命令,hive会帮我们翻译为mapreduce程序交给计算机去执行。
mapreduceh这个计算框架每次执行都是从磁盘中读取的,而spark则是直接从内存中读取的。由于MapReduce 的框架限制,一个 MapReduce 任务只能包含一次 Map 和一次 Reduce,计算完成之后,MapReduce 会将运算结果写回到磁盘中(更准确地说是分布式存储系统)供下次计算使用。如果所做的运算涉及大量循环,比如估计模型参数的梯度下降或随机梯度下降算法就需要多次循环使用训练数据,那么整个计算过程会不断重复地往磁盘里读写中间结果。这样的读写数据会引起大量的网络传输以及磁盘读写,极其耗时,而且它们都是没什么实际价值的废 *** 作。因为上一次循环的结果会立马被下一次使用,完全没必要将其写入磁盘。
所以spark可以理解为mapreduce的改进升级版
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)