spatialhadoop2.1源码阅读(一) shadoop脚本文件

原创 2015年11月18日 19:29:40

1. bin/shadoop文件内容如下:

bin=`dirname "$0"`
bin=`cd "$bin" > /dev/null; pwd`
# Call Hadoop with the operations.Main as the main class
. "$bin"/hadoop edu.umn.cs.spatialHadoop.operations.Main $@


该文件调用了edu.umn.cs.spatialHadoop.operations.Main ,并传入参数

2.edu.umn.cs.spatialHadoop.operations.Main 类中主要实现了两部分

第一部分加载默认配置文件,调用hadoop 提供的Configuration类

代码如下:

 static {
    // Load configuration from files
    Configuration.addDefaultResource("spatial-default.xml");
    Configuration.addDefaultResource("spatial-site.xml");
  }
第二部分为main函数,主要代码如下

 ProgramDriver pgd = new ProgramDriver();
    try {
      
      pgd.addClass("rangequery", RangeQuery.class,
          "Finds all objects in the query range given by a rectangle");

      pgd.addClass("knn", KNN.class,
          "Finds the k nearest neighbor in a file to a point");

      pgd.addClass("dj", DistributedJoin.class,
          "Computes the spatial join between two input files using the " +
          "distributed join algorithm");
      
      pgd.addClass("sjmr", SJMR.class,
          "Computes the spatial join between two input files using the " +
          "SJMR algorithm");
      
      pgd.addClass("index", Repartition.class,
          "Builds an index on an input file");
      
      pgd.addClass("mbr", FileMBR.class,
          "Finds the minimal bounding rectangle of an input file");
      
      pgd.addClass("readfile", ReadFile.class,
          "Retrieve some information about the global index of a file");

      pgd.addClass("sample", Sampler.class,
          "Reads a random sample from the input file");

      pgd.addClass("generate", RandomSpatialGenerator.class,
          "Generates a random file containing spatial data");

      pgd.addClass("union", Union.class,
          "Computes the union of input shapes");

      pgd.addClass("plot", Plot.class,
          "Plots a file to an image");

      pgd.addClass("plotp", PlotPyramid.class,
          "Plots a file to a set of images used with Google-Maps-like engine");

      pgd.addClass("hdfplot", HDFPlot.class,
          "Plots NASA datasets in the spatiotemporal range provided by user");
      
      pgd.addClass("hdfx", HDFToText.class,
          "Extracts data from a set of HDF files to text files");

      pgd.addClass("skyline", Skyline.class,
          "Computes the skyline of an input set of points");
      
      pgd.addClass("convexhull", ConvexHull.class,
          "Computes the convex hull of an input set of points");

      pgd.addClass("farthestpair", FarthestPair.class,
          "Computes the farthest pair of point of an input set of points");

      pgd.addClass("closestpair", ClosestPair.class,
          "Computes the closest pair of point of an input set of points");

      pgd.driver(args);


首先实例化ProgramDriver对象,该类由hadoop common提供,主要提供了以反射的方式调用注册在对象中的类,例如

pgd.addClass("generate", RandomSpatialGenerator.class,
          "Generates a random file containing spatial data");
ProgramDriver对象中注册generate对象对应的处理类RandomSpatialGenerator.class。

最后 pgd.driver(args);根据参数调用某处理类的main函数。(所有的处理类均实现了main函数)。




SpatialHadoop2.x源码编译

官方地址下载的SpatialHadoop2.4版二进制包可以在Hadoop1.x下运行,但在Hadoop2.x上可视化组件就会出问题,可能导致namenode名称节点的元数据WebUI无法打开。原因是...
  • gis_101
  • gis_101
  • 2016年10月28日 19:40
  • 377

spatialhadoop2.3源码阅读(七) Sampler类

该类的主要作用是从输入文件中进行随机采样。Sampler类中可以有三种采用方式,分别是根据比例,根据大小以及根据记录数来进行采样。在这三种采用方式中,按比例采样分别实现了本地方法和MapReduce方...

Hadoop中空间数据的存储(二)

在前一节中,我们讲解了空间数据在Hadoop中的存储,通过将块进行可视化来分析了下Hadoop在存储空间数据的缺陷,可能远远不止这一点。今天我们就基于比较完善成熟的SpatialHadoop平台做一下...

spatialhadoop2.3源码阅读(五) grid 索引生成方法(一)

SpatialHadoop的索引生成类为edu.umn.cs.spatialHadoop.operations.Repartition。其main 方法如下 public static void ma...

spatialhadoop2.1源码阅读(二) bin/shadoop generate命令

edu.umn.cs.spatialHadoop.operations.Main 中关于bin/shadoop generate命令代码如下: pgd.addClass("generate", Ran...

spatialhadoop2.3源码阅读(八) RTree索引生成方法(一)

SpatialHadoop的索引生成类为edu.umn.cs.spatialHadoop.operations.Repartition。该类的main方法,repartition方法以及reparti...

spatialhadoop2.3源码阅读(八) RTree索引生成方法(二)

这一章主要介绍MapReduce的具体实现。 1. Map /** * The map class maps each object to the cell with maximum over...

spatialhadoop2.3源码阅读(四) FileMBR类

edu.umn.cs.spatialHadoop.operations.FileMBR 类主要功能为计算输入数据的最小包围矩形。 该类的核心实现为fileMBRMapReduce方法。该方法使用Map...

SpatialHadoop中空间索引系列之(十)R-Tree 索引源码解析

前面章节已经大概描述了在SpatialHadoop中R-Tree空间索引实现的步骤,本章节就从源码角度来看下该算法是怎么实现的。...

SpatialHadoop:有效的分析你的空间数据

一、简介 SpatialHadoop是一个开源的MapReduce扩展,专门用于在ApacheHadoop集群上处理空间数据。SpatialHadoop内置了空间高级语言,空间数据类型、空间索引和高...
  • xugen12
  • xugen12
  • 2015年10月08日 14:58
  • 633
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spatialhadoop2.1源码阅读(一) shadoop脚本文件
举报原因:
原因补充:

(最多只允许输入30个字)