Hadoopのサンプルwordcountを動かす件

前の記事:MacOS版FirefoxでFlashによるCPU暴走を解消する4つの方法 || 次の記事:MacOS XでWindows用外付Blu-rayを利用する話

ゴールデンウィークなので、前から気になっていたHadoopを下記本を参考にしつつ遊んでおります。
Hadoop徹底入門

インフラエンジニアとしてはイメージはつきました。でも、開発エンジニアとしては業務で利用する方法がイメージついてないって感じですかね。
以下サンプル動かしたときのログ。

環境はOracle Enterprise Linux 6(64bit)とHadoop 0.21.0です。

HadoopについているREADME.txtでwordcountを動かそうとしたけど、Input path does not exist: hdfs://・・・と表示される。カウントさせたいREADME.txtが見つからないようだ。

[hadoop@myhost hadoop]$ ./bin/hadoop jar hadoop-mapred-examples-0.21.0.jar wordcount README.txt /tmp/mapreduce2
11/05/05 00:06:49 INFO security.Groups: Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping; cacheTimeout=300000
11/05/05 00:06:50 WARN conf.Configuration: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id
11/05/05 00:06:50 WARN mapreduce.JobSubmitter: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
11/05/05 00:06:51 INFO mapreduce.JobSubmitter: Cleaning up the staging area hdfs://localhost:54310/hadoop/mapred/staging/hadoop/.staging/job_201105041812_0017
org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://localhost:54310/user/hadoop/README.txt
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:245)
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:271)

そもそも、hdfs://localhost:54310/user/hadoop/README.txtってどこよ。。。よくよく調べてみると、OSのファイルシステムでなく、hdfs上を見に行っているらしい。

対処1:事前に下記のようにhdfsにputしてやる

[hadoop@myhost hadoop]$ hdfs dfs -put ./README.txt /tmp
11/05/05 00:04:19 INFO security.Groups: Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping; cacheTimeout=300000
11/05/05 00:04:19 WARN conf.Configuration: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id

putした結果をls相当のコマンド(hdfs dfs -ls [Dir Name])でみると下記のように表示される。

[hadoop@myhost hadoop]$ hdfs dfs -ls /tmp
11/05/05 00:04:24 INFO security.Groups: Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping; cacheTimeout=300000
11/05/05 00:04:24 WARN conf.Configuration: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id
Found 1 items
-rw-r–r–   3 hadoop supergroup       1366 2011-05-05 00:04 /tmp/README.txt

対処2:「file:」で指定する

[hadoop@myhost hadoop]$ ./bin/hadoop jar hadoop-mapred-examples-0.21.0.jar wordcount file:/usr/local/hadoop/README.txt file:/tmp/mapreduce5
11/05/05 00:27:03 INFO security.Groups: Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping; cacheTimeout=300000
11/05/05 00:27:03 WARN conf.Configuration: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id
11/05/05 00:27:03 WARN mapreduce.JobSubmitter: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
11/05/05 00:27:04 INFO input.FileInputFormat: Total input paths to process : 1
11/05/05 00:27:04 WARN conf.Configuration: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps
11/05/05 00:27:04 INFO mapreduce.JobSubmitter: number of splits:1
11/05/05 00:27:04 INFO mapreduce.JobSubmitter: adding the following namenodes’ delegation tokens:null
11/05/05 00:27:04 INFO mapreduce.Job: Running job: job_201105041812_0022
11/05/05 00:27:05 INFO mapreduce.Job:  map 0% reduce 0%
11/05/05 00:27:12 INFO mapreduce.Job:  map 100% reduce 0%
11/05/05 00:27:18 INFO mapreduce.Job:  map 100% reduce 100%
11/05/05 00:27:20 INFO mapreduce.Job: Job complete: job_201105041812_0022

file:と書くとローカルのファイルシステムとして出力してくれるみたい。書かないとhdfs上に書く。

これからプログラミング周りとHiveを研究する予定。

前の記事: MacOS版FirefoxでFlashによるCPU暴走を解消する4つの方法 || 次の記事:MacOS XでWindows用外付Blu-rayを利用する話

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください