濃縮還元オレンジニュース

Apache Pig 0.8 リリース

この記事を読むのに必要な時間:およそ 1 分

2010年12月17日,Hadoop上のデータを効率良く扱えるスクリプト言語「Pig」のバージョン0.8がリリースされました。Apache PigはHadoopと同じく米Yahoo!が中心となって開発しており,最初はHadoopのサブプロジェクトでしたが2010年9月にApacheトッププロジェクトに昇格しました。同様のアプローチを行うプロダクトとしてFacebookが開発しているHiveがあります。

今回のリリースでいろいろな機能が追加されました。まずPigにカスタムの関数追加が行えるUDFというユーザ定義関数の機能が,今回のバージョンからJavaでなくPythonで記述することが可能になりました。内部でJythonエンジンを呼び出しており,今までJavaで長いコードを書いてJAR(Java Archive)を作らなければならなかったのに対し,非常に記述量が減り気軽にUDFを作成できるようになりました。もちろんJRubyやGroovyなどJVMで動作するほかの言語もサポートさせることができますが,そのためのインタフェースは別途用意しないといけません。

次に挙げる新機能としてPigUnitがあります。名前から想像できるとおり,Pigスクリプトのユニットテストを実現するものです。通常のJUnitのユニットテストクラスを作成し,テストしたいPigスクリプトと入力を与え,assertOutputメソッドにて期待する出力が得られるかをテストします。テスト実行はローカル環境ではもちろん,Hadoopを使ったクラスタ環境でも可能ですリスト1)⁠

リスト1 PigUnitテストケース例

@Test
public void testTop2Queries() {
  String[] args = {
    "n=2",
  };

  PigTest test = new PigTest("top_queries.pig", args);

  String[] input = {
    "yahoo",
    "yahoo",
    "yahoo",
    "twitter",
    "facebook",
    "facebook",
    "linkedin",
  };

  String[] output = {
    "(yahoo,3)",
    "(facebook,2)",
  };

  test.assertOutput("data", input, "queries_limit", output);
}

ほかにもHBaseストレージにアクセスできるインタフェースの追加や,カスタムのパーティショナを指定できるようになるなどの改善が行われています。米Yahoo!ではHadoopアプリケーションの約6割はPigスクリプトで書かれているそうです。Hadoopを使ったデータ解析を容易にしてくれるツールですので,使ったことのない人はぜひ試してみてください。

URLhttp://pig.apache.org/

著者プロフィール

角田直行(かくだなおゆき)

普段はお仕事でPHPやJavaを使ってWeb開発をしています。一部でセレブエンジニアとか言われてますが,全然セレブじゃありません。

コメント

コメントの記入