2014-09-23 8 views
-1

FTP 서버 (F [ftp]), Linux 상자 (S [독립 실행 형]) 및 hadoop 클러스터 (C [클러스터])가 있습니다. 현재 파일 흐름은 F-> S-> C입니다. 내가 S.FTP에서 HDFS로 파일을 복사하지 못했습니다.

현재의 흐름을 건너 뜀으로써 성능을 향상시키기 위해 노력하고 있습니다 :

wget ftp://user:[email protected]/absolute_path_to_file 
hadoop fs -copyFromLocal path_to_file path_in_hdfs 

내가 시도 :

hadoop fs -cp ftp://user:[email protected]/absolute_path_to_file path_in_hdfs 

과 :

hadoop distcp ftp://user:[email protected]/absolute_path_to_file path_in_hdfs 

모두 중단됩니다. distcp 중 하나가 작업이되면 시간 초과로 인해 종료됩니다. 로그 (hadoop 작업 로그)는 시간 초과로 인해 종료되었다고 말했습니다. 나는 C 노드의 ftp에서 wget하려고 시도했다. 그 이유와 힌트는 무엇일까요? 소스 파일이 로컬 파일 시스템의 파일을 그대로

+0

최근 결과 : 1. distcp 프로세스는 100 % 맵을 처리하고 0 %를 감소 시키지만 마지막으로 시간 초과에 의해 맵이 인쇄됩니다. 2. distcp -log/hdfspath는 어떤 이유로 비어 있습니다. 3. 공용 저장소에서 동일한 클러스터에 대해 Mozilla를 fs -cp 및 distcp 할 수 있습니다. 나는 조사 중이다. 1. 클러스터의 모든 노드가 복사를 시도하는 FTP에 액세스 할 수 있는지 여부. 2. FTP 서버의 알려진 문제점을 점검하십시오. – Denis

+0

더 많은 정보, fs -put 및 distcp는 올바른 크기의 path_in_hdfs/filename._COPYING_ 파일을 만듭니다. – Denis

+0

추가 정보 : 서버는 SunOs 5.10에서 실행되는 tftpd입니다. – Denis

답변

-1

하둡 FS -cp ftp://user:[email protected]pserver.com/absolute_path_to_file path_in_hdfs

이 사용될 수 없다. 전달하려고하는 계획을 고려하지 않습니다. javadoc을 참조하십시오 : FileSystem

DISTCP는 대형 인트라 또는 클러스터 간 (Hadoop 클러스터, 즉 HDFS로 읽음) 전용입니다. 다시 FTP에서 데이터를 가져올 수 없습니다. 2 단계 프로세스가 여전히 최선의 방법입니다. 또는 FTP에서 읽고 HDFS에 쓸 프로그램을 작성하십시오. 표준 입력을 통해

+0

소스가 FTP에 있습니다. 나는 다른 클러스터에서 FTP로부터 hadoop fs -cp를 시도해 보았다. 그래서 유효한 옵션입니다. distcp도 작동하기 시작했으나 메모리 예외로 인해 실패했습니다. – Denis

+0

안돼. javadoc 또는 소스를 본 적이 있습니까? 나는 그것을 시도하는 데 도움이 될 것입니다. – Venkat

+0

Venkat, 도와 줘서 고맙지 만 공개 FTP에서 해봤지만 제대로 작동했습니다. – Denis

1

파이프를 :

wget ftp://user:[email protected]/absolute_path_to_file | hadoop fs -put - path_in_hdfs 

는 싱글 - 표준 입력에서 읽을 HDFS 넣어줍니다.

+0

다른 클러스터에서 hadoop fs -cp가 작동해야합니다. 그래서 왜 그것이 실패하는지 이해함으로써 시작하고 싶습니다. – Denis

+0

HDFS에서 ftp로 데이터를 복사하는 방법은 무엇입니까? –