2009-04-24 10 views
0

私は間違っているかもしれませんが、Apache Hadoopで見たすべての(?)例は、入力としてローカルファイルシステムに格納されたファイルを取ります(例:org.apache.hadoop.examples.Grep )Hadoop:HDFSからのマップ/縮小

Hadoopファイルシステム(HDFS)にデータをロードして保存する方法はありますか?例えば、私はhadoop-0.19.1/bin/hadoop dfs -put ~/local.xls stored.xlsを使用して、HDFS上に 'stored.xls'という名前のタブ区切りファイルを配置します。 JobConfをどのように設定してそれを読むべきですか?

ありがとうございました。

答えて

0
 
JobConf conf = new JobConf(getConf(), ...); 
... 
FileInputFormat.setInputPaths(conf, new Path("stored.xls")) 
... 
JobClient.runJob(conf); 
... 

setInputPathsが行います。

+0

感謝を行いますが、それは「ファイル:/home/me/workspace/HADOOP/stored.xlsは」という例外がスローされます(これはローカルパスである)が存在しませんが。 HDFSのファイルは '/user/me/stored.xls'にあります。私も新しいパス( "/ user/me/stored.xls")を試しましたが、それもうまくいきません。 – Pierre

+0

まず、Hadoopが "hdfs:"ではなく "file:"について不平を言うのは不思議です。もしあなたのhadoop-site.xmlの設定が間違っているかもしれないなら。そして、それでもまだ動作しない場合は、mkdirを入力してstored.xlsを "input"ディレクトリに置いてください(すべてbin/hadoop fsコマンドを使用してください)。そして、新しいパス( "stored.xls")の代わりに新しいパス( "入力") – yogman

+0

ジョブを実行するためにコマンドラインを公開しても問題はありません。 – yogman

1

Pierreでは、Hadoopのデフォルト設定は分散モードではなく、ローカルモードで実行されます。おそらく、あなたのhadoop-site.xml内のいくつかの設定を変更するだけです。あなたのデフォルトのファイルシステムは、hdfs:// youraddress:yourportでなければなりません。 fs.default.nameの設定を見てください。詳細については、Michael Noll's blogの設定ヘルプを参照してください。

1

FileInputFormat.setInputPaths(conf、new Path( "hdfs:// hostname:port/user/me/stored.xls"));

これは

関連する問題