- 博客(12)
- 资源 (20)
- 收藏
- 关注
原创 Hadoop中必须配置hostname的源码分析
搭建Hadoop的时候必须配置两个文件:/etc/sysconfig/network和/etc/hosts/etc/sysconfig/network的作用是设定机器的hostname/etc/hosts的作用是主机名与ip地址的匹配,如果没有DNS服务器的话,系统上的所有网络程序都通过查询该文件解析主机名对应的ip地址在Hadoop中,各个结点先通过getLocalHost()读
2016-03-24 14:14:21
3275
原创 MessagePack Java的使用
MessagePack是一个高效的二进制序列化格式。它让你像JSON一样可以在各种语言之间交换数据。但是它比JSON更快、更小。使用Maven添加MessagePack的依赖:org.msgpackmsgpack${msgpack.version}在本篇文章中使用的版本为0.6.6首先创建一个实体类UserInfo(注意对类加上Message注解)imp
2015-12-02 21:49:10
10572
1
原创 详解Java中的ThreadLocal、ThreadLocalMap和Thread之间的关系
每个ThreadLocal实例都有一个唯一的threadLocalHashCode(这个值将会用于在ThreadLocalMap中找到ThreadLocal对应的value值),它是通过静态变量nextHashCode和HASH_INCREMENT进行计算的,其中nextHashCode 和HASH_INCREMENT 的定义如下private static AtomicInteger nex
2015-11-18 02:49:49
7634
原创 Hadoop 2.X中的依赖Job
需要注意的是:JobControl类实现了Runnable接口,因此需要用一个Thread实例start启动它,不能直接用run方法具体代码片段见下面:@Overridepublic int run(String[] arg0) throws Exception {JobConf jobConfMediate = new JobConf(getConf(), TudouEpisod
2015-08-11 16:51:37
670
原创 Hadoop中的序列化:自定义value类型
NullWritable序列化不包含任何字符,仅仅相当于个占位符,在使用mapreduce时,key或者value在无需使用时,可以定义为NullWritablehadoop的value类型只需实现Writable接口,key类型需要实现WritableComparable接口自定义对象中有String字段时dataOutput.writeUTF(对象)用Text.writeStrin
2015-08-11 15:53:18
840
原创 maven中添加bundle类型的依赖包
众所周知,bundle是OSGI中的依赖单元,是一种特殊格式的jar,但我们同样可以在maven中使用bundle类型的依赖包,在maven中依赖bundle类型的包,需要加入处理bundle类型的插件,在pom.xml文件中添加如下的代码即可org.apache.felix maven-bundle-plugin true 这样我
2015-02-04 17:07:59
9438
原创 手动更新maven的central repository(亲测有效)
本文的操作在ubuntu 12.04系统下亲测有效,大家请放心使用,有什么问题可以讨论由于网络的问题,我们在线更新maven的central repository时,经常出错,因此就需要手动更新索引首先下载文件nexus-maven-repository-index.gz和nexus-maven-repository-index.properties(下载地址是http://pan.bai
2015-01-26 16:58:57
12351
原创 partitioner得到对应的reduce
我们知道每条数据在经过Map端的处理之后都会一个对应的partition号,从而被copy到指定号的Reduce中partition区分得到对应的reducer号:collector.collect(key,value, partitioner.getPartition(key, value, partitions))其中partitions的值这么得到:partitions = jobC
2014-10-27 09:00:19
654
原创 MapReduce中跨InputSplit数据的处理
LineRecordReader类的分析InputSplit只是一个逻辑概念,每个InputSplit并没有对文件进行实际的切割,只是记录了要处理的数据的位置,首先说明InputSplit的生成:一、bytesRemaining = length,length为文件的大小,bytesRemaining初始化的值为文件的大小二、生成blockIndex,blkIndex =getBloc
2014-10-10 08:43:02
1000
原创 Map数量的修改-computeSplitSize
Class JobSubmittersubmitJobInternal(Jobjob, Cluster cluster)int maps = writeSplits(job,submitJobDir) private int writeSplits(org.apache.hadoop.mapreduce.JobContextjob, Path jobSubmitDi
2014-09-11 16:50:24
692
原创 job.waitForCompletion的具体流程
Job运行是通过job.waitForCompletion(true),true表示将运行进度等信息及时输出给用户,false的话只是等待作业结束Job对象有两种状态:DEFINE和RUNNING,是通过JobState枚举类定义的public static enum JobState {DEFINE,RUNNING}当一个对象创建时,state状态被声明为DEFINEpr
2014-08-27 17:34:38
19657
原创 Mapper中map方法下context.write的流程与代码详解
本文的分析基于Hadoop 2.4.0版本Mapper abstract class Context implements MapContext(接口)Reducer的abstract class Context implements ReduceContext(接口)MapContext和ReduceContext都是extends TaskInputOutputCont
2014-08-22 19:46:57
13959
2
学习中总结的一些文档
2015-01-16
简单的FTP服务程序
2015-01-15
java实现的学籍管理系统
2010-01-23
C课程设计说明书(内附源代码)
2010-01-06
二叉树的递归遍历、非递归遍历和层次遍历
2010-01-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人