Mover os dados para hdfs usando o comutador copyFromLocal
não sei o que se passa aqui, mas estou a tentar copiar um ficheiro simples de uma pasta no meu sistema de ficheiros local para a pasta indicada para hdfs.
no meu site hdfs.xml I indicou que a pasta para hdfs será /home/vaibhav/Hadoop/dataNodeHadoopData usando as seguintes propriedades -
<name>dfs.data.dir</name>
<value>/home/vaibhav/Hadoop/dataNodeHadoopData/</value>
and
<name>dfs.name.dir</name>
<value>/home/vaibhav/Hadoop/dataNodeHadoopData/</value>
estou a usar o seguinte comando -
bin/hadoop dfs -copyFromLocal /home/vaibhav/ml-100k/u.data /home/vaibhav/Hadoop/dataNodeHadoopData
para copiar o ficheiro U. dados da sua localização no sistema de ficheiros local para a pasta que indiquei como Hdfs Directorio. Mas quando eu faço isso, nada acontece - nenhum erro, nada. E nenhum ficheiro é copiado para o hdsf. Estou a fazer alguma coisa errada? Algum problema de permissões pode estar lá?
São necessárias sugestões.estou a usar o modo de nó simples pseudo-distribuído.
Também, em uma nota relacionada, eu quero pedir que em meu programa de redução de mapa eu defini a configuração para apontar para o inputFilePath como/home/vaibhav/ml-100k / U. dados. Por isso, ele não copiaria automaticamente o arquivo a partir de um determinado local para hdfs ?
1 answers
Eu acredito que dfs.data.dir
e dfs.name.dir
têm de apontar para dois directórios diferentes e existentes. Além disso, certifique-se de que formatou o namenode FS depois de mudar as pastas na configuração.
Ao copiar para HDFS, está incorrectamente a especificar o alvo. A sintaxe correcta para copiar um ficheiro local para HDFS é:
bin/hadoop dfs -copyFromLocal <local_FS_filename> <target_on_HDFS>
Exemplo:
bin/hadoop dfs -copyFromLocal /home/vaibhav/ml-100k/u.data my.data
Isto criaria um ficheiro my.data
na pasta pessoal do seu utilizador em HDFS.
Antes de copiar arquivos para HDFS certifique-se, você listar primeiro o conteúdo do directório e a criação do directório.