hadoop SequenceFile示例
1、写入,SequenceFile的key和value不一定是Writable,只要能被Serialization序列化和反序列化就可以。
private static final String[] DATA = {
"One, two, buckle my shoe",
"Three, four, shut the door",
"Five, six, pick up sticks",
"Seven, eight, lay them straight",
"Nine, ten, a big fat hen"
}; private static void writeSequenceFile(String[] args) throws IOException{
String uri = args[];
Configuration conf = new Configuration();
Path path = new Path(uri); IntWritable key = new IntWritable();
Text value = new Text();
SequenceFile.Writer writer = null; SequenceFile.Writer.Option option1 = SequenceFile.Writer.file(path);
SequenceFile.Writer.Option option2 = SequenceFile.Writer.keyClass(key.getClass());
SequenceFile.Writer.Option option3 = SequenceFile.Writer.valueClass(value.getClass());
SequenceFile.Writer.Option option4 = SequenceFile.Writer.compression(SequenceFile.CompressionType.RECORD);
try {
writer = SequenceFile.createWriter(conf,option1,option2,option3,option4);
for (int i=;i<;i++){
key.set(i+);
value.set(DATA[i% DATA.length]);
System.out.printf("[%s]\t%s\t%s\n",writer.getLength(), key,value);
writer.append(key,value);
if(i%DATA.length==0)
writer.sync();//写入同步点
}
}finally {
IOUtils.closeStream(writer);
}
}
2、读取,如果key和value使用了Writable,使用next()方法就可以把数据读入到key和value中,对于非Writable的类型的序列化需要根据实际实现来判断。
private static void readSequenceFile(String[] args) throws IOException{
String uri = args[0];
Configuration conf = new Configuration();
Path path = new Path(uri); SequenceFile.Reader reader = null;
SequenceFile.Reader.Option option1 = SequenceFile.Reader.file(path);
try {
reader = new SequenceFile.Reader(conf,option1);
Writable key = (Writable) ReflectionUtils.newInstance(reader.getKeyClass(),conf);
Writable value = (Writable)ReflectionUtils.newInstance(reader.getValueClass(),conf);
long position = reader.getPosition();
while (reader.next(key,value)){
String syncSeen = reader.syncSeen() ? "*":"";//同步位显示为*号
System.out.printf("[%s%s]\t%s\t%s\n",position,syncSeen,key,value);
position = reader.getPosition();
}
}finally {
IOUtils.closeStream(reader);
}
}
hadoop SequenceFile示例的更多相关文章
- Hadoop SequenceFile数据结构介绍及读写
在一些应用中,我们需要一种特殊的数据结构来存储数据,并进行读取,这里就分析下为什么用SequenceFile格式文件. Hadoop SequenceFile Hadoop提供的SequenceFil ...
- 基于Hadoop Sequencefile的小文件解决方案
一.概述 小文件是指文件size小于HDFS上block大小的文件.这样的文件会给hadoop的扩展性和性能带来严重问题.首先,在HDFS中,任何block,文件或者目录在内存中均以对象的形式存储,每 ...
- <Hadoop><SequenceFile><Hadoop小文件>
Origin 我们首先理解一下SequenceFile试图解决什么问题,然后看SeqFile怎么解决这些问题. In HDFS 序列文件是解决Hadoop小文件问题的一个方法: 小文件是显著小于HDF ...
- Hadoop SequenceFile
SequenceFile格式: 每一个SequenceFile都包含一个“头”(header).Header包含了以下几部分. 1.SEQ三个字母的byte数组 2.Version number的by ...
- 运行Hadoop的示例程序WordCount-Running Hadoop Example
In the last post we've installed Hadoop 2.2.0 on Ubuntu. Now we'll see how to launch an example ma ...
- hadoop FileSystem类和SequenceFile类实例
Hadoop的FileSystem类是与Hadoop的某一文件系统进行交互的API,虽然我们主要聚焦于HDFS实例,但还是应该集成FileSystem抽象类,并编写代码,使其在不同的文件系统中可移植, ...
- Hadoop 写SequenceFile文件 源代码
package com.tdxx.hadoop.sequencefile; import java.io.IOException; import org.apache.hadoop.conf.Conf ...
- Hadoop Map/Reduce 示例程序WordCount
#进入hadoop安装目录 cd /usr/local/hadoop #创建示例文件:input #在里面输入以下内容: #Hello world, Bye world! vim input #在hd ...
- Hadoop小文件存储方案
原文地址:https://www.cnblogs.com/ballwql/p/8944025.html HDFS总体架构 在介绍文件存储方案之前,我觉得有必要先介绍下关于HDFS存储架构方面的一些知识 ...
随机推荐
- 3668: [Noi2014]起床困难综合症
3668: [Noi2014]起床困难综合症 https://www.lydsy.com/JudgeOnline/problem.php?id=3668 分析: 每一位分开考虑. 算出每一位为1,计算 ...
- 【Hadoop】Seondary NameNode不是备份NameNode!!
昨天和舍友聊天时无意中提起Secondary NameNode,他说这是备用NameNode.我当时就有点疑惑..之后查阅了相关资料和博客,算是基本理解了什么是Secondary NameNode. ...
- Rails导出CSV
版本 ruby 1.9 rails 3.2 完整代码 #引入CSV标准类库 require 'csv' class PeopleController < ApplicationControl ...
- MyBatis-mybatis全局映射文件解析
全局配置文件为mybatis-config.xml 1.properties标签 <properties resource="dbconfig.properties"> ...
- FCL中你不得不知的几种委托
FCL中丰富的类库信息极大的方便了我们的编码,很多我们日常经常用到的类型,FCL中已经帮我们定义好,下面要介绍的就是FCL中定义好的几种委托类型,直接使用它们不仅能提高我们的编码效率,而且还能让我们的 ...
- poj3984迷宫问题(dfs+stack)
迷宫问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 35426 Accepted: 20088 Descriptio ...
- 利用JSON Schema校验JSON数据格式
最近笔者在工作中需要监控一批http接口,并对返回的JSON数据进行校验.正好之前在某前端大神的分享中得知这个神器的存在,调研一番之后应用在该项目中,并取得了不错的效果,特地在此分享给各位读者. 什么 ...
- Linux命令应用大词典-第38章 网络命令
38.1 traceroute:显示跟踪到网络主机的路由数据包 38.2 mli-tool:查看.操纵网络接口状态 38.3 ifconfig:显示和配置网络接口 38.4 ifdown:关闭网络接口 ...
- Linux命令应用大词典-第32章 性能监控
32.1 sar:收集.报告或保存系统活动信息 32.2 iostat:报告CPU统计数据和设备.分区输入.输出消息 32.3 iotop:进行I/O监控 32.4 mpstat:报告CPU相关的统计 ...
- 运用GamePlayKit的GKEntity及GKComponent 的iOS游戏开发实例
GameplayKit是一个面向对象的框架,为构建游戏提供基础工具和技术. GameplayKit包含用于设计具有功能性,可重用架构的游戏的工具,以及用于构建和增强诸如角色移动和对手行为的游戏玩法特征 ...