`
GQM
  • 浏览: 24926 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
引言: 最近基本完成了一个网络传输的framework,其中socket channel对于ByteBuffer的操作中遇到了HeapByteBuffer与DirectByteBuffer的选择问题,在这里做一下总结。 语法: 分配HeapByteBuffer ByteBuffer buffer = ByteBuffer.allocate(int capacity); 分配DirectByteBuffer ByteBuffer buffer = ByteBuffer.allocateDirect(int capacity); JDK的说明: 引用A byte buffer is either ...

AVRO IPC HelloWorld

    博客分类:
  • avro
avro-ipc的HelloWorld例子 pom.xml <dependency> <groupId>org.apache.avro</groupId> <artifactId>avro</artifactId> </dependency> <dependency> <groupId>org.apache.avro</groupId> <artifactId>avro-ipc</artifactId> </dependency> ...
avro非常适合用于hadoop。在开发的时候可能有这样的场景,输入的文件是non-avro的,输出的文件是avro的。这样就需要一个是非avro的mapper和一个avro的reducer。下面通过改写wordcount例子演示这个过程。 Mapper public class WordCountMapper extends MapReduceBase implements Mapper<LongWritable, Text, AvroKey<CharSequence>, AvroValue<Integer>> { private Text w ...
之前的“trackinfo数据清洗”例子中为使用combiner,这个列子通过改写mapper和reducer以支持combiner,同时使用1.75因子计算的reducer task数量。http://gqm.iteye.com/blog/1935541 Mapper public class TrackInfoCleansingMapper extends Mapper<Object, Text, Text, TrackInfoArrayWritable> { private Text user = new Text(); private TrackInfo ...
引用Reducer reduces a set of intermediate values which share a key to a smaller set of values. Reducer的数量 可通过以下方法设置 JobConf.setNumReduceTasks(int); 可以修改mapred.reduce.tasks参数,默认值为1。 官网推荐计算方法 0.95 * NUMBER_OF_NODES * mapred.tasktracker.reduce.tasks.maximum 1.75 * NUMBER_OF_NODES * mapred.tasktracker.re ...
业务场景: 假设用户在某处(例如某个网页或者某个地点)的活动会有一个日志,通过日志清洗出用户的一个点击流或者路径流,从而为后续分析做准备。 例子中使用了自定义的Hadoop的Writable类 位置类Location.java 定义了主位置信息mainLoc和细分位置信息subLoc public class Location implements Writable { private final Text mainLoc; private final Text subLoc; public Location() { ...
贴一下整理的maven管理配置(待补充) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion> ...
Apache Avro是一个独立于编程语言的数据序列化系统。旨在解决Hadoop中Writable类型的不足:缺乏语言的可移植性。其强调数据的自我描述,依赖于它的schema。即支持动态加载schema,动态映射;也支持代码生成的描述性映射。 官网的介绍: 引用Apache Avro™ is a data serialization system. Avro provides: Rich data structures. A compact, fast, binary data format. A container file, to store persistent data. Remote ...
一个简单的业务场景和例子。由wordcount例子改写。 业务场景: 每个用户有在线事件,并带有日志。分析一段时间内的在线的用户以及他们的事件数。 备注:假设事件日志中以逗号分割字段,第5个字段为用户识别码 public class ActiveUserMapper extends Mapper<Object, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text user = new Text(); protect ...
Hadoop MapReduce的编程接口层主要有5个可编程组件,分别为InputFormat、Mapper、Partitioner、Reducer和OutputFormat。 InputFormat 主要用于描述输入数据的格式,提供两个功能: 数据切分:将输入数据切分为若干个split(分片),每个split会被分发到一个Map任务中。 记录识别:通过创建RecordReader,使用它将某个split(分片)中的记录(key, value形式)识别出来(Mapper使用split前的初始化),每个记录会作为Mapper中map函数的输入。 [/list] public abstract ...
NameNode在内存中维护整个文件系统的元数据镜像,用于HDFS的管理。 NameNode中元数据的管理主要由类FSNamesystem实现。 引用/*************************************************** * FSNamesystem does the actual bookkeeping work for the * DataNode. * * It tracks several important tables. * * 1)  valid fsname --> blocklist  (kept on disk, logge ...
元数据文件fsimage的分析 fsimage为元数据镜像文件,存储的是某一时刻NameNode内存元数据信息,包括所有的INode信息、正在写入的文件信息以及其他的一些状态信息等。 引用  /**    * Save current image and empty journal into {@code current} directory.    */   protected void saveCurrent(StorageDirectory sd) throws IOException 当StorageDirectory的类型为NameNodeFile.IMAGE时,将FSImage持久 ...
环境 hadoop1.2.0 CentOS release 6.4 jdk1.7.0_25 node04vm01192.168.15.146masterNameNode,SecondaryNameNode,JobTrackernode04vm02192.168.15.147slaveDataNode,TaskTrackernode04vm03192.168.15.148slaveDataNode,TaskTrackernode04vm04192.168.15.149slaveDataNode,TaskTrackernode04vm05192.168.15.150slaveDataNode,T ...
环境: hadoop1.2.0 配置 修改conf/core-site.xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration> 修改conf/hdfs-site.xml <config ...
环境: hadoop 1.2.0 问题: eclipse报错"Error:failure to login" 原因: 检查eclipse日志,缺少依赖包,报NoClassDefFoundError 解决方法: src/contrib/eclipse-plugin目录 修改build.xml <target name="jar" depends="compile" unless="skip.contrib"> <mkdir dir="${build.dir}/lib" ...
Global site tag (gtag.js) - Google Analytics