[HADOOP] hadoop fs -ls 결과는 "no such file or directory"입니다.
HADOOPhadoop fs -ls 결과는 "no such file or directory"입니다.
10 노드 클러스터에 Hadoop 2.5.2를 설치하고 구성했습니다. 1은 masternode 및 다른 노드를 slavenodes로 사용합니다.
hadoop fs 명령을 실행할 때 문제가 있습니다. hadoop fs -ls 명령은 HDFS URI와 잘 작동합니다. HDFS URI없이 사용하면 "ls :`. ': 메시지가 없습니다."
ubuntu@101-master:~$ hadoop fs -ls
15/01/30 17:03:49 WARN util.NativeCodeLoader: Unable to load native-hadoop
ibrary for your platform... using builtin-java classes where applicable
ls: `.': No such file or directory
ubuntu@101-master:~$
반면 HDFS URI로 동일한 명령을 실행하는 경우
ubuntu@101-master:~$ hadoop fs -ls hdfs://101-master:50000/
15/01/30 17:14:31 WARN util.NativeCodeLoader: Unable to load native-hadoop
library for your platform... using builtin-java classes where applicable
Found 3 items
drwxr-xr-x - ubuntu supergroup 0 2015-01-28 12:07 hdfs://101-master:50000/hvision-data
-rw-r--r-- 2 ubuntu supergroup 15512587 2015-01-28 11:50 hdfs://101-master:50000/testimage.seq
drwxr-xr-x - ubuntu supergroup 0 2015-01-30 17:03 hdfs://101-master:50000/wrodcount-in
ubuntu@101-master:~$
이 동작으로 인해 MapReduce 프로그램에서 예외가 발생합니다. jarlib은 HDFS 파일 위치를 가리키는 반면, jarlib은 Hadoop 노드의 로컬 파일 시스템에 저장된 jar 파일을 참조합니다.
해결법
-
==============================
1.보고있는 동작이 예상됩니다. hadoop fs 명령으로 작업 할 때 어떤 일이 벌어지고 있는지 설명해 드리겠습니다.
보고있는 동작이 예상됩니다. hadoop fs 명령으로 작업 할 때 어떤 일이 벌어지고 있는지 설명해 드리겠습니다.
명령 구문은 다음과 같습니다. hadoop fs -ls [경로]
기본적으로, 위의 명령에 [경로]를 지정하지 않으면, hadoop은 hdfs에서 경로를 / home / [사용자 이름]으로 확장합니다. 여기서 [username]은 명령을 실행하는 linux 사용자 이름으로 대체됩니다.
따라서이 명령을 실행할 때 :
ubuntu@xad101-master:~$ hadoop fs -ls
그 오류를보고있는 이유는 ls : '.'입니다 : hadoop이 / home / 우분투 경로를 찾고 있기 때문에 그러한 파일이나 디렉토리가 없습니다.이 경로가 hdfs에 존재하지 않는 것처럼 보입니다.
이 명령을 사용하는 이유는 다음과 같습니다.
ubuntu@101-master:~$ hadoop fs -ls hdfs://101-master:50000/
[path]를 명시 적으로 지정했고 hdfs의 루트이기 때문에 작동합니다. 다음을 사용하여 동일한 작업을 수행 할 수도 있습니다.
ubuntu@101-master:~$ hadoop fs -ls /
자동으로 hdfs의 루트로 평가됩니다.
희망, 이것은 hadoop fs -ls 명령을 실행하는 동안보고있는 동작을 지 웁니다.
따라서 로컬 파일 시스템 경로를 지정하려면 file : /// url scheme을 사용하십시오.
-
==============================
2.이것은 사용자의 누락 된 홈 디렉토리와 관련이 있습니다. 일단 로그인 한 사용자의 hdfs 아래에 홈 디렉토리를 만들면 매력과 같이 작동합니다.
이것은 사용자의 누락 된 홈 디렉토리와 관련이 있습니다. 일단 로그인 한 사용자의 hdfs 아래에 홈 디렉토리를 만들면 매력과 같이 작동합니다.
hdfs dfs -mkdir /user hdfs dfs -mkdir /user/{loggedin user} hdfs dfs -ls
이 방법은 내 문제를 해결했습니다.
-
==============================
3.Hadoop의 사용자 디렉토리는 (HDFS에서)
Hadoop의 사용자 디렉토리는 (HDFS에서)
/user/<your operational system user>
이 오류 메시지가 나타나면 HDFS 내에 사용자 디렉토리를 아직 만들지 않았기 때문일 수 있습니다.
용도
hadoop fs -mkdir -p /user/<current o.p. user directory>
현재 운영 체제 사용자가 무엇인지 확인하려면 다음을 사용하십시오.
id -un
hadoop fs -ls 작업을 시작해야합니다 ...
-
==============================
4.직장에서 몇 가지 일이 있습니다. "jarlib은 HDFS 파일 위치를 참조합니다"에 기반하여 실제로 HDFS 경로가 fs.default.name으로 설정되어있는 것처럼 들리지만 실제로는 일반적인 설정입니다. 그래서 hadoop fs -ls를 타이핑 할 때, 실제로 HDFS를 들여다 보려고합니다. 현재 작업 디렉토리를 보면 hdfs : // 101-master : 50000 / user / 우분투와 같은 것이어야합니다. 오류 메시지는 불행히도 그 사실을 알려주지 않으므로 다소 혼란 스럽습니다. 그 전체 경로로 해석되었다. hadoop fs -mkdir / user / 우분투의 경우 hadoop fs -ls가 작동하기 시작해야합니다.
직장에서 몇 가지 일이 있습니다. "jarlib은 HDFS 파일 위치를 참조합니다"에 기반하여 실제로 HDFS 경로가 fs.default.name으로 설정되어있는 것처럼 들리지만 실제로는 일반적인 설정입니다. 그래서 hadoop fs -ls를 타이핑 할 때, 실제로 HDFS를 들여다 보려고합니다. 현재 작업 디렉토리를 보면 hdfs : // 101-master : 50000 / user / 우분투와 같은 것이어야합니다. 오류 메시지는 불행히도 그 사실을 알려주지 않으므로 다소 혼란 스럽습니다. 그 전체 경로로 해석되었다. hadoop fs -mkdir / user / 우분투의 경우 hadoop fs -ls가 작동하기 시작해야합니다.
이 문제는 "jarlib"문제와 관련이 없습니다. 로컬 파일 시스템에 명시 적으로 저장된 파일을 참조하려고 할 때마다 경로가 Hadoop의 경로 분석을 통과하는 경우 Hadoop이 로컬 파일 시스템을 참조하도록하려면 file : ///을 추가하기 만하면됩니다. 예 :
hadoop fs -ls file:///tmp
jar 파일 경로를 fille file : /// path / to / your / jarfile로 전달하면 제대로 작동합니다.
-
==============================
5.WARN util.NativeCodeLoader : 네이티브 - hadoop 라이브러리를로드 할 수 없습니다. 플랫폼 ... 내장 Java 클래스 사용 (해당되는 경우)
WARN util.NativeCodeLoader : 네이티브 - hadoop 라이브러리를로드 할 수 없습니다. 플랫폼 ... 내장 Java 클래스 사용 (해당되는 경우)
이 오류는 .bashrc 파일에서이 명령을 사용하여 제거됩니다.
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/usr/local/hadoop/lib/native" ------------------------------------------------------ /usr/local/hadoop is location where hadoop is install -------------------------------------------------------
from https://stackoverflow.com/questions/28241251/hadoop-fs-ls-results-in-no-such-file-or-directory by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] mrunit의 후계자는 무엇입니까? (0) | 2019.06.06 |
---|---|
[HADOOP] Hadoop에 데이터 쓰기 (0) | 2019.06.06 |
[HADOOP] `hadoop dfs '와`hadoop fs`의 차이점 [닫힘] (0) | 2019.06.06 |
[HADOOP] YARN의 컨테이너 란 무엇입니까? (0) | 2019.06.06 |
[HADOOP] Hive에 문자열 분할 기능이 있습니까? (0) | 2019.06.06 |