本記事は、株式会社ギックスの運営していた分析情報サイト graffe/グラーフ より移設されました(2019/7/1)
Hadoopプラットフォーム上でのデータ操作をJavaより簡単にプログラムしたい
本日は「Pig」という言葉を解説します。PigはHadoopによる高速なビッグデータ処理をより簡単に利用する為の「Hadoop上で動作するソフトウェア」です。
以前の記事で「Hadoop(ハドゥープ)」とは、
- 巨大データの取り扱いを目的とした分散処理のフレームワークである
- 分散処理によってビッグデータを高速に処理することができる
- Hadoopの利用者は自作したデータ処理のプログラムや他者が開発したツールプログラムをHadoop内に組み込んでビッグデータ処理を行う
と説明させていただきました。Hadoopの登場や広まりによってビッグデータ分析処理は劇的に効率化され、多くのデータ分析業務に携わるみなさんがその恩恵を受けています。
しかしここで、Hadoopを利用するユーザはさらに贅沢な要求をHadoopに対して抱き始めます。それは、
- Hadoopそのものはフレームワークにすぎないので、実際にデータを操作する場合は、Hadoop上で具体的なデータ操作を行う「Hadoopアプリケーション」を開発しなければならない。これが面倒くさい!
- しかもこの「Hadoopアプリケーション」はJavaで開発しなければならないがJavaは難しい。Shellスクリプトのようなコマンド感覚でHadoop内のデータ処理をプログラミングできないのか?
- ならば、「Hadoopのデータ操作に最適なスクリプト」を誰かが共通的に作ってオープンソースで公開してくれたらみんな幸せなのに!
というモノでした。
そしてこれらを満たすために生まれたのがPigなのです。Pigは初めYahooによって開発されました。現在ではApacheプロジェクトの一部として活動が行われています。Pigは「Hadoopアプリケーション」としてHadoop上で稼動し、利用者に「Pigによるデータ操作プログラミング環境」を提供します。またこの際のスクリプト言語には独自に開発されたPig言語が用いられます。Hadoop上でPigが稼動することにより、利用者はプログラマブルにでデータの操作を行う事ができます。このPig言語にはSQLに近い文法を持つコマンドも用意されており、利用者はSQLを使用する感覚でHadoop上のデータを操作することも可能になっています。もちろんその際にHadoopの分散処理機構が持つ高速なデータ処理機能が利用できることはいうまでもありません。