Hadoopのpigを使うときに設定ではまったところメモ

Sun Apr 5 16:17:07 JST 2015 (modified: Sun Oct 1 10:50:27 JST 2017)
views: 1475, keywords:はまった,Hadoop,pig,UNIX/Linuxサーバ,辛い この記事は最終更新日が7年以上前のものです。

上田です。あいの風とやま鉄道車中です。

必要なので金曜日からHadoopをpigでいじっています。手順は全部のっけませんが、「Hadoop初心者&シェルについてはそこそこ詳しい」という立ち位置で、はまった2点をメモします。

基本、hdfsというユーザでなんでも動かすと・・・

無難なようです。しかしhdfsユーザでなんでも動かすのならば、hdfsユーザでjava等の環境変数がきっちり設定されている必要があります。

ということなんですが、パスを通したり何したりというのが結構ややこしいので、こうやって使うのがとりあえず手っ取り早いみたいです。

まず、bashを使うなら自分のユーザの.bashrcにこう書いてパスを通しておく。(書いたらsourceするか一度ログアウト、ログインを)。

export JAVA_HOME=/usr/java/jdk1.7.0_75/
   ###PIG_CLASSPATHはこれ、不要か間違ってるかもしれません###
   export PIG_CLASSPATH=/etc/hadoop/conf.cluster/

んで、sudo -Eu hdfs <コマンド> で作業。sudo -Eで今いじっているユーザの環境変数を引き継げます。

[usp@boabs005 ~]$ sudo -Eu hdfs hdfs dfs -ls
   Found 9 items
   drwxr-xr-x - hdfs hadoop 0 2015-02-28 04:12 input
   drwxr-xr-x - hdfs hadoop 0 2015-02-28 04:19 output
   -rw-r--r-- 3 hdfs hadoop 427 2015-04-04 02:01 tenline
   ...

面倒なので、こんなスクリプトを書きました。

[usp@boabs005 ueda]$ cat ./do-pig 
   #!/bin/bash
   
   sudo -Eu hdfs ./pig-0.12.0-cdh5.3.1/bin/pig $1

cdhのバージョンがpigとhadoopで合ってないといけないらしい

yumで入れたのが違う・・・

[usp@boabs005 ueda]$ hadoop version
   Hadoop 2.5.0-cdh5.3.1
   ...
   [usp@boabs005 ueda]$ pig --version
   Apache Pig version 0.8.1-cdh3u6 (rexported) 
   compiled Mar 20 2013, 13:45:59

ということで、ココからpigをダウソロードして解凍しました。解凍したところのbin/pigを起動したら普通に使えました。

めでたしめでたし。

肝心のpigですが・・・

遅い・・・。やっぱり4ノード(クライアント1, マスター1, スレーブ4)じゃあHadoopは効果無いし、スピードだけが欲しいなら自分でファイルをノードに分散させてシェル芸したほうが速いに決まってます。チューニングとかそういう次元の話ではありません。

参考サイト

参考にしたサイトですが、以下でインストールを行い、あとは断片的な情報を集めて総合してOさんと一緒に考えました。

CentOS に Hadoop, Pig, Hive, HBase をインストール - (゚∀゚)o彡 sasata299's blog CentOS に Hadoop, Pig, Hive, HBase をインストール - (゚∀゚)o彡 sasata299's blog

以上。めでたしめ・・・んどくせえ・・・。

ノート   このエントリーをはてなブックマークに追加 
 

prev:gawkで2進数にしたときの桁数を求めたいんだがどうしたものか next:Structure and Interpretation of Computer Programs読書会30回目メモ書き

やり散らかし一覧

記事いろいろ