Hadoop初步认识
Hadoop的介绍:
Hadoop是一个适用于大数据的并行存储和计算的平台,是 Apache的一个用java 语言实现开源软件框架,实现了在大量计算机组成的集群中对海量数据进行分布式计算。Hadoop框架的核心组成是HDFS和MapReduce,HDFS 实现存储,而 MapReduce实现数据分析与处理。
Hadoop开源系统实现了MapReduce编程模型,采用了分布式存储方式提高了读写速度,并扩大了存储容量。采用 MapReduce来整合分布式文件系统上的数据,可保证分析和处理数据的高效。与此同时, Hadoop还采用存储冗余数据的方式保证了数据的安全性, Hadoop中的HDFS 的高容错性,以及它是基于 Java语言开发的,这使得Hadoop可以部署在低廉的计算机集群中,同时不限于某个操作系统。 Hadoop中的HDFS 的数据管理能力,MapReduce处理任务时的高效率,以及它的开源特性,使其在同类的分布式系统中大放异彩。 MapReduce编程模型之所以受到欢迎和迅速得到应用,在技术方面有三方面的原因:
1.MapReduce 所采用的是无共享大规模集群系统,集群系统具有良好的性价比和可伸缩性。
2.MapReduce 编程模型简单,易于理解,易于使用。
3.虽然基本的 MapReduce 模型只提供一个过程性的编程接口,但是在海量的数据环境,需要保证可伸缩性的前提下,通过使用合适的查询优化和索引技术, MapReduce仍然能够提供相当好的数据处理性能。
(一) 优点:
3)高效性。Hadoop 能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快;
4)高容错性。Hadoop 能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配;
(二) 缺点:
1)不适合低延迟数据访问。
2)无法高效存储大量小文件。
3)不支持多用户写入及任意修改文件。
Hadoop的角色组成:
Hadoop核心项目
• HDFS: Hadoop Distributed File System 分布式文件系统
• MapReduce:并行计算框架
HDFS的架构
• 主从结构
• 主节点,只有一个:namenode
• 从节点,有很多个:datanode
• namenode负责:
• 接收用户操作请求
• 维护文件系统的目录结构
• 管理文件与block 之间关系, block与datanode 之间关系
• datanode负责:
• 存储文件
• 文件被分成block 存储在磁盘上
• 为保证数据安全,文件会有多个副本
MapReduce的架构
• 主从结构
• 主节点,只有一个:JobTracker
• 从节点,有很多个:TaskTracker
• JobTracker负责:
• 接收客户提交的计算任务
• 把计算任务分给TaskTracker执行
• 监控TaskTracker 的执行情况
• TaskTracker负责:
• 执行JobTracker 分配的任务
Hadoop发展简史:
Hadoop是由 Apache Lucence的创始人Doug Cutting 创建的。 Hadoop这个名字不是一个缩写,而是一个虚构的名字。是创建者 Cutting的孩子给一头吃饱了的棕黄色大象取的。
Apache Nutch 项目始于 2002年,一个开源的网络搜索引擎,它本身是 Lucene项目的一部分,Lucence是一个广泛使用的文本搜索系统库。这个可以运行的网页爬取工具和搜索引擎系统很快投入使用。但后来,开发者认为这一架构可扩展不够,不能解决数十亿网页的搜索问题。
2003年, Google发表的一篇描述Google分布式文件系统 (简称GFS) 的论文为他们提供了及时的帮助,文中称Google正在使用此文件系统。 GFS或类似的东西,可以解决他们在网络抓取和索引过程中产生的大量的文件的存储需求。具体而言, GFS会省掉管理所花的时间,如管理存储节点。
2004年,他们着手实现一个开源的应用,即 Nutch的分布式文件系统(NDFS)。也在同一年, Google发表了论文,向全世界介绍了 MapReduce。
2005年初, Nutch的开发者在Nutch 上实现了一个 MapReduce系统,到年中,所有主要的 Nutch算法被移植到使用MapReduce和 NDFS来运行。
2006年 2月,开发人员将NDFS和 MapReduce移出Nutch 形成Lucene的一个子项目,称为 Hadoop。Apache Hadoop 项目正式启动以支持 MapReduce和HDFS 的独立发展。大约在同一时间, Doug Cutting加入Yahoo !,雅虎为此组织了一个专门的团队和资源,将 Hadoop发展成一个能够处理Web数据的系统。
2008年 1月,Hadoop 已成为Apache的顶级项目,证明了它的成功、多样化、活跃性。
Hadoop大事记
2004年 -- 最初的版本( 现在称为 HDFS和MapReduce) 由Doug Cutting和 Mike Cafarella开始实施。
2005年 12月 -- Nutch 移植到新的框架, Hadoop在20 个节点上稳定运行。
2006年 01月 -- Doug Cutting 加入雅虎。
2006年 02月 -- Apache Hadoop 项目正式启动以支持 MapReduce和HDFS 的独立发展。
2006年 02月 -- 雅虎的网格计算团队采用 Hadoop。
2006年 04月 -- 标准排序 (10 GB每个节点) 在188个节点上运行 47.9个小时。
2006年 05月 -- 雅虎建立了一个 300个节点的Hadoop 研究集群。
2006年 05月 -- 标准排序在 500个节点上运行42 个小时(硬件配置比 4月的更好) 。
2006年 11月 -- 研究集群增加到 600个节点。
2006年 12月 -- 标准排序在 20个节点上运行1.8 个小时, 100个节点3.3 小时,500个节点 5.2小时,900 个节点7.8个小时。
2007年 01月 -- 研究集群到达 900个节点。
2007年 04月 -- 研究集群达到两个 1000个节点的集群。
2008年 04月 -- 赢得世界最快 1TB数据排序在900 个节点上用时 209秒。
2008年 10月 -- 研究集群每天装载 10 TB的数据。
2009年 03月 -- 17 个集群总共 24 000台机器。
2009年 04月 -- 赢得每分钟排序, 59秒内排序500 GB( 在1400个节点上 )和173 分钟内排序 100 TB数据(在3400个节点上 )。
Hadoop初步认识的更多相关文章
- hadoop学习第一天-hadoop初步环境搭建&伪分布式计算配置(详细)
一.虚拟机环境搭建 我们用的虚拟机为vmware,Linux镜像为centOS6.5. vmware安装 安装没什么多说的,一路下一步,但是在新建虚拟机的时候有两个地方需要注意: 1.分配处理器1个就 ...
- Hadoop初步简介
Hadoop产生背景: 传统方式,我们使用数据库来对数据进行管理.可是随着数据量的增加,我们要对这个数据库中的海量数据进行处理, 从中提取出有效的信息,这时候面临的问题随之而来: 1.海量数据读取,采 ...
- Hadoop初步学习
我们老板理解的大数据是,从数据到知识的转化.大数据目前的应用如 支付宝金融大数据.腾讯出行大数据等. 大数据的工作就是从海量数据源中筛选,梳理对自己有用的数据,整合成合适的数据结构,存储并进行可视化. ...
- CentOS 配置hadoop
Hadoop是用作处理大数据用的,核心是HDFS.Map/Reduce.虽然目前工作中不需要使用这个,但是,技多不压身,经过虚拟机很多遍的尝试,终于将Hadoop2.5.2的环境顺利搭建起来了. ...
- hadoop搭建初步总结
1.安装JDK1.1上传运用软件FileZilla,将windows上的jdk压缩包放到linux的root目录下 1.2解压jdk #创建文件夹 mkdir /usr/java(不要挂在在" ...
- Hadoop: the definitive guide 第三版 拾遗 第十二章 之Hive初步
Hive简介 Hive是建立在 Hadoop 上的数据仓库基础构架.它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储.查询和分析存储在 Hadoop 中的大规模数据的机制 ...
- Hadoop的初步理解
一.整体思维导图 二.HDFS(Hadoop分布式文件系统) 说明 NameNode:保存整个文件系统的目录信息.文件信息及分块信息,这是由唯一一台主机专门保存,当然这台主机如果出错,NameNode ...
- hadoop之mapreduce编程实例(系统日志初步清洗过滤处理)
刚刚开始接触hadoop的时候,总觉得必须要先安装hadoop集群才能开始学习MR编程,其实并不用这样,当然如果你有条件有机器那最好是自己安装配置一个hadoop集群,这样你会更容易理解其工作原理.我 ...
- Hadoop MapReduce 初步学习总结
在Hadoop中一个作业被提交后,其后具体的执行流程要经历Map任务的提交中间结果处理,Reduce任务的分配和执行直至完成这些过程,下面就是MapReduce中作业详细的执行流程图(摘自<Ha ...
随机推荐
- 0<=i<iLen 在C++中
for( i=0;0<= i<2; i++)这样的话会出现什么错误呢? 一直循环下去, 因为i>=一直成立
- ECMAScript 5.1 Edition DOC 学习笔记
1.类型 string number object boolean null undefined symbol (es6) attention : (typeof null) 值为 'object', ...
- Docker容器里时间与宿主机不同步
docker容器里时间设置: 第一种: Dockerfile文件中添加一行:RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime或者 第二种: ...
- ngx_cdecl
ngx_cdecl 作为跨平台用,现在理解有限,以后补充 _cdecl 是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些 ...
- js中使用使用原型(prototype)定义方法的好处
经常在前端面试或是和其他同行沟通是,在谈到构造在JS定义构造函数的方法是最好使用原型的方式:将方法定义到构造方法的prototype上,这样的好处是,通过该构造函数生成的实例所拥有的方法都是指向一个函 ...
- [SQL Server]树形结构的创建
对于SQL Server来说,构建显示一个树形结构不是一件容易的事情,逻辑构造能力不是它的强项.不过也不是说它没有能力干这个事情,只要换一种思维方式就可以理解它的工作原理. 例如,现在有一张表的内容如 ...
- PyQt 5.2 发布,此版本完全支持Qtv5.2.0
PyQt 5.2 发布,此版本完全支持Qtv5.2.0 :包括了新的 QtBluetooth,QtPositioning,QtMacExtras,QtWinExtras 和 Qt11Extras 模板 ...
- c# 模拟表单提交,post form 上传文件、大数据内容
表单提交协议规定:要先将 HTTP 要求的 Content-Type 设为 multipart/form-data,而且要设定一个 boundary 参数,这个参数是由应用程序自行产生,它会用来识别每 ...
- 【socket】高级用法-异步
ReceiveAsync ReceiveFromAsync ReceiveMessageFromAsync
- C#时间戳与时间互转
/// <summary> /// 时间戳转成时间类型 /// </summary> /// <param name="timeStamp">& ...