gis tools for hadoopを用いたビッグデータ処理の検証

33
GIS Tools for Hadoop をををを ををををををををををを をを 2013 を 11 を 2 を

Upload: kazutaka-ishizaki

Post on 24-Jan-2015

1.599 views

Category:

Lifestyle


2 download

DESCRIPTION

2013年11月2日 FOSS4G 2013 Tokyo の発表スライドです。

TRANSCRIPT

Page 1: Gis tools for hadoopを用いたビッグデータ処理の検証

GIS Tools for Hadoop を用いたビッグデータ処理の検証

石崎 一隆

2013年 11月 2日

Page 2: Gis tools for hadoopを用いたビッグデータ処理の検証

2

発表の経緯

• Esri ジャパン社の GIS コミュニティフォーラムの 「ビッグデータ活用ソリューションセッション」 に興味を持つ• 紹介された GIS Tools for Hadoop を試す• 試したので紹介

Page 3: Gis tools for hadoopを用いたビッグデータ処理の検証

3

発表の流れ

• Hadoop• GIS Tools for Hadoop• GIS Tools for Hadoop と ArcGIS 比較 • まとめ

Page 4: Gis tools for hadoopを用いたビッグデータ処理の検証

4

Hadoopについて

Page 5: Gis tools for hadoopを用いたビッグデータ処理の検証

5

ビッグデータとは

自動車の GPS 情報

SNS にホストされる写真情報

SNS株価情報

通話情報

Page 6: Gis tools for hadoopを用いたビッグデータ処理の検証

ビッグデータの処理

• 注目されている技術は

6

ハドゥープ

Page 7: Gis tools for hadoopを用いたビッグデータ処理の検証

7

Hadoop とは

• ビックデータを複数のサーバを利用して分散処理するソフトウェア

• サーバ台数を増やしスケールアウト可能• ライセンスは Apache License, Version 2.0• Open Source

Page 8: Gis tools for hadoopを用いたビッグデータ処理の検証

8

Hadoop を利用するには 1

Apache Hadoop プロジェクトから利用• Apache Hadoop  http://hadoop.apache.org/

Page 9: Gis tools for hadoopを用いたビッグデータ処理の検証

9

Hadoop を利用するには 2

ディストリビューションから利用• Cloudera CHD   Clouders’s Distribution including Apache Hadoop

   http://www.cloudera.com/hadoop/

• Hortonworks HDP   Hortonworks Data Platform

  http://hortonworks.com

※  エディションにより有償

Page 10: Gis tools for hadoopを用いたビッグデータ処理の検証

10

Hadoop を利用するには 3

クラウドサービス提供の Hadoop から利用• Amazon Elastic MapReduce  Amazon Elastic Compute Cloud ( Amazon EC2 )、  Amazon Simple Storage Service ( Amazon S3 )上で

  Hadoop が稼動

※  サービスを利用するので有償

Page 11: Gis tools for hadoopを用いたビッグデータ処理の検証

11

Hadoop に必要な環境

・ NameNode・SecandaryNameNode・ JobTracker

・ DataNode・ TaskTracker

4 台のサーバのクラスタ例

各サーバに必要・ CentOS 、 RHEL 等・ Oracle JDK・ SSH の設定 ・ DataNode

・TaskTracker

・ DataNode・TaskTracker

タスク管理

Page 12: Gis tools for hadoopを用いたビッグデータ処理の検証

12

・ NameNode・SecandaryNameNode・ JobTracker

・ DataNode・ TaskTracker

・ DataNode・ TaskTracker

・ DataNode・ TaskTracker

タスク管理

タスク実行

タスクの実行

タスク実行

HDFS

mapReduce

Hadoop の役割分散ファイルシステム

データ処理のプログラミングモデル

Page 13: Gis tools for hadoopを用いたビッグデータ処理の検証

13

データフロー

入力データ

map が処理

map が処理map が処理

reduce が処理

計算結果

HDFS に配置

Java を利用してmap 関数作成

Java を利用してreduce 関数作成

Page 14: Gis tools for hadoopを用いたビッグデータ処理の検証

14

GIS Tools for Hadoopについて

Page 15: Gis tools for hadoopを用いたビッグデータ処理の検証

15

GIS Tools for Hadoop  とは

• Esri 社が開発したツール ※ Esri 社のサポート対象外です

• Hadoop を利用して空間分析が可能• ArcGIS と Hadoop の連係が可能• ライセンスは Apache License, Version 2.0• Open Source

Page 16: Gis tools for hadoopを用いたビッグデータ処理の検証

16

GIS Tools for Hadoop の構成

• Esri Geometry API for Java  Hadoop を利用した空間解析 API

• Spatial Framework for Hadoop  Esri Json 等の API

  Hive から利用可能

• GeoProcessing Tools for Hadoop  ArcGIS Desktop と Hadoop 間の相互交換

Page 17: Gis tools for hadoopを用いたビッグデータ処理の検証

17

GIS Tools for Hadoop ドキュメント類

• Esri Geometry API for Java API ドキュメント  http://esri.github.io/geometry-api-java/javadoc/

• Spatial Framework for Hadoop API ドキュメント  http://esri.github.io/spatial-framework-for-hadoop/json/

