- 博客(31)
- 资源 (12)
- 收藏
- 关注
转载 [Hadoop源码解读](六)MapReduce篇之MapTask类
MapTask类继承于Task类,它最主要的方法就是run(),用来执行这个Map任务。 run()首先设置一个TaskReporter并启动,然后调用JobConf的getUseNewAPI()判断是否使用New API,使用New API的设置在前面[Hadoop源码解读](三)MapReduce篇之Job类 讲到过,再调用Task继承来的initialize()方法初始化这个task,
2014-02-27 11:36:21 771
转载 [Hadoop源码解读](五)MapReduce篇之Writable相关类
前面讲了InputFormat,就顺便讲一下Writable的东西吧,本来应当是放在HDFS中的。 当要在进程间传递对象或持久化对象的时候,就需要序列化对象成字节流,反之当要将接收到或从磁盘读取的字节流转换为对象,就要进行反序列化。Writable是Hadoop的序列化格式,Hadoop定义了这样一个Writable接口。[html] view plaincopyprint?
2014-02-27 11:31:56 796
转载 [Hadoop源码解读](四)MapReduce篇之Counter相关类
当我们定义一个Counter时,我们首先要定义一枚举类型:[html] view plaincopyprint?public static enum MY_COUNTER{ CORRUPTED_DATA_COUNTER, NORMAL_DATA_COUNTER }; 然后,我们就可以在mapper或reducer里面增加它的值:
2014-02-27 11:25:10 1103
转载 [Hadoop源码解读](三)MapReduce篇之Job类
下面,我们只涉及MapReduce 1,而不涉及YARN。 当我们在写MapReduce程序的时候,通常,在main函数里,我们会像下面这样做。建立一个Job对象,设置它的JobName,然后配置输入输出路径,设置我们的Mapper类和Reducer类,设置InputFormat和正确
2014-02-27 11:24:03 720
转载 [Hadoop源码解读](二)MapReduce篇之Mapper类
前面在讲InputFormat的时候,讲到了Mapper类是如何利用RecordReader来读取InputSplit中的K-V对的。 这一篇里,开始对Mapper.class的子类进行解读。 先回忆一下。Mapper有setup(),map(),cleanup()和run()四个方法。其中setup()一般是用来进行一些map()前的准备工作,map()则一般承担主要的处理工
2014-02-27 11:07:46 918
转载 [Hadoop源码解读](一)MapReduce篇之InputFormat
平时我们写MapReduce程序的时候,在设置输入格式的时候,总会调用形如job.setInputFormatClass(KeyValueTextInputFormat.class);来保证输入文件按照我们想要的格式被读取。所有的输入格式都继承于InputFormat,这是一个抽象类,其子类有专门用于读取普通文件的FileInputFormat,用来读取数据库的DBInputFormat等等。
2014-02-27 10:28:56 826
转载 FileSystem类 文件读写及查看文件信息示例
在这一节我们要深入了解Hadoop的FileSystem类——这是与与hadoop的文件系统交互的重要接口。虽然我们只是着重于HDFS的实现,但我们在编码时一般也要注意代码在FileSystem不同子类文件系统之间的可移植性。这是非常有用的,比如说你可以非常方便的直接用同样的代码在你的本地文件系统上进行测试。使用hadoop URL读数据从hadoop文件系统中读取文件的最简单的方法之一便
2014-02-25 09:51:22 1994 2
转载 hadoop FileSystem使用示例
from:http://www.cnblogs.com/serendipity/archive/2011/07/28/2119857.htmlFileSystem是一个文件系统的实例,这个文件系统可以是hdfs,也可以是本地的文件系统 。一 获得hdfs的文件系统 String uri = "hdfs://10.0.0.134:9000"; Configurat
2014-02-25 09:29:01 1094
转载 hadoop简单实现文本数据全局排序
(1)、关于mapreducemapreduce很适合数据之间相关性较低且数据量庞大的情况,map操作将原始数据经过特定操作打散后输出,作为中间结果,hadoop通过shuffle操作对中间结果排序,之后,reduce操作接收中间结果并进行汇总操作,最后将结果输出到文件中,从这里也可以看到在hadoop中,hdfs是mapreduce的基石。可以用下面这幅图描述map和reduce的过程:
2014-02-24 14:30:20 2349
转载 MapReduce编程实例
MapReduce编程实例(六)前提准备:1.hadoop安装运行正常。Hadoop安装配置请参考:Ubuntu下 Hadoop 1.2.1 配置安装2.集成开发环境正常。集成开发环境配置请参考 :Ubuntu 搭建Hadoop源码阅读环境MapReduce编程实例:MapReduce编程实例(一),详细介绍在集成环境中运行第一个
2014-02-24 13:46:21 1404
转载 hadoop shuffle机制中针对中间数据的排序过程详解(源代码级)
在所有公开资料中,很少有对Hadoop 中间数据的sort过程进行详细介绍的。如果想要深入了解hadoop对中间数据的排序机制,只有通过阅读源代码才能达到。而hadoop的这段代码本身具有非常大的迷惑性,如果不注意细节,很容易会发生错误的理解。 本篇文章从原理上详细介绍了hadoop针对中间数据的排序机制,并且对一些重要的源代码段进行了介绍。阅读本文对理解该机制或者深入阅读该部分的hadoop源代
2014-02-21 17:32:39 985
转载 关于抽象类中构造函数的一些学习
子类在创建实例后,类初始化方法会调用父类的初始化方法(除了java.lang.Object类,因为java.lang.Object类没有父类),而这种调用会逐级追述,直到java.lang.Object的初始化方法。这个地方我说的是初始化方法,而不是构造方法,因为构造方法是相对于java源程序而言,而编译后的class文件是初始化方法即""方法(红色部分为方法名),初始化方法是由java源程序
2014-02-21 14:58:53 1523
转载 linux特殊符号大全
在shell中常用的特殊符号罗列如下:# ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) ||
2014-02-21 14:50:52 853
转载 Java日志 - 如何在项目中指定log4j.properties路径
方法一:在main函数中添加如下代码public class App { static final Logger logger = Logger.getLogger(App.class); public static void main( String[] args ) { PropertyConfigurator.configure("/abso
2014-02-21 14:30:42 11914 1
转载 Java日志 - slf4j和log4j合用的配置(Maven)
添加logger的日志输出,下面是配置信息供备忘步骤:1. 在Maven的porn.xml 文件中添加dependency如下[html] view plaincopydependency> groupId>org.slf4jgroupId> artifactId>slf4j-log4j12artifactId> ver
2014-02-21 11:15:01 2177
转载 Java日志 - hibernate中为什么要额外配置slf4j
Question:hibernate中为什么要额外配置slf4j,是不是配置log4j也可以?Answer:slf4j.nop.jar是slf-api.jar其相应的接口实现,把slf的接口对到log4j的实现把slf的实现slf4j-nop-1.5.8.jar去掉,添加log4j的实现log4j-1.2.15.jar,再添加一个slf-api和log4j转换器slf4j-
2014-02-21 11:12:00 1448
转载 Java语言中ArrayList对象能直接赋值给另一个ArrayList对象
num1=num2是将num1的地址值指向num2,而num1原先的对象会被垃圾回收。但是在这里我想告诉你的是集合之间的复制方法: 方法一:ArrayList num2 = new ArrayList(num1);//利用集合自带的构造方法 方法二:ArrayList num2 =(ArrayList) num1.clone();//利用克隆的方法进行赋值。
2014-02-21 10:04:43 3910
转载 linux下查找某目录下所有文件包含某字符串的命令
从文件内容查找匹配指定字符串的行:$ grep "被查找的字符串" 文件名从文件内容查找与正则表达式匹配的行:$ grep –e “正则表达式” 文件名查找时不区分大小写:$ grep –i "被查找的字符串" 文件名查找匹配的行数:$ grep -c "被查找的字符串" 文件名从文件内容查找不匹配指定字符串的行:$ grep –v "被查找的字符串" 文件名从根目录开始查找所
2014-02-21 10:01:17 1272
转载 Hadoop中的各种排序
1:shuffle阶段的排序(部分排序)shuffle阶段的排序可以理解成两部分,一个是对spill进行分区时,由于一个分区包含多个key值,所以要对分区内的按照key进行排序,即key值相同的一串存放在一起,这样一个partition内按照key值整体有序了。第二部分并不是排序,而是进行merge,merge有两次,一次是map端将多个spill 按照分区和分区内的key进行merge,
2014-02-19 17:22:13 1266
转载 MapReduce数据流
MapReduce数据流(一)一个基本的MapReduce作业由那些基本组件组成,从高层来看,所有的组件在一起工作时如下图所示:图4.4高层MapReduce工作流水线 MapReduce的输入一般来自HDFS中的文件,这些文件分布存储在集群内的节点上。运行一个MapReduce程序会在集群的许多节点甚至所有节点上运行mapping任务,每一个mapping任务都是平等的:map
2014-02-19 15:20:56 1093
转载 TotalOrderPartitioner Cannot Find _partition.lst File
Question:I'm using the Cloudera's VM (cloudera-demo-vm-cdh3u3-vmware) to run theTotalOrderPartitioner class for a specific problem.When I run the code, it cannot find the _partition.lst file.
2014-02-19 14:35:47 1766 1
翻译 hadoop-mapreduce-without-reducer
指定MR任务的时候可以不指定reducer,这样的话,所有的mappers将输出写入到job指定的目录的时候,不会执行sorting和partioning。只需要设置reduces的个数为0。job.setNumReduceTasks(0);
2014-02-18 17:29:59 986
转载 MultipleOutputs(三)
一,介绍1,旧API中有 org.apache.hadoop.mapred.lib.MultipleOutputFormat和org.apache.hadoop.mapred.lib.MultipleOutputsMultipleOutputFormat allowing to write the output data to different output files.Multip
2014-02-17 13:21:25 918
转载 MultipleOutputs(二)
在使用Map-Reduce处理大量数据时,可能有些记录同别的记录不一样,比如这些记录是不符合规范的,可以简单丢弃这些数据。但是如果想保存这些出错的记录以分析错误的原因,这个时候就不太方便了,如果Hadoop提供一个分布式的日志系统就好了,直接使用API将这些错误的记录写入日志中。我先想到一个比较简单的方法,就是实现自己的partitioner,将错误的记录保存到最后一个分区文件中。代码如下所示:
2014-02-17 13:18:14 978
转载 MultipleOutputs(一) Renaming Part Files in Hadoop Map Reduce
Question:I have tried to use the MultipleOutputs class as per the example in page http://hadoop.apache.org/docs/mapreduce/r0.21.0/api/index.html?org/apache/hadoop/mapreduce/lib/output/MultipleOu
2014-02-17 12:07:23 1322
转载 The processing instruction target matching "[xX][mM][lL]" is n...
The processing instruction target matching "[xX][mM][lL]" is not allowed. Exception:org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.这个异常解释
2014-02-14 13:08:49 1448
转载 About hadoop hdfs filesystem rename
Question:I am storing lots of data into hdfs. And I need to move the files from one folder to another.May I ask generally how much is the cost of filesystem's rename method?Say I have to move
2014-02-13 17:28:59 1553
转载 Hadoop Mapreduce multiple Input files
Question:So I need two files as an Input to my mapreduce program: City.dat and Country.datIn my main method im parsing the command line arguments like this:Path cityInputPath = new Path(args
2014-02-13 16:54:53 1886 3
转载 mapreduce框架详解
开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密。这个可能是我做技术研究的思路有关,我开始学习某一套技术总是想着这套技术到底能干什么,只有当我真正理解了这套技术解决了什么问题时候,我后续的学习就能逐步的加快,而学习hdfs时候我就发现,要理解hadoop框架
2014-02-13 14:38:25 960
转载 How to sort an arbitrarily large set of data using Hadoop?
Question:My question is related to this post Sorting large data using MapReduce/Hadoop. My idea of sorting an arbitrarily set is:We have a large file with records, say 10^9 records.The fil
2014-02-08 13:34:54 824
转载 Linux添加/删除用户和用户组
本文总结了Linux添加或者删除用户和用户组时常用的一些命令和参数。1、建用户:adduser phpq //新建phpq用户passwd phpq //给phpq用户设置密码2、建工作组groupadd test
2014-02-07 16:56:24 641
网页特效库2006(javascript)
2008-11-07
Mysql中文参考手册
2008-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人