0. 说明

  MapFile 介绍 && 测试


1. 介绍

  对 MapFile 的介绍如下:

  1. MapFile 是带有索引的 SequenceFile
  2. MapFile 是排序的 SequenceFile

2. 测试

package hadoop.sequencefile;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.MapFile;
import org.apache.hadoop.io.Text;
import org.junit.Test; /**
* 测试 MapFile 操作
* Windows 下查看压缩后的 MapFile :
* hdfs dfs -text file:///E:/test/mapfile/index
* hdfs dfs -text file:///E:/test/mapfile/data
*/
public class TestMapFile { /**
* 测试序列文件写操作
*/
@Test
public void testWriteSeq() throws Exception { Configuration conf = new Configuration(); // 设置文件系统为本地模式
conf.set("fs.defaultFS", "file:///"); FileSystem fs = FileSystem.get(conf); // 数据存放的文件夹路径
String path = "E:/test/mapfile"; MapFile.Writer writer = new MapFile.Writer(conf, fs, path, IntWritable.class, Text.class); for (int i = 1; i <= 100; i++) {
IntWritable key = new IntWritable(i);
Text value = new Text("helloworld" + i);
writer.append(key, value);
} writer.close();
} /**
* SequenceFile 转换为 MapFile
* 新建文件夹 E:/test/mapfile2
* 将 SequenceFile 放入其中并重命名为 data
*/
@Test
public void SeqConvert() throws Exception {
System.setProperty("HADOOP_USER_NAME", "centos");
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "file:///");
FileSystem fs = FileSystem.get(conf);
Path p = new Path("file:///E:/test/mapfile2");
long cnt = MapFile.fix(fs, p, IntWritable.class, Text.class, false, conf);
System.out.println(cnt);
} }

最新文章

  1. js作用域之常见笔试题,运行结果题
  2. 解决: org.iq80.leveldb.DBException: IO error: C:\data\trie\000945.sst: Could not create random access file.
  3. javascript方法链式调用和构造函数链式调用对比
  4. 浅谈ES6中的Proxy
  5. Finding Nemo(bfs)
  6. 创建简单的MVC项目
  7. Asp.Net MVC 之 Autofac 初步使用2 集成mvc 属性注入以及自动注入
  8. homebrew 无法安装提示不能在根目录下使用
  9. 重装mysql后导致Navicat连接失败
  10. cmd关闭被占用的端口命令及教程详解
  11. ionic2/cordova自定义插件集成aar包
  12. bootstrapTable
  13. 关于FastJSON
  14. 【转】cJSON 使用笔记
  15. yolo3的改变
  16. python 全栈开发,Day118(django事务,闭包,客户管理,教学管理,权限应用)
  17. FineReport中如何安装移动端H5插件
  18. kafka集群中jmx端口设置
  19. ios开发 点击文本(TextField)输入的时候向上推以及输入之后恢复的动画
  20. 【cookie接口】- jmeter - (请求提示no cookie)

热门文章

  1. php 对数组按照字符串长度排序
  2. kafka+elk
  3. Enumerable转换为DataTable
  4. rhel 配置centos源
  5. Go命令行参数解析flag包
  6. PM2来部署nodejs服务器永久开启
  7. Linux的进程线程及调度
  8. 【转载】To the Virgins, to Make Much of Time
  9. DataTable不能通过已删除的行访问该行的信息解决方法
  10. dotnet core 编程规范