복붙노트

[HADOOP] 다른 컴퓨터에 hadoop getmerge

HADOOP

다른 컴퓨터에 hadoop getmerge

hadoop dfs -getmerge 명령의 출력을 다른 시스템에 저장할 수 있습니까?

그 이유는 로컬 컴퓨터에 충분한 공간이 없다는 것입니다. 작업 출력은 100GB이고 로컬 저장 용량은 60GB입니다.

또 다른 이유는 내가 다른 프로그램에서 로컬로 다른 프로그램의 출력을 처리하고 싶기 때문이며 두 번 전송하려고하지 않을 수 있습니다 (HDFS-> 로컬 FS -> 원격 시스템). 난 그냥 (HDFS -> 원격 컴퓨터) 싶어요.

나는 scp가 어떻게 작동하는지와 비슷한 것을 찾고있다.

hadoop dfs -getmerge / user / hduser / 작업 출력 user @ someIP : / home / user /

또는 원격 호스트에서 로컬 시스템으로 HDFS 데이터를 가져오고 싶습니다.

이 경우 유닉스 파이프 라인을 사용할 수 있습니까?

hadoop에 익숙하지 않은 사용자를 위해이 명령의 로컬 dir 매개 변수 (/ user / hduser / Job-output)를 원격 시스템의 디렉토리로 바꾸는 방법을 찾고 있습니다.

해결법

  1. ==============================

    1.이렇게하면 필요한 것을 정확하게 처리 할 수 ​​있습니다.

    이렇게하면 필요한 것을 정확하게 처리 할 수 ​​있습니다.

    hadoop fs -cat /user/hduser/Job-output/* | ssh user@remotehost.com "cat >mergedOutput.txt"
    

    fs -cat은 모든 파일을 순서대로 읽고 stdout으로 출력합니다.

    ssh는 그것들을 원격 기계의 파일에 전달할 것입니다 (scp는 stdin을 입력으로받지 않습니다)

  2. from https://stackoverflow.com/questions/21776339/hadoop-getmerge-to-another-machine by cc-by-sa and MIT license