hadoop copia uma pasta local do sistema de ficheiros para HDFS
Preciso de copiar uma pasta do sistema de ficheiros local para HDFS. Eu poderia encontrar qualquer exemplo de mover uma pasta, incluindo a sua sub-pasta, para HDFS
:~$hadopp fs -copyFromLocal /home/ubuntu/Source-Folder-To-Copy HDFS-URI
6 answers
Podias tentar:
hadoop fs -put /path/in/linux /hdfs/path
Ou mesmo
hadoop fs -copyFromLocal /path/in/linux /hdfs/path
Por omissão, tanto put
como copyFromLocal
iriam enviar as pastas recursivamente para HDFS.
Se copiar uma pasta do local, então ela irá copiar a pasta com todas as suas sub-pastas para HDFS.
Para copiar uma pasta do local para o hdfs, pode usar
hadoop fs -put localpath
Ou
hadoop fs -copyFromLocal localpath
Ou
hadoop fs -put localpath hdfspath
Ou
hadoop fs -copyFromLocal localpath hdfspath
Nota:
Se não lhe for indicada a localização de hdfs, a cópia da pasta será copiada para hdfs com o mesmo nome dessa pasta.
Copiar de hdfs para local
hadoop fs -get hdfspath localpath
Em Resumo
hdfs dfs -put <localsrc> <dest>
Em detalhe com o exemplo:
Verificar a origem e o destino antes de colocar os ficheiros em 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
Copiar ficheiros HDFS usando -put
ou -copyFromLocal
comando
[cloudera@quickstart ~]$ hdfs dfs -put files/ files
Verifique o resultado em 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
Pode usar:
1.A CARREGAR DADOS DO FICHEIRO LOCAL PARA HDFS
Sintaxe:$hadoop fs-copyFromLocal
EX: $hadoop fs-copyfrom localfile1 HDIR
2. Copiar dados de HDFS para Local
Sys: $hadoop fs-copyToLocal
EX: $hadoop fs-copyToLocal hdfs/nome de ficheiro myunx;
Para copiar um ficheiro de pasta do local para o hdfs, poderá obter o comando abaixo
hadoop fs -put /path/localpath /path/hdfspath
Ou
hadoop fs -copyFromLocal /path/localpath /path/hdfspath
Navegue para a sua pasta ou localização" /install/hadoop/datanode/bin"onde poderá executar os seus comandos hadoop:
Para colocar os arquivos em HDFS: Formato: hadoop fs-put "Local system path" / nome do ficheiro.csv "caminho de destino HDFS"
Eg)./ hadoop fs-put/opt/csv / load.csv / utilizador / carga
Aqui está o /opt / csv / load.o csv é a localização do ficheiro de código do meu sistema linux local./utilizador / carga Significa o caminho de destino do aglomerado de HDFS em "hdfs://hackluster / user / load"
Para obter os arquivos de HDFS para o sistema local: Formato: hadoop fs-get "/HDFSsourcefilepath" "/ localpath"
Eg)hadoop fs-get / user/load / A. csv/opt/csv /
Depois de executar o comando acima, um. csv de HDFS seria transferido para a pasta /opt/csv no sistema linux local.
Estes ficheiros carregados também podem ser vistos através da interface web do nome HDFS.