복붙노트

[HADOOP] VI에서 편집 할 HDFS에 저장된 파일 열기

HADOOP

VI에서 편집 할 HDFS에 저장된 파일 열기

VI를 사용하여 HDFS에서 직접 텍스트 파일을 편집하고 로컬에 복사하지 않고 편집 한 다음 로컬에서 다시 복사합니다. 이것이 가능한가?

편집 : 이것은 Cloudera의 색조 UI에서 가능 했었지만 더 이상 적용되지 않습니다.

해결법

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

    1.몇 가지 옵션을 시도해 볼 수 있습니다.이 옵션을 사용하면 로컬 시스템에 HDFS를 마운트 한 다음 cp, rm, cat, mv, mkdir, rmdir 등의 로컬 시스템 명령을 사용할 수 있습니다. 그러나 둘 중 어느 것도 사용할 수 없습니다 임의 쓰기 작업을 지원하지만 추가 작업을 지원합니다.

    몇 가지 옵션을 시도해 볼 수 있습니다.이 옵션을 사용하면 로컬 시스템에 HDFS를 마운트 한 다음 cp, rm, cat, mv, mkdir, rmdir 등의 로컬 시스템 명령을 사용할 수 있습니다. 그러나 둘 중 어느 것도 사용할 수 없습니다 임의 쓰기 작업을 지원하지만 추가 작업을 지원합니다.

    NFS 게이트웨이는 NFS V3를 사용하고 파일에 추가를 지원하지만 임의 쓰기 작업을 수행 할 수 없습니다.

    색조에 대한 귀하의 의견과 관련하여 색조가 로컬 버퍼에 파일을 다운로드하고 편집 한 후 HDFS의 원본 파일을 대체 할 수 있습니다.

  2. ==============================

    2.간단한 방법은 hdfs에서 복사하여 로컬로 편집하는 것입니다 (여기를보십시오)

    간단한 방법은 hdfs에서 복사하여 로컬로 편집하는 것입니다 (여기를보십시오)

    hvim <filename>
    

    hvim의 소스 코드

    hadoop fs -text $1>hvim.txt
    vim hvim.txt
    hadoop fs -rm -skipTrash $1
    hadoop fs -copyFromLocal hvim.txt $1
    rm hvim.txt
    
  3. ==============================

    3.hadoop fs -put -f에서 -f 옵션을 사용하여 HDFS의 파일을 바꿀 수 있습니다. 이렇게하면 삭제하고 복사 할 필요가 없습니다.

    hadoop fs -put -f에서 -f 옵션을 사용하여 HDFS의 파일을 바꿀 수 있습니다. 이렇게하면 삭제하고 복사 할 필요가 없습니다.

  4. ==============================

    4.HDFS의 파일은 직접 편집 할 수 없습니다. HDFS의 파일을 바꿀 수는 없지만 직접 편집 할 수는 없습니다. 유일한 방법은 파일을 삭제하고 새 파일로 업데이트 할 수 있습니다.

    HDFS의 파일은 직접 편집 할 수 없습니다. HDFS의 파일을 바꿀 수는 없지만 직접 편집 할 수는 없습니다. 유일한 방법은 파일을 삭제하고 새 파일로 업데이트 할 수 있습니다.

    로컬 파일을 편집하고 HDFS에서 다시 복사하십시오. 동일한 이름을 유지하려면 이전 파일을 삭제하는 것을 잊지 마십시오.

  5. ==============================

    5.여기에있는 다른 대답은 정확합니다. POSIX 호환 파일 시스템이 아니기 때문에 HDFS에서 파일을 편집 할 수 없습니다. 추가 만 가능합니다.

    여기에있는 다른 대답은 정확합니다. POSIX 호환 파일 시스템이 아니기 때문에 HDFS에서 파일을 편집 할 수 없습니다. 추가 만 가능합니다.

    최근에 나는 헤더 파일을 hdfs 파일에서 고쳐야했지만, 그게 내가 생각해내는 것이 가장 좋다.

    sc.textFile(orig_file).map(fix_header).coalesce(1).saveAsTextFile(orig_file +'_fixed')
    

    스파크 (PySpark) 코드입니다. coalesce (1)가 병렬 작업이 아니기 때문에 하나의 출력 파일 만 얻을 수 있다는 이점이 있습니다. 그럼 원래 파일을 덮어 쓰려면 "orig_file + '_ fixed'"디렉토리의 파일을 이동하거나 이름을 바꿉니다.

    추신. .coalesce (1) 부분을 생략 할 수 있으며 변환은 병렬로 실행됩니다 (큰 파일 / 다중 분할을 가정 할 때). 훨씬 빨라지 겠지만 출력 hdfs 파일을 하나로 병합해야합니다.

    pps. 파이프 라인의 "지도"호출은 "fix_header"기능을 통해 헤더를 수정합니다 (명확성을 위해 여기에 표시되지 않음).

  6. from https://stackoverflow.com/questions/26809053/opening-a-file-stored-in-hdfs-to-edit-in-vi by cc-by-sa and MIT license