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函数)。




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

转自:http://blog.csdn.net/wwyzxb/article/details/39299181 一、简介 SpatialHadoop是一个开源的MapReduce扩...
  • shellching
  • shellching
  • 2016年04月15日 10:42
  • 1242

SpatialHadoop中空间索引系列之(一)空间索引构建

SptialHadoop是基于hadoop扩展的用于处理空间大数据的与计算平台。最近的工作研究一下在大数据环境下空间索引的构建方法。今天就讨论下在spatialhadoop当中,空间索引是如何构建的。...
  • yaoxiaochuang
  • yaoxiaochuang
  • 2016年02月03日 07:32
  • 1620

SpatialHadoop中空间索引系列之(三)格网索引原理

接着上一篇继续吧!!!!!!!!!!!!!!这一篇来描述下什么是空间格网索引。格网型空间索引的基本思想是将研究区域用横竖线条划分大小相等或不等的格网,记录每一个格网所包含的空间实体。当用户进行空间查询...
  • yaoxiaochuang
  • yaoxiaochuang
  • 2016年02月04日 05:32
  • 1336

SpatialHadoop 中的 Operations 层 之 Range Query

本来不想翻译了,可是又看到了后面的内容。有些外文文献只看个标题,有些呢只看个摘要,有些自己喜欢的真的想好好理解一下,那就翻译吧!!!!!想看更多系列文章,请点击这里哦!!!大笑大笑大笑...
  • yaoxiaochuang
  • yaoxiaochuang
  • 2016年02月13日 07:25
  • 1071

SpatialHadoop中空间索引系列之(二)空间对象索引原理

空间索引(Spatial Index)是指依据空间对象的位置和形状或空间对象之间的某种空间关系按一定的顺序排列的一种数据结构 ,其中包含空间对象的概要信息,如对象的标识、外接矩形及指向空间对象实体的指...
  • yaoxiaochuang
  • yaoxiaochuang
  • 2016年02月04日 05:19
  • 1118

SpatialHadoop实例:面向空间数据的高效MapReduce框架

本文实例介绍了SpatialHadoop平台,它是第一个基于成熟MapReduce对空间数据具有原生支持的框架。SpatialHadoop是对Hadoop的做了一个全面的扩展,使其核心功能可以支持空间...
  • yaoxiaochuang
  • yaoxiaochuang
  • 2014年12月17日 12:25
  • 2737

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

前面章节已经大概描述了在SpatialHadoop中R-Tree空间索引实现的步骤,本章节就从源码角度来看下该算法是怎么实现的。...
  • yaoxiaochuang
  • yaoxiaochuang
  • 2016年02月11日 05:53
  • 1463

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

一、简介 SpatialHadoop是一个开源的MapReduce扩展,专门用于在ApacheHadoop集群上处理空间数据。SpatialHadoop内置了空间高级语言,空间数据类型、空间索引和高...
  • xugen12
  • xugen12
  • 2015年10月08日 14:58
  • 670

SpatialHadoop2.x源码编译

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

Linux 命令下面的/dev/null 目录

Linux 命令下面的/dev/null 目录 在shell 脚本中经常会看到 >/dev/null 与>/dev/null 2>&1这样例子#!/bin/bash cd `dirname $0`...
  • jackyechina
  • jackyechina
  • 2016年10月14日 14:27
  • 4776
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spatialhadoop2.1源码阅读(一) shadoop脚本文件
举报原因:
原因补充:

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