`

Hadoop分析

阅读更多
 好链接:http://www.kuqin.com/system-analysis/20080804/13302.html
  原文地址:http://www.wangchao.net.cn/bbsdetail_490384.html

Hadoop 是 Google labs 的MapReduce的一个实现,Nutch项目的全部数据处理都构建在其之上。MapReduce是一种简化的分布式编程模式,让程序可以自动在普通机器组成的集群中以并行方式分布执行。
   就如同java程序员可以不考虑内存泄露一样,MapReduce程序员也不许要关心海量数据如何被分配到多台机器上,不需要考虑机器失效的处理,不需要考虑这些机器间如何协作共同完成工作,程序员不需要什么并发处理或者分布式系统的经验,就可以进行分布式的编程。
   MapReduce来源于函数式编程的Map,Reduce概念,Map是映射,Reduce是规约。说了非常简单,就真的是非常简单的,先看Hadoop自带的sample-WordCount ,再看Nutch里的Indexer,Fetcher两个实战的例子,最后阅读Hadoop wiki 上的HadoopMapReduce,很快就可以上手:
  
   MapReduce过程简记:
   1.根据输入路径,先用FileSplit把输入的文件剁碎,根据InputFormat(读入资料的格式)内含的RecordReader把资料读入成一组(key,value)对,然后按mapper count平均分给不同的Mapper处理。(这段因为没看过源码,还有点模糊)
   2.Mapper进行Map操作 :: (InitialKey, IntialValue) -> [(InterKey, InterValue)] 从Inupt key,value 产生中间数据集。
   3.Reducer进行Reduce操作:: (Interkey, InterValuesIterator) -> [(InterKey, InterValue)],Reducer遍历所有节点取得需要的中间数据集,再对其进行去重、过滤等后期处理,得到结果。
   4.最后由OutputFormat类(输出资料的格式)内含的RecordWriter,将最终结果输出。结果输出可以是文件,也可以是其他形式,比如Nutch的Indexer,output时并不是去写文件,而是调用Lucene的IndexWriter将作为中间数据集的Lucene Document存盘。
   一段典型的Hadoop代码:
   public static void main(String[] args) main()
   {
   JobConf conf = new JobConf(WordCount. class );
   conf.setJobName( " wordcount " );
   jobConf.setInputFormat(MyInputFormat. class );
   jobConf.setOutputFormat(MyOutputFormat. class );
  
   jobConf.setInputKeyClass(BytesWritable. class );
   jobConf.setInputValueClass(BytesWritable. class );
   jobConf.setOutputKeyClass(BytesWritable. class );
   jobConf.setOutputValueClass(BytesWritable. class );
  
   jobConf.setMapperClass(MyMapper. class );
   jobConf.setReducerClass(MyReducer. class );
   jobConf.setNumMapTasks(num_maps);
   jobConf.setNumReduceTasks(num_reduces);
  
   JobClient.runJob(jobConf);
  
   }
   这就是一段hadoop式程序的主代码,用户自行实现四个内部类,MyInputFormat,MyOutputFormat,MyMapper和MyReducer,然后一一在jobConf里配置,最后执行runJob()即可。对比一下Nutch的源码就知道,只要把原来一段顺序执行的代码,拆分到上面四个类里面去,再在jobConf里进行指定,就可以拥有分布式执行的能力,无须要处理分布式编程的代码。配置一下服务器列表,在每台服务器上执行nutch/bin/start-all.sh,你的代码就分布式地执行了。
   最后看一下Hadoop的结构,除了MapReduce的分发外,还有两个很重要的部分:
   Hadoop的快速接口反射式RPC系统:IPC。
   Hadoop的分布式文件系统NDFS:见 CSharpProgrammer blog上的文章。
   注1:笔记中部分句子直接从网上文章摘录,不一一声明。
   注2:Hadoop 目前版本为0.5,还不够成熟,看过源码的Donald对其源码评价一般,值得继续等待。
分享到:
评论

相关推荐

    Hadoop分析气象数据完整版源代码(含Hadoop的MapReduce代码和SSM框架)

    Hadoop分析气象数据完整版源代码(含Hadoop的MapReduce代码和SSM框架) 《分布式》布置了一道小作业,这是作业的所有代码,里面包含了Hadoop的MapReduce代码、和SSM框架显示数据的代码

    Hadoop分析气象数据完整版代码

    在这个项目中,我们重点关注的是一套完整的Hadoop分析气象数据的代码,这涉及到分布式计算、数据处理以及数据可视化等多个关键知识点。 首先,我们要理解Hadoop的核心组件:HDFS(Hadoop Distributed File System)...

    Hadoop 分析统计学生考试成绩1

    "Hadoop 分析统计学生考试成绩" 本资源综合了 Hadoop 分析统计学生考试成绩的实现,涵盖了从开发环境到项目结构、代码文件说明、程序运行方式等方面。 一、开发环境 项目需要 Win 10 64 位或 macOS High Sierra ...

    Hadoop (十)Hadoop-第一次使用eclipse&java&hadoop分析简单数据

    Hadoop (十)Hadoop-第一次使用eclipse&java&hadoop分析简单数据 请配合下方博客使用 http://blog.csdn.net/jintaohahahaha/article/details/76599299

    基于Hadoop豆瓣电影数据分析实验报告

    【基于Hadoop豆瓣电影数据分析实验报告】 在大数据时代,对海量信息进行高效处理和分析是企业决策的关键。Hadoop作为一款强大的分布式计算框架,自2006年诞生以来,已经在多个领域展现了其卓越的数据处理能力。本...

    基于Hadoop的电影影评数据分析

    【基于Hadoop的电影影评数据分析】是一项大数据课程的大作业,旨在利用Hadoop的分布式处理能力来分析电影影评数据。Hadoop是一个由Apache软件基金会开发的开源框架,专为处理和存储大规模数据而设计。它由四个核心...

    大数据分析-网站日志数据文件(Hadoop部署分析资料)

    至此,我们通过Python网络爬虫手段进行数据抓取,将我们网站数据(2013-05-30,2013-05-31)保存为两个日志文件,由于文件大小超出我们一般的分析工具处理的范围,故借助Hadoop来完成本次的实践。 使用python对原始...

    基于Hadoop的地震数据分析统计

    这是一个Eclipse中复制出来的MapReduce工程文件,如果你下载了源代码,需要部署在Linux环境下的Eclipse中,并且,这个Eclipse必须已经安装了hadoop开发插件,能够做Hadoop开发。不然,会提示找不到hadoop开发包。

    基于Kubernetes平台部署Hadoop实践.docx

    * Hadoop与Kubernetes分别属于两个不同的领域,需要分别对HDFS和YARN集群的工作机制和运行原理做出深入的分析。 * 在Kubernetes平台上部署Hadoop需要构建镜像、定义Service、部署Pod等步骤。 * 通过镜像的启动脚本,...

    基于Hadoop平台的亿贝用户邮件数据分析(苏立)

    《基于Hadoop平台的亿贝用户邮件数据分析》是由苏立撰写的一部专著,主要探讨了如何利用Hadoop大数据处理框架对亿贝(eBay)用户的邮件数据进行深入分析。这本书的内容涵盖了Hadoop的核心概念、架构及其在实际业务...

    基于Hadoop数据分析系统设计(需求分析).docx

    总的来说,设计一个基于Hadoop的数据分析系统涉及到多个环节,从需求分析到系统设计,再到具体的部署和优化,每个步骤都需要细致考虑和精心实施。通过这样的系统,企业能够高效地处理和分析海量数据,从而获取有价值...

    Hadoop源码分析(完整版)

    Hadoop源码分析是深入理解Hadoop分布式计算平台原理的起点,通过源码分析,可以更好地掌握Hadoop的工作机制、关键组件的实现方式和内部通信流程。Hadoop项目包括了多个子项目,其中最核心的是HDFS和MapReduce,这两...

    hadoop 实战 dev_03

    5. Hadoop分析主题:在运营商的数据分析中,Hadoop应用到各种分析主题中,例如回拨分析、养卡分析、标签系统、流失预警、位置应用等。这些主题覆盖了从基本的通信数据到复杂的用户行为分析。 6. Hadoop对数据的看法...

    Hadoop数据分析_大数据_hadoop_数据分析_

    本主题将深入探讨Hadoop在数据分析中的应用及其生态系统的关键技术。 首先,我们需要理解“大数据”的概念。大数据指的是无法用传统数据库软件工具捕获、管理和处理的大规模数据集。这些数据集通常具有三个关键特征...

    基于Hadoop的成绩分析系统.docx

    基于Hadoop的成绩分析系统 本文档介绍了基于Hadoop的成绩分析系统的设计和实现。Hadoop是一个分布式开源计算平台,具有高可靠性、高扩展性、高效性和高容错性等特点。该系统使用Hadoop的分布式文件系统HDFS和...

    Hadoop技术选型分析报告V4.0.pdf

    6. Cloudera Hadoop分析:Cloudera是Hadoop领域的重要参与者,提供CDH产品和Cloudera Manager集群管理工具。CDH版本之间组件对应关系分析,例如CDH6.0与CDH5.0的组件版本。 7. 注意事项:在选型和部署Hadoop时,...

    hadoop实训实验报告代码.rar

    【标题】"Hadoop实训实验报告代码.rar"揭示了一个关于Hadoop的实际操作训练,其中包含了对天气数据分析的具体项目。这个压缩包中不仅有详细的实验报告,还有完整的源代码,为学习者提供了深入理解和实践Hadoop技术的...

    Hadoop In Action (Hadoop实战)中文版

    - **数据分析**:企业可以通过Hadoop分析大量的客户数据,以发现新的业务机会。 - **搜索引擎**:搜索引擎可以使用Hadoop来索引互联网上的网页,并快速响应用户的搜索请求。 - **社交网络**:社交媒体平台利用Hadoop...

    hadoop生态圈.pptx

    - **Hadoop分析应用平台服务商**:提供数据分析和可视化工具,帮助企业更好地理解和利用大数据。 #### 三、Hadoop在各行业的应用 - **金融行业**:银行和信用卡公司利用Hadoop增强欺诈检测能力,通过建立大型集群...

Global site tag (gtag.js) - Google Analytics