ローカルファイルシステムからHDFSにフォルダーをコピーする必要があります。フォルダ(すべてのサブフォルダを含む)をHDFSに移動する例が見つかりませんでした
$ hadoop fs -copyFromLocal /home/ubuntu/Source-Folder-To-Copy HDFS-URI
あなたが試すことができます:
hadoop fs -put /path/in/linux /hdfs/path
あるいは
hadoop fs -copyFromLocal /path/in/linux /hdfs/path
デフォルトでは、put
とcopyFromLocal
の両方が再帰的にディレクトリをHDFSにアップロードします。
ローカルからフォルダーをコピーすると、すべてのサブフォルダーを含むフォルダーがHDFSにコピーされます。
ローカルからhdfsにフォルダーをコピーするには、次を使用できます。
hadoop fs -put localpath
または
hadoop fs -copyFromLocal localpath
または
hadoop fs -put localpath hdfspath
または
hadoop fs -copyFromLocal localpath hdfspath
注:
Hdfsパスが指定されていない場合、フォルダーのコピーは、そのフォルダーと同じ名前のhdfsにコピーされます。
Hdfsからローカルにコピーするには
hadoop fs -get hdfspath localpath
hdfs dfs -put <localsrc> <dest>
ファイルをHDFSに配置する前にソースとターゲットを確認する
[cloudera@quickstart ~]$ ll files/
total 132
-rwxrwxr-x 1 cloudera cloudera 5387 Nov 14 06:33 cloudera-manager
-rwxrwxr-x 1 cloudera cloudera 9964 Nov 14 06:33 cm_api.py
-rw-rw-r-- 1 cloudera cloudera 664 Nov 14 06:33 derby.log
-rw-rw-r-- 1 cloudera cloudera 53655 Nov 14 06:33 enterprise-deployment.json
-rw-rw-r-- 1 cloudera cloudera 50515 Nov 14 06:33 express-deployment.json
[cloudera@quickstart ~]$ hdfs dfs -ls
Found 1 items
drwxr-xr-x - cloudera cloudera 0 2017-11-14 00:45 .sparkStaging
-put
または-copyFromLocal
コマンドを使用してファイルHDFSをコピーします
[cloudera@quickstart ~]$ hdfs dfs -put files/ files
HDFSで結果を確認する
[cloudera@quickstart ~]$ hdfs dfs -ls
Found 2 items
drwxr-xr-x - cloudera cloudera 0 2017-11-14 00:45 .sparkStaging
drwxr-xr-x - cloudera cloudera 0 2017-11-14 06:34 files
[cloudera@quickstart ~]$ hdfs dfs -ls files
Found 5 items
-rw-r--r-- 1 cloudera cloudera 5387 2017-11-14 06:34 files/cloudera-manager
-rw-r--r-- 1 cloudera cloudera 9964 2017-11-14 06:34 files/cm_api.py
-rw-r--r-- 1 cloudera cloudera 664 2017-11-14 06:34 files/derby.log
-rw-r--r-- 1 cloudera cloudera 53655 2017-11-14 06:34 files/enterprise-deployment.json
-rw-r--r-- 1 cloudera cloudera 50515 2017-11-14 06:34 files/express-deployment.json
以下を使用できます。
1。ローカルファイルからHDFSへのデータのロード
構文:$ hadoop fs –copyFromLocal
例:$ hadoop fs –copyFromLocal localfile1 HDIR
2。HDFSからローカルへのデータのコピー
Sys:$ hadoop fs –copyToLocal <新しいファイル名>
例:$ hadoop fs –copyToLocal hdfs/filename myunx;
フォルダーファイルをローカルからhdfsにコピーするには、次のコマンドを実行できます
hadoop fs -put /path/localpath /path/hdfspath
または
hadoop fs -copyFromLocal /path/localpath /path/hdfspath
Hadoopコマンドを実行できる「/ install/hadoop/datanode/bin」フォルダーまたはパスに移動します。
HDFSにファイルを配置するには:形式:hadoop fs -put "Local system path" /filename.csv "HDFS destination path"
例)./ hadoop fs -put /opt/csv/load.csv/user/load
ここで、/ opt/csv/load.csvは、ローカルLinuxシステムのソースファイルパスです。
/ user/loadは、「hdfs:// hacluster/user/load」のHDFSクラスター宛先パスを意味します
HDFSからローカルシステムにファイルを取得するには: Format:hadoop fs -get "/ HDFSsourcefilepath" "/ localpath"
例)hadoop fs -get /user/load/a.csv/opt/csv /
上記のコマンドを実行すると、HDFSのa.csvがローカルLinuxシステムの/ opt/csvフォルダーにダウンロードされます。
このアップロードされたファイルは、HDFS NameNode Web UIでも確認できます。
コマンドラインから-
Hadoop fs -copyFromLocal
Hadoop fs -copyToLocal
または、spark FileSystemライブラリを使用してhdfsファイルを取得または配置します。
これが役に立てば幸いです。