gis tools for hadoopを用いたビッグデータ処理の検証
DESCRIPTION
2013年11月2日 FOSS4G 2013 Tokyo の発表スライドです。TRANSCRIPT
GIS Tools for Hadoop を用いたビッグデータ処理の検証
石崎 一隆
2013年 11月 2日
2
発表の経緯
• Esri ジャパン社の GIS コミュニティフォーラムの 「ビッグデータ活用ソリューションセッション」 に興味を持つ• 紹介された GIS Tools for Hadoop を試す• 試したので紹介
3
発表の流れ
• Hadoop• GIS Tools for Hadoop• GIS Tools for Hadoop と ArcGIS 比較 • まとめ
4
Hadoopについて
5
ビッグデータとは
自動車の GPS 情報
SNS にホストされる写真情報
SNS株価情報
通話情報
ビッグデータの処理
• 注目されている技術は
6
ハドゥープ
7
Hadoop とは
• ビックデータを複数のサーバを利用して分散処理するソフトウェア
• サーバ台数を増やしスケールアウト可能• ライセンスは Apache License, Version 2.0• Open Source
8
Hadoop を利用するには 1
Apache Hadoop プロジェクトから利用• Apache Hadoop http://hadoop.apache.org/
9
Hadoop を利用するには 2
ディストリビューションから利用• Cloudera CHD Clouders’s Distribution including Apache Hadoop
http://www.cloudera.com/hadoop/
• Hortonworks HDP Hortonworks Data Platform
http://hortonworks.com
※ エディションにより有償
10
Hadoop を利用するには 3
クラウドサービス提供の Hadoop から利用• Amazon Elastic MapReduce Amazon Elastic Compute Cloud ( Amazon EC2 )、 Amazon Simple Storage Service ( Amazon S3 )上で
Hadoop が稼動
※ サービスを利用するので有償
11
Hadoop に必要な環境
・ NameNode・SecandaryNameNode・ JobTracker
・ DataNode・ TaskTracker
4 台のサーバのクラスタ例
各サーバに必要・ CentOS 、 RHEL 等・ Oracle JDK・ SSH の設定 ・ DataNode
・TaskTracker
・ DataNode・TaskTracker
タスク管理
12
・ NameNode・SecandaryNameNode・ JobTracker
・ DataNode・ TaskTracker
・ DataNode・ TaskTracker
・ DataNode・ TaskTracker
タスク管理
タスク実行
タスクの実行
タスク実行
HDFS
mapReduce
Hadoop の役割分散ファイルシステム
データ処理のプログラミングモデル
13
データフロー
入力データ
map が処理
map が処理map が処理
reduce が処理
計算結果
HDFS に配置
Java を利用してmap 関数作成
Java を利用してreduce 関数作成
14
GIS Tools for Hadoopについて
15
GIS Tools for Hadoop とは
• Esri 社が開発したツール ※ Esri 社のサポート対象外です
• Hadoop を利用して空間分析が可能• ArcGIS と Hadoop の連係が可能• ライセンスは Apache License, Version 2.0• Open Source
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 間の相互交換
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
18
Esri Geometry API for Java API
API の例• contains フィーチャ1がフィーチャ2に含まれるか
• Crosses フィーチャ1がフィーチャ2に交差しているか
• Buffer フィーチャに指定距離のバッファ作成
19
Spatial Framework for Hadoop
UDF の例• ST_Polygon 座標からポリゴン作成
• ST_Length 長さ計算
• ST_Intersects 重なる図形の重なりを計算
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
21
必要なパッケージ
• Hadoop
• Hive HDFS のデータを SQL ライク構文で扱う
• Oozie Hadoop のジョブの実行、スケジュール
22
ArcGIS から実行
GeoProcessing Tools for HadoopArcGIS の ToolBox に追加
モデルを作成
Java でプログラム作成 又はHive で SQL 作成
Oozie の workflow.xml 作成
実行
23
Java のプログラム構成
• MapReduce のジョブを実行するコード Esri JSON 、入力データのパス、 MapReduce の処理結果の
パスの処理
• Map クラス 入力データの処理を行う
GIS Tools for Hadoop は主に Map クラスに記述
• Reduce クラス map クラスの結果を処理し出力
24
GIS Tools for Hadoop と ArcGIS 比較
について
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
26
比較条件272,693 位置参照情報の街区レベル情報
市町村界に含まれる街区ポイントの合計値を計算しポリゴンに付与
※ 前処理・ ArcGIS は位置参照情報をポイントフィーチャへ変換・ Hadoop は位置参照情報の文字コードを EUC へ変換し、 HDFS へ移動
6,779 ポリゴンの市町村界(島含む)
27
ArcGIS の検証
属性の結合とリレート → 結合
6,779 ポリゴンの市町村界(島含む)
28
GIS Tools for Hadoop の検証6,779 ポリゴン → ESRI JSON
ESRI JSON → HDFS
HDFS → ESRI JSON
ESRI JOSN → GeoDatabase テーブル
6,779 ポリゴンの市町村界に272,693 ポイントの位置参照情報の街区レベル情報が含まれるか処理
6,779 ポリゴンの市町村界に合計値を付与
29
ArcGISGIS Tools for Hadoop
変換時間 結果不一致数GIS Tools for Hadoop 2分 28秒 7 / 188市区町村ArcGIS 7分 41秒
※ ArcGIS の処理は面積の大きいポリゴンに合計値を付与
検証結果
30
まとめ
31
まとめ
GIS Tools for Hadoop を利用する事で• ArcGIS で作成していた処理を移行• 今まで時間を要していたタスクを分散処理• 変換時間の短縮
32
最後に
GIS Tools for Hadoop の各ツールはEsri 、 Esri ジャパン社のサポート対象外です。
33
ご清聴ありがとうございます