ArcGIS与Hadoop 1、ArcGIS 10.2支持原生数据发布为要素服 2、安装POSTGIS 3、数据准备 4、发布要素服务

      在大数据时代,没有用上Hadoop、Spark等大数据框架,真的太out了,我们一起探究下ArcGIS与Hadoop的结合应用吧。

      首先我们在github中找到ESRI提供的开源项目https://github.com/Esri,在里面搜索hadoop,可以找到目前Esri在hadoop应用方面提供的四个项目:

      ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

  2013年Esri美国在开发者大会上演示了GIS数据结合Hadoop分析的一个示例,这个示例赢得了听众的阵阵掌声,我们也许对GIS不是很陌生,但是对Hadoop却不是很清楚,其实Esri是用Java开发了一套API,我们习惯性的称为Geometry API,通过这些API,对存储在Hadoop的HDFS中的数据进行处理,上面这个大概就是分析原理。Esri已经将这些工具放到githup上,http://esri.githup.com,大家可以进行下载。

    我们特意为大家整理了文档进行详细介绍,目录结构如下图所示。

    文档下载地址1:http://www.docin.com/p-715720081.html

    文档下载地址2:http://ishare.iask.sina.com.cn/f/62994932.html

    文档下载地址3:http://wenku.baidu.com/view/965e89f980eb6294dd886c72.html


    演示视频地址1:http://v.youku.com/v_show/id_XNjI1NTY4NDY0.html?f=20461398

     演示视频地址2:http://v.youku.com/v_show/id_XNjA0NjU1NTEy.html

下载,然后完成相关配置。来测试一下Hadoop Tools这个工具箱。

准备数据:hq.shp

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

 1、双击 Features to JSON,打开后,填写参数内容,如下:

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

2、点击OK执行,生成json文件,打开文件,如下图所示:

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

3、这里需要记录一下字段,在hive中生成相应的表:

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

4、双击Copy to Hadoop,打开,填写相应的参数,如下:

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

这样就把数据放到了HDFS上了。

 

5、通过Hive可以查询到相应的数据,也可以通过Copy From Hadoop 工具来下载数据。

这里需要注意修改一下hosts配置文件。将master和slave的ip地址和hostname写入到hosts当中,不然会报错。

 

专注于GIS研发与行业应用,有需要请联系13871085926或QQ:30536168

 

 

 

有没有将自己已有的空间数据发布为要素服务的需求?有没有将非Esri空间数据类型的数据作为服务在Web端展示的需求?
    ArcGIS 10.2 for Server增加了这方面的能力,ArcGIS 10.2 for Server 可以将原生数据库中的空间数据发布为要素服务。
    想必都知道现在的关系型数据库,也都对空间数据有一定的支持,如postgreSQL的pg_geometry,Oracle的sdo_geometry,SQL Server的geometry等,如果用户的数据已经是这些格式了,如何发布为要素服务?
    在ArcGIS 10.0的时候Esri支持了要素服务,因为要素服务提供了在线编辑的功能,因此得到很多用户的青睐,但是发布要素服务有一个条件,就是数据必须存储在SDE数据库中,如果用户的空间数据已经是原生数据库的空间数据类型,要发布要素服务的话,我们需要将这些数据到SDE数据库中。
    当然Esri也会考虑用户的需求,和针对用户的需求做出相应的反应,ArcGIS 10.2 for Server 就可以直接将这种原生的空间数据作为要素服务暴露出去,这样的话,省了数据转换等一系列的操作,更让人兴奋的是,这样的能力不需要SDE的支持。
下面我们就以PostgreSQL数据库为例进行说明。
    PostgreSQL数据要支持空间数据,需要安装一个扩展- PostGIS,这个扩展和Oracle的 Oracle Spatial类似。PostGIS 是 Refractions Research 开发的产品,用于为 PostgreSQL 数据库添加对 PostGIS 空间数据类型的支持。PostGIS 遵从开放地理空间联盟 (OGC) 关于结构化查询语言 (SQL) 的简单要素规范。它使用 OGC 熟知二进制 (WKB) 和可识别文本 (WKT) 表示几何。实际上,PostGIS 是向 PostgreSQL 添加空间类型。

2、安装POSTGIS

安装POSTGIS有两种方法:1,可以从http://download.osgeo.org/postgis/下载,根据自己已经安装的postgreSQL版本进行选择,请注意,ArcGIS for Server支持(9.0系列,9.1系列和9.2系列的postgreSQL);2,也可以在postgreSQL安装后自带的Stack Builder中进行安装,在这里我的是后者。

2.1 打开Stack Builder

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

2.2 选择空间扩展,可以根据需要选择其他的辅助功能

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

2.3 选择下载目录

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

2.4 选择创建空间数据库前面的复选框

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务
    等一会儿,当安装完成后,会在postgreSQL中创建template_postgis_20等模板和postgis20数据库如下:
      ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

3、数据准备

POSTGIS提供了将shape数据转成PG_GEOMETRY的工具,但是这里我要介绍的不是这个工具,而是通过ArcMap完成这个数据转换的操作,ArcMap可以在PostgreSQL数据库中创建要素类,导入数据,导出数据等,这些功能大大简化了数据转换的操作,也很方便。
    在操作数据之前,首先要新建postgres模式
        ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务
    接下来使用直连的方式连接PostgreSQL数据库,在ArcMap右侧的Catalog目录中进行连接。
      ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务
    这时,我从geodatabase中找到一个多边形数据复制到postgis20数据库当中,作为数据库中的原生空间数据。然后,将它加载到ArcMap当中并保存地图文档。
      ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务
    在添加完数据库之后,我们可以在PostgresSQL当中看到该数据,如下图所示。
      ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

4、发布要素服务

在发布时,会要求数据库必须进行注册,可以提前在Server属性当中进行设置。
      ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务
    选择Register Database,弹出对话框如下图左侧,为数据库命名,然后通过Import方式,找到连接的数据库并选择,如下图右侧。点击OK。
      ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

现在,可以发布要素服务了。在Fiel菜单下找到Share As选择Service。

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务

ArcGIS与Hadoop
1、ArcGIS 10.2支持原生数据发布为要素服
2、安装POSTGIS
3、数据准备
4、发布要素服务