博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】Hadoop是什么
阅读量:7060 次
发布时间:2019-06-28

本文共 1876 字,大约阅读时间需要 6 分钟。

文章转自:

1.1Hadoop是什么

Hadoop原来是Apache Lucene下的一个子项目,它最初是从Nutch项目中分离出来的专门负责分布式存储以及分布式运算的项目。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。下面列举hadoop主要的一些特点:

 

*         扩容能力(Scalable:能可靠地(reliably)存储和处理千兆字节(PB)数据。

*         成本低(Economical:可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。

*         高效率(Efficient:通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理它们,这使得处理非常的快速。

*         可靠性(Reliablehadoop能自动地维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务。

 

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFSHDFS有着高容错性(fault-tolerent)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relaxPOSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。

 

Hadoop还实现了MapReduce分布式计算模型。MapReduce将应用程序的工作分解成很多小的工作小块(small blocks of work)HDFS为了做到可靠性(reliability)创建了多份数据块(data blocks)的复制(replicas),并将它们放置在服务器群的计算节点中(compute nodes),MapReduce就可以在它们所在的节点上处理这些数据了。

       如下图所示:

 

 

 

       Hadoop API被分成(divide into)如下几种主要的包(package):

*         org.apache.hadoop.conf     定义了系统参数的配置文件处理API

*         org.apache.hadoop.fs          定义了抽象的文件系统API

*         org.apache.hadoop.dfs       Hadoop分布式文件系统(HDFS)模块的实现。

*         org.apache.hadoop.io         定义了通用的I/O API,用于针对网络,数据库,文件等数据对象做读写操作。

*         org.apache.hadoop.ipc       用于网络服务端和客户端的工具,封装了网络异步I/O的基础模块。

*         org.apache.hadoop.mapred         Hadoop分布式计算系统(MapReduce)模块的实现,包括任务的分发调度等。

*         org.apache.hadoop.metrics        定义了用于性能统计信息的API,主要用于mapreddfs模块。

*         org.apache.hadoop.record         定义了针对记录的I/O API类以及一个记录描述语言翻译器,用于简化将记录序列化成语言中性的格式(language-neutral manner)。

*         org.apache.hadoop.tools    定义了一些通用的工具。

*         org.apache.hadoop.util       定义了一些公用的API

1.2    Hadoop的框架结构

Map/Reduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的,Google已经将它完整的MapReduce论文公开发布了。其中对它的定义是,Map/Reduce是一个编程模型(programming model),是一个用于处理和生成大规模数据集(processing and generating large data sets)的相关的实现。用户定义一个map函数来处理一个key/value对以生成一批中间的key/value对,再定义一个reduce函数将所有这些中间的有着相同keyvalues合并起来。很多现实世界中的任务都可用这个模型来表达。

 

 

Map/Reduce模型计算示意图

 

HadoopMap/Reduce框架也是基于这个原理实现的

转载于:https://www.cnblogs.com/david-zhang-index/archive/2012/04/25/2470374.html

你可能感兴趣的文章
re:Invent第三天:除了拥抱混合云,AWS还一口气发了这些新产品
查看>>
Java工程师的成长路线图是什么?
查看>>
RedHat发布JBoss 7.2,完全支持Java EE 8规范
查看>>
红帽发布第四季度和2019财年报告,多项指标维持两位数增速
查看>>
精益业务分析宣言解读
查看>>
Amazon Aurora新增“回溯”特性,让DB集群可以回退到特定时间点
查看>>
解读2015之Spark篇:新生态系统的形成
查看>>
为什么你写的代码糟透了?
查看>>
从蚂蚁金服实践入手,带你深入了解 Service Mesh
查看>>
同事反馈环:为什么度量和会议还不够充分
查看>>
Facebook Sonar:一款可视化及交互式移动应用调试工具
查看>>
.NET Core 3.0中的数据库驱动框架System.Data
查看>>
取代Python多进程!伯克利开源分布式框架Ray
查看>>
极客邦、InfoQ、听云联合主办的首届APMCon 2016大会回顾
查看>>
语义鸿沟、异构鸿沟、数据缺失,多模态技术如何跨过这些坎?
查看>>
一份运维监控的终极秘籍!监控不到位,宕机两行泪
查看>>
简明高效的 Java 并发编程学习指南
查看>>
PHP设计模式
查看>>
敏捷领导力的反面模式
查看>>
Centos7 配置LAM(MariaDB)P,以及PHP连接数据库的乱码问题
查看>>