Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Hadoop1

8,845 views

Published on

ビッグデータ、クラウド、ハイパースレッディング、敗北など考えられないそのシステムに、人はどこまでも夢を見た...今、奇跡に最も近いシステム、その名はHadoop

Published in: Technology
  • Be the first to comment

Hadoop1

  1. 1. Hadoopおうちクラウド GCOM-W1/AMSR2 地球観測データ処理例 2013/12/05 大友 翔一(GeoJackass) @geojackass http://geojackass.org
  2. 2. 自己紹介 大きな(データの)お友達こと、大友です。 本名です。 GeoJackassを名乗ったりしてます。 http://geojackass.org/blog/ Hadoop始めました。 友達と二人でHi-rezClimateというシステム構築してます。 名前の通り、気象観測や地球観測、政府公共機関、及び科 学衛星データの、ビジュアライゼーションや解析を大いな る道楽でやっています。 http://geojackass.org
  3. 3. ADGENDA 1.はじめに 2.BigData(ex, GCOM-W1/AMSR2)事始 3.Hadoop簡易環境構築 4.PigQLのsample 5.HadoopPig実戦投入 6.終わりに http://geojackass.org
  4. 4. 1.はじめに 2.BigData(ex, GCOM-W1/AMSR2)事始 3.Hadoop簡易環境構築 4.PigQLのsample 5.HadoopPig実戦投入 6.終わりに http://geojackass.org
  5. 5. ビッグデータ流行してますね ビッグデータ、クラウド、データサイエンス… 何となく通じるけど、本当にそれ共通言語ですか。 で、これらとセットで語られる 分散処理,並列化,クラスター… Hadoop …… http://geojackass.org
  6. 6. で、Hadoopって、何ですか まさか、魔法の小箱だ とでも思ってるんです か?? 賛成カワイイ!!的な http://www.youtube.com/watch?v=GHvijEJi8Pc ちがうよ。なかにようせいさんがいるんだよ、ようせいさんがなやみをかいけつしてく れるんだよ… …僕もそう思ってました。 ……そんな人達のために、おうちHadoop環 境作って、実験してみました。 http://geojackass.org
  7. 7. 1.はじめに 2.BigData (ex, GCOM-W1/AMSR2)事始 3.Hadoop簡易環境構築について 4.PigQLのsample 5.HadoopPig実戦投入 6.終わりに http://geojackass.org
  8. 8. まずは、ビッグデータをもらってこよう • JAXAの歩き方…を参考に、 資料公開http://www.jaxa.jp/archives/db/tebiki_j.html 今回はしずく (GCOM-W1/AMSR2)を 題材に学習します。 http://geojackass.org
  9. 9. 地球観測衛星データをもらってこよう GCOM-W1からデータをもらってき ます。 sftpでの取得は、 fileZillaや winSCPで可能です。詳細は公式 ページを参考にしてください。 http://gcom-w1.jaxa.jp/index.html http://geojackass.org
  10. 10. 地球観測データを使ってみよう UserToolsを使用して、HD5を読み込みます。 さらにこれを利用して緯度経度座標付 の.csvを作ります。これはサンプル用に 2012/07の移動平均でキャリブレーシション 済みのL3データになります。 詳しく知りたい方は、頑張ってデータ仕様 を学習してください。 http://geojackass.org
  11. 11. ビッグデータの一部を見てみよう 先頭2行はヘッダー行で、以下C列に value(今回は海表面温度sst)が入って います。この時、-9999は欠損値に なる点に注意してください。 http://geojackass.org
  12. 12. 1.はじめに 2.BigData(ex, GCOM-W1/AMSR2)事始 3.Hadoop簡易環境構築 4.PigQLのsample 5.HadoopPig実戦投入 6.終わりに http://geojackass.org
  13. 13. おうちHadoop環境構築概論1 今回は実戦投入が目的なので、nodeやレプリケー ション、HDFSなどの仕様とシステム概論部分は割愛 します。これらの部分及び運用に興味のある方は下 記の勉強会資料を参照してください。 山本幸生(2010)衛星データ処理勉強会分散処理シス テムHadoop http://c-soda.isas.jaxa.jp/benkyou/Hadoop.pdf おうちhadoop環境構築したい方は、hadoop公式サイ トから使用したいバージョンをダウンロードし.tarを 展開したら参照ライブラリに.jarファイルを追加して ください。http://hadoop.apache.org/ すでにお分かりのように、Hadoopは本来Javaで記述 しますので、eclipseはそれに対応したものを推奨し ます。 ただし、今回は記述の簡易性からPigを用いますので Pigも同様に.jarを追加してください。また、あえて 最新版Hadoopを推奨しなかったのは、Pigとバー ジョン間での齟齬が吸収しきれていないためです。 http://geojackass.org
  14. 14. おうちHadoop環境構築概論2 EclipseからCygwinを使用してunixコマンドを渡しますの で、windows環境で構築される方はcygwinのbinまで PATHを設定してください。 http://www.cygwin.com/ http://geojackass.org
  15. 15. おうちHadoop環境構築概論3 Hadoopのパフォーマンスバリューは速度にあると 思う方はJavaでMap/Reduceを記述してください。 処理の論理モデルに注力する方が賢明だと思う方 や、解析のために全てをJavaで記述するのがつら い方はPigかHiveを使いましょう。 今回はPigで、PigはSQLlikeな文法で記述可能です。 ちなみにhadoopには信じられないことが沢山あります。 その一つが、この図は公式のものということです… それから簡易構築環境がeclipseでシングルノードの点に関しても、触れないでください http://geojackass.org
  16. 16. おうちHadoop環境構築概論4 Pigのライブラリを使用可能にする ために、 Main Classにorg.apache.pig.Mainと 記述してください。 初期設定は以上で終了です。 Hadoopと聞くと、むやみやたらとスゴイもののように語る人がいますが、 やってみると結構簡単でしょ??ただしこれは簡易環境下でシングルノード の場合です。エンジニアリング的に大変なのは、2桁以上台のhdfsクラスタ (DataNode)を使用するような本番環境への導入及び運用(これが出来れば超 凄腕ですgeojackass調べによる)と、最近stableになったものの…なんか、数々のラ イブラリ(KVS,カラムDB含む)との相性と、スタティスティカルな使い方 (意味深)です。 http://geojackass.org
  17. 17. 環境設定が終わって • • 書籍を含めて資料がほとんど英語しかない。もしくは動物の本… マニュアル,Wikiに関しては少々日本語がある… Hadoopクラスタの人には、ぜひ頑張って日本語化してもらいたい • 自称データ○○、自称アナリスト系のフリンジが公開する劣化した コピペ情報が氾濫 • コードも資料もない出来る出来る系詐欺の記事が氾濫 • あの法案… …日本におけるHadoop(というかクラウドとか ビッグデータ系)は名前の浸透度や先行イメージと 反比例する形で、環境が劣悪なことに気づく。で も、転んでも泣かない… http://geojackass.org
  18. 18. 1.はじめに 2.BigData(ex, GCOM-W1/AMSR2)事始 3.Hadoop簡易環境構築 4.PigQLのsample 5.HadoopPig実戦投入 6.終わりに http://geojackass.org
  19. 19. PigQLを書いてみよう1 --0./DataのLOADを行う。今回は紐付けを行わなくていいように、フルpthを記述 amsr2_input = LOAD 'works/input/amsr2/csv'; /* キャストは ([変換後の型]) SUBSTRING($0[カラムの番号], start[開始時点の文字列番号], end[終了時の文字列番号]) 使える型 int 符号付32bit整数 long 符号付64bit整数 float 32bit浮動小数点 double 64bit浮動小数点 */ --1./SUBSTRINGでの切り出しを行う amsr2_extract = FOREACH amsr2_input GENERATE (double) SUBSTRING($0, 0, 7) AS lat, (double) SUBSTRING($0, 1+7, 13) AS lng, (double) SUBSTRING($0, 1+14, 21) AS sst ; *今回は練習用として半構造化データでも使えるようにSUBSTRINGで切ってますが、構造化データは正 規表現で切り取る方が分かりやすいと思います。その辺は利用するマシンスペックやパフォーマンスなど のトレードオフを十分に考慮してください。個人的には処理の論理モデルとQLは追認性、可読性を重要 視して実際の処理そのものはHadoopでゴリ押しするのが一番パワフルだと思います。 http://geojackass.org
  20. 20. PigQLを書いてみよう2 --2./SPLITによるエラー処理を行う sst == -9999.0は正常データから除去する。 SPLIT amsr2_extract INTO amsr2_error IF sst == -9999.0, amsr2_target IF sst > 0 ; --3./FILTERによる抽出 ref::https://github.com/chomy/hi-rezclimate/blob/master/trmm/trmmkml.py --asia_areaを抽出するasia = (x1y0,x1y1) amsr2_asia = FILTER amsr2_target BY 90.0 < lat and lat < 180.0 and 0.0 < lng and lng < 60.0; --4./STORE STORE amsr2_asia INTO 'works/output/amsr2/20120701asc'; --黒子の6番./ DUMP amsr2_asia; pigQL自体はGitHubにアップしてあるので、読みにくい方はそちらを参照してください。 https://github.com/geojackassShoichi/HadoopPig/blob/master/amsr2_extract.pig http://geojackass.org
  21. 21. 1.はじめに 2.BigData(ex, GCOM-W1/AMSR2)事始 3.Hadoop簡易環境構築 4.PigQLのsample 5.HadoopPig実戦投入 6.終わりに http://geojackass.org
  22. 22. HadoopPigを起動する コンソールlogが大量のエラーを吐い ているように見えていますが、これ で正常です。 惑わされずに、Success!と表示され ているのが確認できれば問題ありま せん。失敗する場合はFailedと表示さ れます。これは本番環境でターミナ ルからコマンド発行しても、PigQLを 読ませても同様です。 http://geojackass.org
  23. 23. HadoopPigを起動する movie どうも静止画だとHadoopの挙動がどういうもの なのか分かりにくい方のためにキャプチャ動画撮 りました。ディレクターズカット(という名の何も 編集してない)映像で御覧ください。 http://www.youtube.com/watch?v=6zSkCa Q6vWI http://geojackass.org
  24. 24. 処理完了後のデータ… http://geojackass.org
  25. 25. 1.はじめに 2.BigData(ex, GCOM-W1/AMSR2)事始 3.Hadoop簡易環境構築 4.PigQLのsample 5.HadoopPig実戦投入 6.終わりに http://geojackass.org
  26. 26. で、Hadoopって?? • • • • Hadoopはエクセルの関数みたいなデータ演算・処理が得意です… 多分 HadoopはファイルI/Oが激遅いです。これは基本的にDataNode の3重冗長仕様によるものです…おそらく ちょっとしたデータ処理ならpython等のスクリプト系言語に軍配 …きっと 処理フロー、論理モデルを作成するのが大変…これだけはガチ ***良く言えば*** • • • • • • 可能な操作が単純なことばかりなので、ロジックの追認が容易 ビジュアライゼーションや解析の下準備として、データの整形など を行うミドルウェアとして最適 ビッグデータの処理時間比で、ファイルI/Oは十分に無視できる ビッグデータを処理する場合でもQLの可読性が高い(Javaネイティ ブを除く…私見です) ライブラリが充実しているので、機能拡張自体は容易 Hadoopを使った満足感…Priceless http://geojackass.org
  27. 27. 参考データ、書籍、資料、引用元一覧 • GCOM-W1/AMSR(しずく)データ引用元 • http://gcom-w1.jaxa.jp/index.html • JAXAの歩き方 • http://www.jaxa.jp/archives/db/tebiki_j.html *今回使用したデータは学術目的で使用しています。それ以外の利用方法に関しては、JAXAのポリ シーに従って下さい。この資料等を参考にされた場合に発生したいかなる不測の事態でも、当方では 一切の責任を負いかねます。 • 衛星データ処理勉強会 山本幸生(2010)分散処理システムHadoop • http://c-soda.isas.jaxa.jp/benkyou/Hadoop.pdf • パターンでわかるHadoop MapReduce ビッグデータの処理入門 著者 三木大知 発行所 株式会社 翔泳社 • SKE48 13th.Single 「賛成カワイイ!」Music Video 像使いが出てただけ http://www.youtube.com/watch?v=GHvijEJi8Pc http://geojackass.org

×