oozie pig action でのjar利用
oozie の pig action でjarファイルを利用しようと思い、[system.libpath]/pig/ 配下にjarを置いたら使えた。しかもregisterしてないのに使えた・・・関数をフルパッケージ名で指定しているからregisterしなくても大丈夫なのか?
つまりこゆこと
A = load 'hoge' using com.twitter.elephantbird.pig.load.LzoTextLoader() AS (line:chararray);
これが register 無しで動いた。
■2013.9.12追記
やっぱコマンドラインで実行する時とスクリプトが違うのもなんなので、普通にregisterする方法を確認した。
jarをファイルとしてシンボリックリンク付きで配り、registerすればよい。
file要素(だよな・・・CDH使ってるので素のXMLは触ってない)に
/foo/bar/hoge.jar#hoge.jar
として、スクリプト内で、
register hoge.jar
ってやればOK。
なお、pigコマンドで実行する場合は、registerする代わりに
pig -Dpig.additional.jars=hoge.jar
でもOK。