Your SlideShare is downloading. ×
Processing LTSV by Apache Pig
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Processing LTSV by Apache Pig

818
views

Published on

LTSV is a nice format for log files. I wrote an Pig plugin to load LTSV files.

LTSV is a nice format for log files. I wrote an Pig plugin to load LTSV files.


0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
818
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. LTSV を Pig で処理する話2013-03-04LT at 第2回初心者向け分散処理勉強会@miyakawa_taku
  • 2. 1要旨• Apache Pig で LTSV ファイルを読み込むプラ グインを作りました• Hadoop 上で LTSV ファイルが簡単に扱える ようになるから素敵です
  • 3. 2Pig
  • 4. 3Pig• データフローを記述して Hadoop の MapReduce ジョブをぶっ放すツールです• Pig でデータを前処理して Hive のテーブルに 突っ込んだりします• 分散 awk みたいな感覚です
  • 5. 4Pig の例: 部署ごと平均給与の計算 山田 生産 190 営業 235 田中 営業 320 Pig 人事 252 中橋 生産 240 生産 220-- ロードemp = LOAD emp.txt AS (name, dept, salary);-- 計算emp_by_dept = GROUP emp BY dept;avgsalary_by_dept = FOREACH emp_by_dept GENERATE group AS dept, AVG(emp.salary)-- 保存STORE avgsalary_by_dept INTO avgsalary_by_dept;
  • 6. 5LTSV
  • 7. 6LTSV: Labeled Tab-separated Values• 2月8日に突如流行 → 数日で収束しました• ログ用のファイルフォーマットです• タブ区切りの各列を「<ラベル>:<値>」にします host:host1.example.org req:GET /index.html ua:Opera/9.80 host:host1.example.org req:GET /favicon.ico ua:Opera/9.80 host:pc.example.com req:GET /news.html ua:Mozilla/5.0 • 書式が一目瞭然 • awk でパースできる: FS="¥t", split($i,p,":") いいところ • Apache や nginx で出力設定が簡単 • 仕様変更で値を追加しても大丈夫 注意点 • タブや改行を含む値は出力できない
  • 8. 7LTSV / Pig
  • 9. 8Pig で LTSV が読めるようにする• 出したログに Hive でクエリを投げたい⇒ Pig で前処理したい⇒ Pig で LTSV を読むプラグインを作りました
  • 10. 9Pig で LTSV を読むプラグイン 必要な値の -- ロード ラベルを指定 access = LOAD access.log USING org.ltsv.pig.LTSVLoader(host, ua); -- ホスト, UA ごとのアクセス数を計算 access_by_host_ua = GROUP access BY (host, ua); count_by_host_ua = FOREACH access_by_host_ua GENERATE group.host, group.ua, COUNT(access); -- 出力 DUMP count_by_host_ua;
  • 11. 10〆め
  • 12. 11結論• Pig を使うと Hadoop での並列データ処理が 簡単に書けます• LTSV は人間にも機械にもやさしいログフォー マットです• Pig で LTSV が読めるのでログを LTSV でバカ スカ出して Hadoop に突っ込んでおけば幸せ になれます
  • 13. 12参考• pig-ltsv-storage: プラグインのリポジトリ – https://bitbucket.org/miyakawa_taku/pig-ltsv- storage• PIG-3215: PiggyBank (Pig のプラグイン集) に LTSVLoader を追加する issue – https://issues.apache.org/jira/browse/PIG-3215• このスライド – http://www.slideshare.net/miyakawataku/processi ng-ltsv-by-pig