一、硬件环境 1、CPU:Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz 2、内存:2G 3、硬盘:500G 4、网卡:百兆电卡 5、网络:局域网络 6、集群数量:10台机器,1个master,10个slaves(master也做slave了!呵呵) 二、关于同时运行的map和reduce数量。 1、同时运行的数量通过mapred.tasktracker.ma
一、背景 排序对于MR来说是个核心内容,如何做好排序十分的重要,这几天写了一些,总结一下,以供以后读阅。 二、准备 1、hadoop版本是0.20.2 2、输入的数据格式(这个很重要,看清楚格式),名称是secondary.txt: abc123 acb124 cbd523 abc234 nbc563 fds235 khi234 cbd675 fds971 hka862 ubd621 khi123
一、环境 1、hadoop 0.20.2 2、操作系统Linux 二、背景 1、为何使用Partitioner,主要是想reduce的结果能够根据key再次分类输出到不同的文件夹中。 2、结果能够直观,同时做到对数据结果的简单的统计分析。 三、实现 1、输入的数据文件内容如下(1条数据内容少,1条数据内容超长,3条数据内容正常): kaka 1 28 hua0 26 chao 1
一、作用 1、combiner最基本是实现本地key的聚合,对map输出的key排序,value进行迭代。如下所示: map: (K1, V1) → list(K2, V2) combine: (K2, list(V2)) → list(K2, V2) reduce: (K2, list(V2)) → list(K3, V3) 2、combiner还具有类似本地的reduce功能. 例如hadoo
一、为什么写 分区和分组在排序中的作用是不一样的,今天早上看书,又有点心得体会,记录一下。 二、什么是分区 1、还是举书上的例子,在8.2.4章节的二次排序过程中,用气温举例,所以这里我也将这个例子说一下。 源数据内容 1900 35°C 1900 34°C 1900 34°C ... 1901 36°C 1901 35°C 书上的例子是为了去除一年当中气温最高的值,那么将年份和气温做了一个复合的
一、背景 早在8月份的时候,我就做了一些MR的Join查询,但是发现回北京之后,2个月不用,居然有点生疏,所以今天早上又花时间好好看了一下,顺便写下这个文档,以供以后查阅。 二、环境 JDK 1.6、Linux操作系统、hadoop0.20.2 三、资料数据 在做这个Join查询的时候,必然涉及数据,我这里设计了2张表,分别较data.txt和info.txt,字段之间以t划分。 data.txt
1、HBase版本hbase-0.20.5,Hadoop的版本hadoop-0.20.2,JDK1.6 2、如果想通过MR对hbase进行一些操作,首先是需要做一些配置内容的,配置的流程如下: a、默认安装完成了hadoop和hbase b、首先引入环境变量(修改/etc/profile文件,在文件末尾追加下面内容): # set java environment export JAVA_HOME
一、环境 1、hadoop 0.20.2 2、操作系统 Linux 二、设置 1、因为hadoop的集群所有的机器不可能完全的配置一样,所以,不同节点机器上并发的最大map和reduce数量最好也不要相同。 2、在对应的节点机器上修改mapreduce-sit.xml文件,添加参数如下: <property> <name>mapred.tasktracker.map.tasks.maximum
一、背景 今天采用10台异构的机器做测试,对500G的数据进行运算分析,业务比较简单,集群机器的结构如下: A:双核CPU×1、500G硬盘×1,内存2G×1(Slaver),5台 B:四核CPU×2、500G硬盘×2,内存4G×2(Slaver),4台 C:四核CPU×2、500G硬盘×2,内存4G×8(Master),1台 软件采用Hadoop 0.20.2,Linux操作系统。 二、过程 1
一、背景 一般来说,JOB的执行就是FIFO的过程(先进先出),这样的方式资源得不到充分的使用。所以配置了一下公平调度。 二、配置实现 1、环境:hadoop0.20.2 2、拷贝/jz/hadoop-0.20.2/contrib/fairscheduler/hadoop-0.20.2-fairscheduler.jar到hadoop的lib目录下,并复制到集群所有机器上。 3、修改mapred-
package com.run.ayena.distributed.test; import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apa
package com.run.ayena.distributed.test; import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.h
Map/Reduce - 用户界面 这部分文档为用户将会面临的Map/Reduce框架中的各个环节提供了适当的细节。这应该会帮助用户更细粒度地去实现、配置和调优作业。然而,请注意每个类/接口的javadoc文档提供最全面的文档;本文只是想起到指南的作用。 我们会先看看Mapper和Reducer接口。应用程序通常会通过提供map和reduce方法来实现它们。 然后,我们会讨论其他的核心接口,其中包
一、背景 最近总在弄MR的东西,所以写点关于这个方面的内容,总结一下吧 二、流程描述 说实话,文字描述比较苍白,画了个图,贴出来,大家看看,有问题欢迎指出 三、总结 1、值得提出的是,一个map结束就马上会进行分区的操作。并非是等所有的map都结束才做分区的操作。 2、分组的操作是对key的值进行比较分组。(可以是复合key,也可以是单一的key) 3、关于job.setSortComparato
概述(摘自Hadoop官方文档) Hadoop Map/Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。 一个Map/Reduce 作业(job) 通常会把输入的数据集切分为若干独立的数据块,由 map任务(task)以完全并行的方式处理它们。框架会对map的输出先进行排序, 然后把结果输入给r