日経 Linux 2011-05 を参考に Hadoop を実験してみましたが
なぜかエラーになるので
一度ソースを見てみました
結果、付録DVDに入っていたスクリプトには
#!/usr/bin/perl
#use strict;
my %words;
while (
chomp $_;
undef %words;
my @words = split ( /\s+/, $_ );
foreach $s ( @words ) {
$s =~ tr/A-Z/a-z/;
$s =~ s/\W+//g;
$s =~ s/([\w\d]+)/$1/g;
unless ( $s =~ /\w{4,}/ ) { next; }
print ($s . “\t” . 1 . “\n” );
}
}
となっていましたが
書籍のページでは
#!/usr/bin/perl
use strict;
my $s;
while (
chomp $_;
my @words = split ( /\s+/, $_ );
foreach $s ( @words ) {
$s =~ tr/A-Z/a-z/;
$s =~ tr/a-z//cd;
if ( $s =~ /[a-z]{4,}/ ) {
print ($s . “\t” . 1 . “\n” );
}
}
}
となっています
コマンドで書き換えたような記憶はないので、
ソースそのものが違っているような気がします….
count_word.pl*
となっているので、他にも要因があるのかもしれません
カテゴリー: Pig
Pig の実験
引き続き、Pig の実験です
続いて、データ処理の実験のためのファイルをダウンロードします
http://131.193.40.52/data/
へアクセスし、
reviewsNew.rar
というファイルをダウンロードします
このファイルは。
.rar という形式なので、解凍するために
sudo apt-get -y install unrar
で必要なソフトをインストールします
解凍するには
unrar e reviewsNew.rar
を実行します
続いて解析の準備です
まず
hadoop dfs -mkdir amazon
hadoop dfs -copyFromLocal reviewsNew.txt amazon
を実行し
pig
で起動し、無事に起動成功すると
grunt>
という端末になります
本来、JobTracker へのアクセス成功などのメッセージが
でるようですが、なぜかこのあたりはエラーになりました
とりあえず、今回の実験では問題がなかったのですが
残念ながら、次の実験には使えませんでした
とりあえず、今回のログをメモしてみました
A = LOAD ‘amazon/reviewsNew,txt’;
A = LOAD ‘amazon/reviewsNew.txt’ as(mem_id:chararray,pro_id:chararray,date:chararray,
date:chararray,num_hf:int,num_f:int,
rating:double,title:chararray,body:chararray);
AG = GROUP A ALL;
A2 = FOREACH AG GENERATE COUNT(A),AVG(A.rating),MAX(A.rating),MIN(A.rating);
DUMP A2;
を実行すると
データ集計ができます
今回の設定は、ソースから行っていますが、
ubuntu の場合、apt-get でインストール、設定が可能のようです
[Hadoop][Pig]Pigのインストール
1台構成のHadoopを30分で試してみる(Ubuntu + Cloudera)
を参考に、一度 apt-get で環境を構築してみます
Pig の設定をスクリプトで実行
前回、Hadoop の設定をスクリプトで実行できるようにしたので
今回は Pig を設定してみます
Pig はすべての hadoop インストール済みのマシンにいれる
必要性はなく、どれか1つでよいようなので
別のスクリプトにしました
まず
vi setup_pig.sh
でファイルを作成し、内容を以下のようにします
#/bin/bash
sudo tar zxvf pig-0.8.0.tar.gz -C /opt
cd /opt/
sudo ln -s ./pig-0.8.0 pig
echo -e ‘export PIG_INSTALL=/opt/pig/’ >> $HOME/.bashrc
echo -e ‘export PIG_CLASSPATH=/opt/hadoop/hadoop-0.21.0/conf/’ >> $HOME/.bashrc
echo -e ‘export PATH=$PIG_INSTALL/bin:$PATH’ >> $HOME/.bashrc
source ~/.bashrc
保存したら
sh vi setup_pig.sh
を実行します
これで設定完了です
Pig でデータ処理
準備がほぼ整ったので、Pig でデータ処理してみました
しかし、雑誌のとおりにやったところエラーになります
原因は、Pig のクラスパスにありました
port PIG_CLASSPATH=/opt/hadoop/confとなっていました
これを
export PIG_CLASSPATH=/opt/hadoop/hadoop-0.21.0/conf
とすればエラーが消えました
仮想環境で構築していますが
失敗したときに、再度ダウンロードするのは時間がかかるので
一度、scp コマンドで取得したファイルをバックアップしておきます
scp wiki@192.168.10.218:/home/wiki/hado* pig* jdk* count* .
を実行し、ゲストOSへバックアップしておきます
コマンドを使ってファイルコピーするときには
* を使って文字をすべて書き込まないようにすれば時間短縮になります
Pig の導入
前回、分散処理技術 Hadoop
で hadoop をインストールし
パスフレーズなしのSSHでSSH公開鍵認証で
ログインできるようになったので、今度は
Pig をインストールします
Pig は。大容量データの集計処理などに使うようです
Pig の使用例としては
米Yahoo! がログデータ解析に使ったということがあるようです
ほかにも、Pig の使用例を調べると
いろいろとでてきそうです
それでは、インストール開始です
今回もダウンロードの手間を省くため
日経 Linux 2011-05 の付録DVDに収録されているものを使います
cp /media/LIN201105/article/rensai_pighive/pig-0.8.0.tar.gz $HOME
でファイルをコピー
sudo tar zxvf pig-0.8.0.tar.gz -C /opt/
で/opt へディレクトリ展開
作業効率化のため
cd /opt
sudo ln -s ./pig-0.8.0 pig
でシンボリックリンク作成
環境変数の追加のため
vi $HOME/.bashrc
でファイルを開き
最終行へ
export PIG_INSTALL=/opt/pig/
export PIG_CLASSPATH=/opt/hadoop/conf/
export PATH=$PIG_INSTALL/bin:$PATH
を追記
設定内容を反映するために
source $HOME/.bashrc
を実行
ここまでで、Pig の準備完了です
続いて、データ処理の実験のためのファイルをダウンロードします
http://131.193.40.52/data/
へアクセスし、
reviewsNew.rar
というファイルをダウンロードします
容量は約1.7GB あるので、続きは明日以降になります