下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Hadoop简介报告人:程元杰hadoop是什么?hadoop怎么来的Hadoop你能拿来干什么hadoop有哪些子项目HDFS介绍Map/reduce计算架构Hadoop环境配置我当hadoop程序员目录hadoop是什么?Apache的Hadoop是一个商业硬件上运行的建造大型集群应用的框架。透明的Hadoop框架提供应用可靠性和大容量数据的解决方案。Hadoop的计算模式实现了一个名为Map/ Reduce的思想,如请求的任务是许多小碎片的工作,每一个工作可能在集群中的任一节点被执行。此外,它提供了一个分布式文件系统(HDFS),存储在具有高带宽的集群计算节点上。Map/Reduce和H
2、DFS的良好设计使得这个框架足以自动应付节点的故障。hadoop怎么来的 提及 Hadoop 一脉相承的另外两个开源项目 Nutch 和 Lucene ( 三者的创始人都是 Doug Cutting ),那绝对是大名鼎鼎。Lucene 是一个用 Java 开发的开源高性能全文检索工具包,它不是一个完整的应用程序,而是一套简单易用的 API 。在全世界范围内,已有无数的软件系统,Web 网站基于 Lucene 实现了全文检索功能,后来 Doug Cutting 又开创了第一个开源的 Web 搜索引擎( ) Nutch, 它在 Lucene 的基础上增加了网络爬虫和一些和 Web 相关的功能,一些
3、解析各类文档格式的插件等,此外,Nutch 中还包含了一个分布式文件系统用于存储数据。从 Nutch 0.8.0 版本之后,Doug Cutting 把 Nutch 中的分布式文件系统以及实现 MapReduce 算法的代码独立出来形成了一个新的开源项 Hadoop。Nutch 也演化为基于 Lucene 全文检索以及 Hadoop 分布式计算平台的一个开源搜索引擎。Hadoop你能拿来干什么 基于 Hadoop,你可以轻松地编写可处理海量数据的分布式并行程序,并将其运行于由成百上千个结点组成的大规模计算机集群上。hadoop是什么?hadoop怎么来的Hadoop你能拿来干什么hadoop有
4、哪些子项目HDFS介绍Map/reduce计算架构Hadoop环境配置我当hadoop程序员目录Hadoop子项目Hadoop Common:是Hadoop核心部分,用来支撑其他hadoop子项目HDFS: 一个给应用提供高吞吐量的分布式文件系统MapReduce: 用于在集群上分布式处理大数据集的软件架构其他与hadoop有关的项目Avro: 一个数据序列化得项目Cassandra: 一个可扩展的多master的,避免单节点失效的数据库Chukwa:一个用于管理大规模分布式系统的数据集系统HBase: 一个可扩展的,分布的数据库,支持对大表的结构化数据的存储Hive:一个数据仓库的基础设施,
5、提供数据汇总和特定查询。Mahout:一个可扩展的机器学习和数据挖掘库Pig: 并行计算的一个高层次的数据流语言和执行框架ZooKeeper:一个分布式应用的高性能协调服务hadoop是什么?hadoop怎么来的Hadoop你能拿来干什么hadoop有哪些子项目HDFS介绍Map/reduce计算架构Hadoop环境配置我当hadoop程序员目录HDFS结构仅有一个NameNode,存在单点失效问题NameNode 会以块标识和该块的第一个副本的 DataNode IP 地址作为响应。HDFS文件操作 它的主要目的是支持以流的形式访问写入的大型文件。如果客户机想将文件写到 HDFS 上,首先需
6、要将该文件缓存到本地的临时存储。如果缓存的数据大于所需的 HDFS 块大小,创建文件的请求将发送给 NameNode。NameNode 将以 DataNode 标识和目标块响应客户机。HDFS文件操作 同时也通知将要保存文件块副本的 DataNode。当客户机开始将临时文件发送给第一DataNode 时,将立即通过管道方式将块内容转发给副本 DataNode。客户机也负责创建保存在相同 HDFS 名称空间中的校验和(checksum)文件。在最后的文件块发送之后,NameNode 将文件创建提交到它的持久化元数据存储(EditLog 和 FsImage 文件)。 hadoop是什么?hadoo
7、p怎么来的Hadoop你能拿来干什么hadoop有哪些子项目HDFS介绍Map/reduce计算架构Hadoop环境配置我当hadoop程序员目录Map/reduce计算架构Hadoop的任务分配 Hadoop 中有一个作为主控的 JobTracker,用于调度和管理其它的 TaskTracker, JobTracker 可以运行于集群中任一台计算机上。TaskTracker 负责执行任务,必须运行于 DataNode 上,即 DataNode 既是数据存储结点,也是计算结点。 JobTracker 将 Map 任务和 Reduce 任务分发给空闲的 TaskTracker, 让这些任务并行运
8、行,并负责监控任务的运行情况。如果某一个 TaskTracker 出故障了,JobTracker 会将其负责的任务转交给另一个空闲的 TaskTracker 重新运行。 举例假设输入域是 one small step for man, one giant leap for mankind,对其进行词频统计。将输入分解,细分到Node1(one small step for man)Node2(one giant leap for mankind)运行 Map 函数将得出以下的键/值对列表:Node1:(one, 1) (small, 1) (step, 1) (for, 1) (man, 1)
9、Node2:(one, 1) (giant, 1) (leap, 1) (for, 1) (mankind, 1) 然后对这个键/值对列表应用 Reduce 函数,将得到以下一组键/值对:(one, 2) (small, 1) (step, 1) (for, 2) (man, 1)(giant, 1) (leap, 1) (mankind, 1)hadoop是什么?hadoop怎么来的Hadoop你能拿来干什么hadoop有哪些子项目HDFS介绍Map/reduce计算架构Hadoop环境配置我当hadoop程序员目录Linux Ubuntu 9.10Hadoop 0.20.0Sun-java
10、6-jdkSSH 包(为远程登录会话提供安全性协议)环境配置文件的配置操作配置文档Hadoop环境配置hadoop是什么?hadoop怎么来的Hadoop你能拿来干什么hadoop有哪些子项目HDFS介绍Map/reduce计算架构我当hadoop程序员目录我当hadoop程序员作为Hadoop程序员,他要做的事情就是:1、定义Mapper,处理输入的Key-Value对,输出中间结果。2、定义Reducer,可选,对中间结果进行规约,输出最终结果。3、定义InputFormat 和OutputFormat,可选,InputFormat将每行输入文件的内容转换为Java类供Mapper函数使用
11、,不定义时默认为String。4、定义main函数,在里面定义一个Job并运行它。然后的事情就交给系统了。 1.基本概念:Hadoop的HDFS实现了google的GFS文件系统,NameNode作为文件系统的负责调度运行在master,DataNode运行在每个机器上。同时Hadoop实现了Google的MapReduce,JobTracker作为MapReduce的总调度运行在master,TaskTracker则运行在每个机器上执行Task。 2.main()函数,创建JobConf,定义Mapper,Reducer,Input/OutputFormat 和输入输出文件目录,最后把Job
12、提交給JobTracker,等待Job结束。 3.JobTracker,创建一个InputFormat的实例,调用它的getSplits()方法,把输入目录的文件拆分成FileSplist作为Mapper task 的输入,生成Mapper task加入Queue。4.TaskTracker 向 JobTracker索求下一个Map/Reduce。 Mapper Task先从InputFormat创建RecordReader,循环读入FileSplits的内容生成Key与Value,传给Mapper函数,处理完后中间结果写成SequenceFile. Reducer Task 从运行Mappe
13、r的TaskTracker的Jetty上使用http协议获取所需的中间内容(33%),Sort/Merge后(66%),执行Reducer函数,最后按照OutputFormat写入结果目录。 TaskTracker 每10秒向JobTracker报告一次运行情况,每完成一个Task10秒后,就会向JobTracker索求下一个Task。程序例子 我们做一个简单的分布式的Grep,简单对输入文件进行逐行的正则匹配,如果符合就将该行打印到输出文件。因为是简单的全部输出,所以我们只要写Mapper函数,不用写Reducer函数,也不用定义Input/Output Format 源代码 源码大致介绍 RegMapper类的configure()函数接受由main函数传入的查找字符串,map() 函数进行正则匹配,key是行数,value是文件行的内容,符合的文件行放入中间结果。 main()函数定义由命令行参数传入的输入输出目录和匹配字符串,Mapper函数为RegMapper类,Reduce函数是什么都不做,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论