本博客属原创文章,转载请注明出处:http://guoyunsky.iteye.com/blog/1233707
下一篇: Hadoop MapReduce 学习笔记(二) 序言和准备 2
终于踏入了Hadoop的世界,先学习了Sqoop,然后MapReduce.这里结合MapReduce实现类似SQL的各种功能.如:max,min,order by,inner/left/right join group by等.但这里只是我的一个学习的过程,还有很多不足和错误.但我会步步深入不断改进,希望也能帮助到大家.同时今后也会不断跟进,比如读PIG/Hive的源码,看他们如何组织,如何写MapReduce.以及工作过程中一些实践经验和心得.毕竟这块资料还是比较少,尤其是系统性的.
这里我先贴上几个准备类,用于生成测试数据.以及答个测试框架.
首先贴上测试父类,具体请看注释:
package com.guoyun.hadoop.mapreduce.study; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * MapReduce 测试父类 */ public abstract class MyMapReduceTest { public static final Logger log=LoggerFactory.getLogger(MyMapReduceTest.class); public static final String DEFAULT_INPUT_PATH="testDatas/mapreduce/MRInput"; public static final String DEFAULT_OUTPUT_PATH="testDatas/mapreduce/MROutput"; public static final String NEW_LINE="\r"; public static final int DEFAULT_LENGTH=1000; protected String inputPath=DEFAULT_INPUT_PATH; // hadoop input protected String outputPath=DEFAULT_OUTPUT_PATH; // hadoop output protected boolean isGenerateDatas=false; // 是否生成测试数据 protected long maxValue=Long.MIN_VALUE; // 生成数的最大值,以便跟结果比较 protected long minValue=Long.MAX_VALUE; // 生成数的最小值,以便跟结果比较 public MyMapReduceTest(long dataLength) throws Exception { this(dataLength,DEFAULT_INPUT_PATH,DEFAULT_OUTPUT_PATH); } /** * 该构造方法不会自动生成数据 * @param outputPath */ public MyMapReduceTest(String outputPath) { this.outputPath=outputPath; } /** * 该构造方法不会自动生成数据,同时会重用input的输入数据 * @param outputPath */ public MyMapReduceTest(String inputPath,String outputPath) { this.inputPath=inputPath; this.outputPath=outputPath; } public MyMapReduceTest(long dataLength,String inputPath, String outputPath) throws Exception { this.inputPath = inputPath; this.outputPath = outputPath; isGenerateDatas=true; init(dataLength); } public String getInputPath() { return inputPath; } public void setInputPath(String inputPath) { this.inputPath = inputPath; } public String getOutputPath() { return outputPath; } public void setOutputPath(String outputPath) { this.outputPath = outputPath; } public long getMaxValue() { return maxValue; } public void setMaxValue(long maxValue) { this.maxValue = maxValue; } public long getMinValue() { return minValue; } public void setMinValue(long minValue) { this.minValue = minValue; } public boolean isGenerateDatas() { return isGenerateDatas; } /** * 初始化,根据设置,会自动生成测试数据 * * @param length * @throws Exception */ private void init(long length) throws Exception{ if(isGenerateDatas){ generateDatas(length); } } /** * 生成测试数据,写入inputPath. * 根据不同的测试需要,由子类完成 * * @param length * @throws Exception */ protected abstract void generateDatas(long length) throws Exception; }
更多技术文章、感悟、分享、勾搭,请用微信扫描:
相关推荐
本篇文章将详细讲解如何利用Hadoop MapReduce实现TF-IDF(Term Frequency-Inverse Document Frequency)算法,这是一种在信息检索和文本挖掘中用于评估一个词在文档中的重要性的统计方法。 首先,我们要理解TF-IDF...
【标题】Hadoop MapReduce 实现 WordCount ...通过理解和实践 Hadoop MapReduce 的 WordCount 示例,开发者可以快速掌握 MapReduce 的基本工作原理,为进一步学习和应用大数据处理技术打下坚实基础。
Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce,这两个组件共同为大数据处理提供了强大的支持。 MapReduce是一种分布式计算模型,由Google提出,Hadoop对其进行了实现。在MapReduce中,...
总之,《Hadoop MapReduce实战手册》全面覆盖了MapReduce的基本概念、工作流程、编程模型以及在大数据处理中的实际应用,是学习和理解大数据处理技术的理想读物。通过深入阅读,读者可以提升在大数据环境下的编程和...
《Hadoop MapReduce Cookbook 源码》是一本专注于实战的书籍,旨在帮助读者通过具体的例子深入理解并掌握Hadoop MapReduce技术。MapReduce是大数据处理领域中的核心组件,尤其在处理大规模分布式数据集时,它的重要...
首先,Hadoop MapReduce是一种编程模型,用于大规模数据集的并行处理。它分为两个主要阶段:Map阶段和Reduce阶段。Map阶段将原始数据分解为键值对,并分配到多个节点进行并行处理;Reduce阶段则负责汇总这些处理结果...
### Hadoop MapReduce V2 知识点概览 #### 一、Hadoop MapReduce V2 生态系统介绍 ...通过本书的学习,读者不仅可以了解Hadoop MapReduce V2的基本原理,还可以学习到如何在实际项目中有效利用这一强大的工具。
而Hadoop MapReduce则是一个分布式计算框架,能够处理和存储海量数据。现在我们详细探讨这两个概念以及它们如何协同工作。 首先,让我们理解Apriori算法的基本原理。Apriori算法由Raghu Ramakrishnan和Gehrke在1994...
本章介绍了 Hadoop MapReduce,同时发现它有以下缺点: 1、程序设计模式不容易使用,而且 Hadoop 的 Map Reduce API 太过低级,很难提高开发者的效率。 2、有运行效率问题,MapReduce 需要将中间产生的数据保存到...
1. 复杂性:Hadoop MapReduce 的编程模型和执行机制相对复杂,需要一定的学习和实践经验。 2. 资源消耗:Hadoop MapReduce 需要大量的计算资源和存储资源,以支持大规模数据处理。 Hadoop MapReduce 是一种功能强大...
Hadoop MapReduce v2 Cookbook (第二版), Packt Publishing
在大数据处理领域,Hadoop MapReduce 是一个至关重要的框架,它允许开发者编写分布式应用程序来处理海量数据。"Hadoop MapReduce HelloWorld 能调试" 的主题意味着我们将深入理解如何设置、运行以及调试 MapReduce ...
Hadoop MapReduce 是大数据处理的核心组件之一,它提供了一个编程模型和软件框架,用于大规模数据处理。下面是 Hadoop MapReduce 编程实战的知识点总结: MapReduce 编程基础 MapReduce 是一个编程模型,用于处理...
在大数据处理领域,Hadoop MapReduce 是一种广泛使用的分布式计算框架,它允许高效地处理海量数据。KMeans 是一种常见的无监督机器学习算法,用于聚类分析,将数据集中的对象按照相似性分组成不同的簇。现在我们来...
一个自己写的Hadoop MapReduce实例源码,网上看到不少网友在学习MapReduce编程,但是除了wordcount范例外实例比较少,故上传自己的一个。包含完整实例源码,编译配置文件,测试数据,可执行jar文件,执行脚本及操作...
Hadoop MapReduce是Apache Hadoop框架的核心组件之一,它设计用于分布式处理大规模数据集,而v2的引入主要是为了解决v1在资源管理和效率上的局限性。 MapReduce的工作原理分为两个主要阶段:Map阶段和Reduce阶段。...
基于Hadoop Mapreduce 实现酒店评价文本情感分析(python源码+项目说明).zip基于Hadoop Mapreduce 实现酒店评价文本情感分析(python源码+项目说明).zip基于Hadoop Mapreduce 实现酒店评价文本情感分析(python...
Hadoop MapReduce广泛应用于大数据处理领域,如日志分析、网络流量分析、搜索引擎索引构建、机器学习算法训练、推荐系统构建等。它特别适用于那些需要处理PB级数据量的任务,由于其高可扩展性和容错性,能够在大规模...
基于Hadoop Mapreduce 实现酒店评价文本情感分析(python开发源码+项目说明).zip基于Hadoop Mapreduce 实现酒店评价文本情感分析(python开发源码+项目说明).zip基于Hadoop Mapreduce 实现酒店评价文本情感分析...