2011-01-17 12 views

答えて

15

Hadoop FS shellを使用してください。具体的に:あなたは、プログラムでそれを行う2つのファイルシステム(ローカルおよび1 HDFS 1)を作成し、the FileUtil class

+0

私はこれをプログラム的に行う必要があります。シェルからではなく – rakeshr

+0

OK、私はFileUtilを使ってそれを行う方法を追加しました。 –

+0

hadoop fsはファイル共有からコピーをサポートできますか?私はそれをすることに成功しません – machinarium

10

を使用したい場合は

$ hadoop fs -copyFromLocal /path/to/local hdfs:///path/to/hdfs 

私はそれを与えた

/hadoop/core/bin/hadoop fs -copyFromLocal /home/grad04/lopez/TPCDSkew/ /export/hadoop1/lopez/Join/TPCDSkew 

を使用して、ディレクトリからコピーしてみました私はTargetがディレクトリだと言っているエラーです。私はそれを

/hadoop/core/bin/hadoop fs -copyFromLocal /home/grad04/lopez/TPCDSkew/*.* /export/hadoop1/lopez/Join/TPCDSkew 

に変更しました。

+1

これは、hadoopバージョン0.20を参照しています。 – LGG

+2

この問題は修正され、この表記は不要になりました。しかし、OPはhadoopバージョンを指定していないので、この回答は古いバージョンにも適用される可能性があります。 – Tommy

0

プログラマーにとっては、copyFromLocalFileも使用できます。ここでは一例です:

Hadoopのバージョンで
import org.apache.hadoop.conf.Configuration 
import org.apache.hadoop.fs.FileSystem 
import org.apache.hadoop.fs.Path 

val hdfsConfig = new Configuration 
val hdfsURI = "hdfs://127.0.0.1:9000/hdfsData" 
val hdfs = FileSystem.get(new URI(hdfsURI), hdfsConfig) 

val oriPath = new Path("#your_localpath/customer.csv") 
val targetFile = new Path("hdfs://your_hdfspath/customer.csv") 
hdfs.copyFromLocalFile(oriPath, targetFile) 
2

Hadoop 2.4.0.2.1.1.0-390 

(そしておそらく後に、それは私が持っているものですと私は、この特定のバージョンをテストしている)

コピーすることができますを使用してディレクトリ全体を再帰的に再帰的に使用します。たとえば、

hadoop fs -copyFromLocal /path/on/disk /path/on/hdfs 

は、/path/on/diskがサブディレクトリとファイルを含むディレクトリであっても動作します。

関連する問題