내 프로그램에서 fs.copyFromLocalFile (로컬 경로, Hdfs dest 경로)을 사용하고 있습니다. 매번 HDFS에서 대상 경로를 삭제할 때와 로컬 컴퓨터에서 파일을 복사하기 전에. 그러나 Local 경로에서 파일을 복사하고 map reduce를 구현하면 각 파일의 사본이 두 개 생성되므로 count 단어가 두 배로 늘어납니다.각 파일의 복사본 두 개가 로컬에서 HDFS로 복사됩니다.
분명히하기 위해 "/ home/user/desktop/input /"은 로컬 경로로, HDFS dest 경로는 "/ input"이됩니다.
나는 HDFS의 대상 경로를 확인하는 경우, 즉 폴더가있는이 결과
[email protected]:~$ hdfs dfs -ls /input
14/03/30 08:30:12 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 4 items
-rw-r--r-- 1 hduser supergroup 62 2014-03-30 08:28 /input/1.txt
-rw-r--r-- 1 hduser supergroup 62 2014-03-30 08:28 /input/1.txt~
-rw-r--r-- 1 hduser supergroup 21 2014-03-30 08:28 /input/2.txt
-rw-r--r-- 1 hduser supergroup 21 2014-03-30 08:28 /input/2.txt~
내가 단일 파일 홈/사용자/데스크탑/입력으로 입력을 제공 할 때/1.TXT가 생성입니다 적용된 줄일하는지도 문제가없고 단일 파일 만 복사됩니다. 그러나 디렉토리를 언급하면 문제가 발생합니다. HDFS Dest through 명령 줄에 각 파일을 수동으로 배치해도 아무런 문제가 발생하지 않습니다.
파일 시스템의 간단한 논리가 누락 된 경우 확실하지 않습니다. 어떤 사람이 내가 잘못 가고있는 곳을 제안 할 수 있다면 좋을 것입니다.
저는 hadoop 2.2.0을 사용하고 있습니다.
로컬 임시 파일을 삭제하려고 시도했으며 텍스트 파일이 열려 있지 않은지 확인했습니다. 임시 파일을 복사하는 것을 피하는 방법을 찾고 있습니다.
미리 감사드립니다.
hadoop 버전을 지정하여 질문을 수정하십시오. copyFromLocal 및 mapreduce 논리를 함께 실행하는 대신 copyFromLocal 명령 바로 다음에/input 디렉토리의 파일을 확인할 수 있습니다. – sachin
@sachinjose 맵 축소 실행 중에 로컬 경로를 지정할 수있는 인터페이스를 제공하려고했습니다. 임시 파일을 피할 수있는 솔루션을 찾고 있습니다. – user2934433