• Spatial Framework for Hadoop UDF ドキュメント  https://github.com/Esri/spatial-framework-for-hadoop/wiki/UDF-Documentation

Page 18: Gis tools for hadoopを用いたビッグデータ処理の検証

18

Esri Geometry API for Java API

API の例• contains フィーチャ1がフィーチャ2に含まれるか

• Crosses フィーチャ1がフィーチャ2に交差しているか

• Buffer フィーチャに指定距離のバッファ作成

Page 19: Gis tools for hadoopを用いたビッグデータ処理の検証

19

Spatial Framework for Hadoop

UDF の例• ST_Polygon 座標からポリゴン作成

• ST_Length 長さ計算

• ST_Intersects 重なる図形の重なりを計算

Page 20: Gis tools for hadoopを用いたビッグデータ処理の検証

20

ダウンロード先

• Esri Geometry API for Java   https://github.com/esri/geometry-api-java

• Spatial Framework for Hadoop   https://github.com/Esri/spatial-framework-for-hadoop

• GeoProcessing Tools for Hadoop   https://github.com/Esri/geoprocessing-tools-for-hadoop• サンプル   https://github.com/Esri/gis-tools-for-hadoop

Page 21: Gis tools for hadoopを用いたビッグデータ処理の検証

21

必要なパッケージ

• Hadoop

• Hive  HDFS のデータを SQL ライク構文で扱う

• Oozie  Hadoop のジョブの実行、スケジュール

Page 22: Gis tools for hadoopを用いたビッグデータ処理の検証

22

ArcGIS から実行

GeoProcessing Tools for HadoopArcGIS の ToolBox に追加

モデルを作成

Java でプログラム作成  又はHive で SQL 作成

Oozie の workflow.xml 作成

実行

Page 23: Gis tools for hadoopを用いたビッグデータ処理の検証

23

Java のプログラム構成

• MapReduce のジョブを実行するコード  Esri JSON 、入力データのパス、 MapReduce の処理結果の

 パスの処理

• Map クラス 入力データの処理を行う

  GIS Tools for Hadoop は主に Map クラスに記述

• Reduce クラス  map クラスの結果を処理し出力

Page 24: Gis tools for hadoopを用いたビッグデータ処理の検証

24

GIS Tools for Hadoop と ArcGIS 比較

について

Page 25: Gis tools for hadoopを用いたビッグデータ処理の検証

25

GIS Tools for Hadoop 、 ArcGIS 比較

Windows 7 Ultimate x64 CentOS5.6 x64 CentOS5.6 x64

Oracle JDKJava Ver 1.7.0_25

Windows 7 Ultimate x64

ArcGIS 10.1 for Desktop Basic

ArcGIS 10.1 for Desktop Basic Java Ver 1.7.0_25Oracle JDK

GIS Tools for Hadoop の構成

ArcGIS の構成

Xeon 2.40GHzメモリ 16GB

Xeon 2.40GHzメモリ 8GB

Xeon 2.40GHzメモリ 8GB

Page 26: Gis tools for hadoopを用いたビッグデータ処理の検証

26

比較条件272,693  位置参照情報の街区レベル情報

市町村界に含まれる街区ポイントの合計値を計算しポリゴンに付与

※ 前処理・  ArcGIS は位置参照情報をポイントフィーチャへ変換・  Hadoop は位置参照情報の文字コードを EUC へ変換し、   HDFS へ移動

6,779 ポリゴンの市町村界(島含む)

Page 27: Gis tools for hadoopを用いたビッグデータ処理の検証

27

ArcGIS の検証

属性の結合とリレート → 結合

6,779 ポリゴンの市町村界(島含む)

Page 28: Gis tools for hadoopを用いたビッグデータ処理の検証

28

GIS Tools for Hadoop の検証6,779 ポリゴン → ESRI JSON

ESRI JSON → HDFS

HDFS → ESRI JSON

ESRI JOSN → GeoDatabase テーブル

6,779 ポリゴンの市町村界に272,693 ポイントの位置参照情報の街区レベル情報が含まれるか処理

6,779 ポリゴンの市町村界に合計値を付与

Page 29: Gis tools for hadoopを用いたビッグデータ処理の検証

29

ArcGISGIS Tools for Hadoop

変換時間 結果不一致数GIS Tools for Hadoop 2分 28秒 7 / 188市区町村ArcGIS 7分 41秒

※   ArcGIS の処理は面積の大きいポリゴンに合計値を付与

検証結果

Page 30: Gis tools for hadoopを用いたビッグデータ処理の検証

30

まとめ

Page 31: Gis tools for hadoopを用いたビッグデータ処理の検証

31

まとめ

GIS Tools for Hadoop を利用する事で• ArcGIS で作成していた処理を移行• 今まで時間を要していたタスクを分散処理• 変換時間の短縮

Page 32: Gis tools for hadoopを用いたビッグデータ処理の検証

32

最後に

GIS Tools for Hadoop の各ツールはEsri 、 Esri ジャパン社のサポート対象外です。

Page 33: Gis tools for hadoopを用いたビッグデータ処理の検証

33

ご清聴ありがとうございます