copyFromLocal Hadoop에 해당 파일 또는 디렉터리 오류가 없습니다.

copyFromLocal Hadoop에 해당 파일 또는 디렉터리 오류가 없습니다.

Fedora 명령 터미널에서 다음 코드를 얻습니다.

[root@localhost python_code]# pwd
/root/python_code
[root@localhost python_code]# cd ..
[root@localhost ~]# ls
anaconda-ks.cfg  python_code
[root@localhost ~]# cd /usr/local
[root@localhost local]# ls
bin  games   hadoop-2.6.4.tar.gz  input        lib    libexec  sbin   src
etc  hadoop  include              jdk1.8.0_77  lib64  output   share
[root@localhost local]# cd hadoop
[root@localhost hadoop]# ls
bin  include  libexec      logs        README.txt  share
etc  lib      LICENSE.txt  NOTICE.txt  sbin
[root@localhost hadoop]# pwd
/usr/local/hadoop
[root@localhost hadoop]# bin/hdfs dfs -copyFromLocal /root/python_code/input_data.csv /usr/local/hadoop/input_localuser
copyFromLocal: `/usr/local/hadoop/input_localuser': No such file or directory
[root@localhost hadoop]# ls
bin  include  libexec      logs        README.txt  share
etc  lib      LICENSE.txt  NOTICE.txt  sbin
[root@localhost hadoop]# mkdir input_localuser
[root@localhost hadoop]# ls
bin  include          lib      LICENSE.txt  NOTICE.txt  sbin
etc  input_localuser  libexec  logs         README.txt  share
[root@localhost hadoop]# bin/hdfs dfs -copyFromLocal /root/python_code/input_data.csv /usr/local/hadoop/input_localuser
copyFromLocal: `/usr/local/hadoop/input_localuser': No such file or directory
[root@localhost hadoop]# bin/hdfs dfs -copyFromLocal /root/python_code/input_data.csv home/usr/local/hadoop/input_localuser
copyFromLocal: `home/usr/local/hadoop/input_localuser': No such file or directory
[root@localhost hadoop]# pwd
/usr/local/hadoop
[root@localhost hadoop]# ls
bin  include          lib      LICENSE.txt  NOTICE.txt  sbin
etc  input_localuser  libexec  logs         README.txt  share
[root@localhost hadoop]#

추가 코드:

[root@localhost hadoop]# cd ~
[root@localhost ~]# ls
anaconda-ks.cfg  python_code
[root@localhost ~]# cd python_code
[root@localhost python_code]# ls
data_generator.py  input_data.csv  mapper_project.py  reducer_project.py
[root@localhost python_code]#

위에 표시된 대로 내 디렉터리는 루트 폴더에 있으며 해당 폴더의 파일을 hadoop 내의 디렉터리 python_code로 복사하려고 합니다 .input_userlocal

그러나 다음 명령은 오류를 발생시킵니다.

bin/hdfs dfs -copyFromLocal /root/python_code/input_data.csv /usr/local/hadoop/input_localuser
    copyFromLocal: `/usr/local/hadoop/input_localuser': No such file or directory

답변1

첫째, Hadoop 명령이 올바르지 않을 수 있습니다.

dfs -copyFromLocal두 개의 매개 변수, 즉 로컬 파일(지정한 대로)과 Hadoop URI가 필요합니다. 당신이 준 파일 경로가 아닙니다.

Hadoop 웹 페이지에서

모든 FS 셸 명령은 경로 URI를 매개변수로 사용합니다. URI 형식은chem://authority/path입니다. HDFS의 경우 구성표는 hdfs이고 로컬 FS의 경우 구성표는 파일입니다. 구성표와 권한은 선택 사항입니다. 지정하지 않으면 구성에 지정된 기본 구성표가 사용됩니다. HDFS 파일 또는 디렉터리(예: /parent/child)는 hdfs://namenodehost/parent/child로 지정하거나 간단히 /parent/child로 지정할 수 있습니다(구성이 hdfs://namenodehost를 가리키도록 설정되어 있다고 가정).

FS 셸의 대부분 명령은 해당 Unix 명령처럼 작동합니다. 각 명령에 대한 차이점이 설명되어 있습니다. 오류 메시지는 stderr로 전송되고 출력은 stdout으로 전송됩니다.

Hadoop 인스턴스의 구조는 모르지만 대상은 파일 시스템뿐만 아니라 구조의 이름을 기반으로 해야 합니다.

둘째, 위의 내용을 보여주지 않았습니다 /root/python_code/. 그것이 존재한다고 확신합니까 input_data.csv?

관련 정보