0. 说明

  MapFile 介绍 && 测试


1. 介绍

  对 MapFile 的介绍如下:

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

2. 测试

  1. package hadoop.sequencefile;
  2.  
  3. import org.apache.hadoop.conf.Configuration;
  4. import org.apache.hadoop.fs.FileSystem;
  5. import org.apache.hadoop.fs.Path;
  6. import org.apache.hadoop.io.IntWritable;
  7. import org.apache.hadoop.io.MapFile;
  8. import org.apache.hadoop.io.Text;
  9. import org.junit.Test;
  10.  
  11. /**
  12. * 测试 MapFile 操作
  13. * Windows 下查看压缩后的 MapFile :
  14. * hdfs dfs -text file:///E:/test/mapfile/index
  15. * hdfs dfs -text file:///E:/test/mapfile/data
  16. */
  17. public class TestMapFile {
  18.  
  19. /**
  20. * 测试序列文件写操作
  21. */
  22. @Test
  23. public void testWriteSeq() throws Exception {
  24.  
  25. Configuration conf = new Configuration();
  26.  
  27. // 设置文件系统为本地模式
  28. conf.set("fs.defaultFS", "file:///");
  29.  
  30. FileSystem fs = FileSystem.get(conf);
  31.  
  32. // 数据存放的文件夹路径
  33. String path = "E:/test/mapfile";
  34.  
  35. MapFile.Writer writer = new MapFile.Writer(conf, fs, path, IntWritable.class, Text.class);
  36.  
  37. for (int i = 1; i <= 100; i++) {
  38. IntWritable key = new IntWritable(i);
  39. Text value = new Text("helloworld" + i);
  40. writer.append(key, value);
  41. }
  42.  
  43. writer.close();
  44. }
  45.  
  46. /**
  47. * SequenceFile 转换为 MapFile
  48. * 新建文件夹 E:/test/mapfile2
  49. * 将 SequenceFile 放入其中并重命名为 data
  50. */
  51. @Test
  52. public void SeqConvert() throws Exception {
  53. System.setProperty("HADOOP_USER_NAME", "centos");
  54. Configuration conf = new Configuration();
  55. conf.set("fs.defaultFS", "file:///");
  56. FileSystem fs = FileSystem.get(conf);
  57. Path p = new Path("file:///E:/test/mapfile2");
  58. long cnt = MapFile.fix(fs, p, IntWritable.class, Text.class, false, conf);
  59. System.out.println(cnt);
  60. }
  61.  
  62. }

[SequenceFile_3] MapFile的更多相关文章

  1. 【合集】Hadoop 合集

    0. 说明 Hadoop 随笔的目录 1. HDFS 主要内容: [HDFS_1] HDFS 的概念和特性 [HDFS_2] HDFS 的 Shell 操作 [HDFS_3] HDFS 工作机制 [H ...

  2. HDFS之SequenceFile和MapFile

    http://blog.csdn.net/javaman_chen/article/details/7241087 Hadoop的HDFS和MapReduce子框架主要是针对大数据文件来设计的,在小文 ...

  3. write & read a MapFile(基于全新2.2.0API)

    write & read a  MapFile import java.io.IOException; import org.apache.hadoop.io.IntWritable; imp ...

  4. QSQL导出mapfile和mapfile中PostGIS连接的一点心得

    昨天弄QSQL导出mapfile,一直遇到下图的错误 原因是QGIS在渲染图层时候使用了新的符号,在图层上右键-属性,如下图将符号修改就OK了 然后我尝试使用QGIS连接本机PostGIS数据,结果老 ...

  5. mapfile中关于栅格数据的processing项说明

    mapfile是MapServer中地图的配置文件,规定了地图的源数据.投影.样式等一系列信息.用MapServer发布影像地图,需要用以下processing项设置地图的风格样式. BANDS=re ...

  6. bash内置命令mapfile:读取文件内容到数组

    bash提供了两个内置命令:readarray和mapfile,它们是同义词.它们的作用是从标准输入读取一行行的数据,然后每一行都赋值给一个数组的各元素.显然,在shell编程中更常用的是从文件.从管 ...

  7. MapServer Tutorial——MapServer7.2.1教程学习——第一节:MapServer的基本配置管理,静态地图应用以及MapFile文件

    MapServer Tutorial——MapServer7.2.1教程学习——第一节:MapServer的基本配置管理,静态地图应用以及MapFile文件 前言 万事开头难,有了<MapSer ...

  8. Linux命令:mapfile

    mapfile [-n 计数] [-O 起始序号] [-s 计数] [-t] [-u fd] [-C 回调] [-c 量子] [数组] 两个作用: 一是给index数组读取标准输入来赋值:二是文件描述 ...

  9. MapFile

    MapFile是排序后的SequenceFile, 这个排序是由开发者来保证的, 不是内存实现. 相当于对key作了一个分块索引,  只针对key. 缺点 1.文件不支持复写操作,不能向已存在的Seq ...

随机推荐

  1. Javascript和JQuery函数定义方式

    Javascript 函数定义方式 1.function show() {     } 2.var cal = function() {     },必须先声明才能调用 示例: <html> ...

  2. Android快速实现二维码扫描--Zxing

    Android中二维码扫描的最常用库是zxing和zbar,zxing项目地址为https://github.com/zxing/zxing,目前还有多个人在维护.zbar主要用C来写的,对速度有要求 ...

  3. github总结(3)--怎样在github上面实现页面托管

    part Ⅱ:gh-pages分支--实现页面托管 第一步:在github线上创建一个新的仓库 第二步:在项目本地地址,git init初始化,再git add --all进行文档追踪添加 第三步:g ...

  4. MySQL:对于几个测试题的详细研究

    最近在做MySQL作业时候遇到了很多问题,MySQL作业链接:https://www.cnblogs.com/wj-1314/p/9213885.html 所以下面谈一下稍微难一点的数据库问题,我们需 ...

  5. SpringBoot自动配置注解原理解析

    1. SpringBoot启动主程序类: @SpringBootApplication public class DemoApplication { public static void main(S ...

  6. Scala面向对象编程与类型系统

    Scala支持面向对象编程, 其面向对象特性与Java有共同之处并添加了很多新的特性. 类定义 scala使用class关键字定义类: class MyComplex(real0:Double, im ...

  7. jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配

    指定元素中包含 id 属性的, 如: $("span[id]") 代码如下: <span id="span1" name="S1"&g ...

  8. 关于MVC的感悟

    代码一定要静下心来自己琢磨感悟,才会发现一些细节,只注重实现的结果是要不得的. 室友有些奋进,我得努力啊!

  9. Java 快速排序法 冒泡排序法 选择排序法 插入排序法

    1.快速排序的原理: 选择一个关键值作为基准值.比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的). 从后往前比较,用基准值和最后一个值比较,如果比基准值小的交换位置,如果 ...

  10. 【Java深入研究】6、CGLib动态代理机制详解

    一.首先说一下JDK中的动态代理: JDK中的动态代理是通过反射类Proxy以及InvocationHandler回调接口实现的 但是,JDK中所要进行动态代理的类必须要实现一个接口,也就是说只能对该 ...