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

5,250 views

Published on

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

Published in: Lifestyle
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,250
On SlideShare
0
From Embeds
0
Number of Embeds
1,126
Actions
Shares
0
Downloads
31
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

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

×