FC2ブログ

付録についていた count_word.pl

日経 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*
となっているので、他にも要因があるのかもしれません
スポンサーサイト



テーマ : Linux
ジャンル : コンピュータ

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 で環境を構築してみます

テーマ : Linux
ジャンル : コンピュータ

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
を実行します

これで設定完了です


テーマ : Linux
ジャンル : コンピュータ

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へバックアップしておきます

コマンドを使ってファイルコピーするときには
* を使って文字をすべて書き込まないようにすれば時間短縮になります


テーマ : Linux
ジャンル : コンピュータ

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 あるので、続きは明日以降になります

テーマ : Linux
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック