`
san_yun
  • 浏览: 2654651 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

使用RawComparator加速Hadoop程序

 
阅读更多

 

http://yoyzhou.github.io/blog/2013/05/13/hadoop-write-ur-own-rawcomparator/

 

	static class MyComparator extends WritableComparator {
		static {
			WritableComparator.define(MyWritable.class, new MyComparator());
		}

		protected MyComparator() {
			super(MyWritable.class);
		}

		public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) {

			int cmp = 1;
			//determine how many bytes the first VLong takes
			int n1 = WritableUtils.decodeVIntSize(b1[s1]);
			int n2 = WritableUtils.decodeVIntSize(b2[s2]);

			try {
				//read value from VLongWritable byte array
				long l11 = readVLong(b1, s1);
				long l21 = readVLong(b2, s2);

				cmp = l11 > l21 ? 1 : (l11 == l21 ? 0 : -1);
				if (cmp != 0) {

					return cmp;

				} else {

					long l12 = readVLong(b1, s1 + n1);
					long l22 = readVLong(b2, s2 + n2);
					return cmp = l12 > l22 ? 1 : (l12 == l22 ? 0 : -1);
				}
			} catch (IOException e) {
				throw new RuntimeException(e);
			}
		}

	}

	static class MyWritable extends BinaryComparable implements WritableComparable<BinaryComparable> {

		@Override
		public void write(DataOutput out) throws IOException {
			out.write("hello".getBytes());
		}

		@Override
		public void readFields(DataInput in) throws IOException {
			String str = WritableUtils.readString(in);
			System.out.println(str);
		}

		@Override
		public int getLength() {
			return 0;
		}

		@Override
		public byte[] getBytes() {
			return null;
		}

	}

 

分享到:
评论

相关推荐

    Hadoop集群程序设计与开发教材最终代码.zip

    - 开发者通常使用Java进行Hadoop编程,但也有基于Hadoop的其他编程接口,如Hadoop Streaming允许使用任何可执行的脚本语言(如Python、Perl)。 - Maven或Gradle等构建工具可以帮助管理Hadoop项目的依赖关系,方便...

    用eclipse将Hadoop程序打包成jar及直接设定参数运行

    本文将详细介绍如何使用 Eclipse 将 Hadoop 程序打包成 JAR 文件,并直接设定参数运行。通过本文,您将了解到 Eclipse 中的项目导出、JAR 文件生成、Hadoop 程序运行等知识点。 一、Eclipse 中的项目导出 在 ...

    winutils.exe/hadoop.dll下载,IDE调试hadoop程序。

    总的来说,对于在Windows上开发和调试Hadoop程序的开发者来说,了解和正确使用winutils.exe和hadoop.dll是至关重要的。同时,掌握如何配置IDE以进行远程调试,以及熟悉SSH工具的使用,也是提高工作效率的重要技能。...

    windows下开发hadoop程序需要覆盖的本地库文件.zip

    在Eclipse或IntelliJ IDEA中,可以配置运行/调试配置,使用MiniCluster启动一个本地Hadoop实例来运行和测试你的程序。 7. **文件路径问题**:Windows与Linux的文件路径表示方式不同,Windows使用反斜杠(\),而...

    win下maven创建的hadoop程序demo

    【标题】"win下maven创建的hadoop程序demo"涉及了多个IT领域的知识点,包括Windows操作系统、Maven构建工具、...这个案例旨在帮助开发者了解和掌握在Windows上使用Maven构建Hadoop MapReduce程序的基本步骤和方法。

    avg-time hadoop程序

    "avg-time hadoop程序"的标题和描述暗示了我们正在讨论一个与计算平均时间相关的Hadoop程序。这个程序可能设计用于分析数据集中的时间戳信息,以计算各种操作或事件的平均耗时。在Hadoop环境中,这种类型的程序通常...

    java操作hadoop之mapreduce计算整数的最大值和最小值实战源码

    本教程将详细讲解如何使用Java编程语言操作Hadoop的MapReduce来计算整数序列中的最大值和最小值,这对于数据分析和处理任务来说是非常基础且实用的技能。 首先,我们需要理解MapReduce的工作原理。MapReduce是一种...

    在Windows上使用eclipse编写Hadoop应用程序

    ### 在Windows上使用Eclipse编写Hadoop应用程序 #### 前言 随着大数据技术的不断发展,Hadoop作为处理大规模数据集的重要工具之一,在企业和研究机构中得到了广泛应用。Hadoop主要由两个部分组成:Hadoop分布式...

    hadoop初级程序源代码

    这是关于hadoop里面程序代码,有wordcount ,partition,onejoin, score,health,dedup,程序. 有.java,也有jar. 提示必须先装上hadoop才能运行

    hadoop组件程序包.zip

    7. 测试运行:使用hadoop fs -ls命令检查HDFS是否正常工作,通过运行MapReduce示例验证安装是否成功。 三、Hadoop组件程序包内容 压缩包“soft”通常包含了Hadoop安装所需的全部组件和工具,包括Hadoop源码、编译...

    使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0

    ### 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0 #### Hadoop 2.x 版本变化及依赖分析 在Hadoop 2.x版本中,相较于早期版本,其架构和依赖库有了明显的变化。在早期版本如1.x中,所有的依赖都集中在`...

    实验2-在Hadoop平台上部署WordCount程序-孙淼1

    8. **Eclipse集成开发环境**:可能使用Eclipse进行Hadoop程序的开发和调试,这需要熟悉Eclipse的项目配置和Hadoop相关的插件。 实验报告撰写需注意以下几点: - 报告应该清晰、整洁,语言表达准确。 - 数据和程序...

    董西成:Hadoop YARN程序设计与应用案例

    从文件中提供的信息来看,董西成在其关于Hadoop YARN程序设计与应用案例的演讲中,涵盖了Hadoop YARN的定义、架构、API和开发步骤、应用类型、以及YARN API所涉及的通信协议和客户端库等核心知识点。以下是对这些...

    使用VMware安装Hadoop全过程

    - 运行WordCount示例程序:`bin/hadoop jar hadoop-examples-0.20.2.jar wordcount /input /output` - 查看输出结果:`bin/hadoop fs -cat /output/part-r-00000` #### 六、配置SSH无密码登录 由于Hadoop集群通常...

    单词统计WordCount-hadoop程序

    wordcount单词统计,hadoop程序,可直接放在hadoop环境中运行

    Hadoop安装使用教程0基础!!!易懂!!!

    Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程...

    使用hadoop实现WordCount实验报告.docx

    实验报告的目的是详细记录使用Hadoop在Windows环境下实现WordCount应用的过程,包括环境配置、WordCount程序的实现以及实验结果分析。本实验旨在理解Hadoop分布式计算的基本原理,并熟悉Hadoop集群的搭建与管理。 #...

Global site tag (gtag.js) - Google Analytics