[HADOOP] VI에서 편집 할 HDFS에 저장된 파일 열기
HADOOPVI에서 편집 할 HDFS에 저장된 파일 열기
VI를 사용하여 HDFS에서 직접 텍스트 파일을 편집하고 로컬에 복사하지 않고 편집 한 다음 로컬에서 다시 복사합니다. 이것이 가능한가?
편집 : 이것은 Cloudera의 색조 UI에서 가능 했었지만 더 이상 적용되지 않습니다.
해결법
-
==============================
1.몇 가지 옵션을 시도해 볼 수 있습니다.이 옵션을 사용하면 로컬 시스템에 HDFS를 마운트 한 다음 cp, rm, cat, mv, mkdir, rmdir 등의 로컬 시스템 명령을 사용할 수 있습니다. 그러나 둘 중 어느 것도 사용할 수 없습니다 임의 쓰기 작업을 지원하지만 추가 작업을 지원합니다.
몇 가지 옵션을 시도해 볼 수 있습니다.이 옵션을 사용하면 로컬 시스템에 HDFS를 마운트 한 다음 cp, rm, cat, mv, mkdir, rmdir 등의 로컬 시스템 명령을 사용할 수 있습니다. 그러나 둘 중 어느 것도 사용할 수 없습니다 임의 쓰기 작업을 지원하지만 추가 작업을 지원합니다.
NFS 게이트웨이는 NFS V3를 사용하고 파일에 추가를 지원하지만 임의 쓰기 작업을 수행 할 수 없습니다.
색조에 대한 귀하의 의견과 관련하여 색조가 로컬 버퍼에 파일을 다운로드하고 편집 한 후 HDFS의 원본 파일을 대체 할 수 있습니다.
-
==============================
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.hadoop fs -put -f에서 -f 옵션을 사용하여 HDFS의 파일을 바꿀 수 있습니다. 이렇게하면 삭제하고 복사 할 필요가 없습니다.
hadoop fs -put -f에서 -f 옵션을 사용하여 HDFS의 파일을 바꿀 수 있습니다. 이렇게하면 삭제하고 복사 할 필요가 없습니다.
-
==============================
4.HDFS의 파일은 직접 편집 할 수 없습니다. HDFS의 파일을 바꿀 수는 없지만 직접 편집 할 수는 없습니다. 유일한 방법은 파일을 삭제하고 새 파일로 업데이트 할 수 있습니다.
HDFS의 파일은 직접 편집 할 수 없습니다. HDFS의 파일을 바꿀 수는 없지만 직접 편집 할 수는 없습니다. 유일한 방법은 파일을 삭제하고 새 파일로 업데이트 할 수 있습니다.
로컬 파일을 편집하고 HDFS에서 다시 복사하십시오. 동일한 이름을 유지하려면 이전 파일을 삭제하는 것을 잊지 마십시오.
-
==============================
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"기능을 통해 헤더를 수정합니다 (명확성을 위해 여기에 표시되지 않음).
from https://stackoverflow.com/questions/26809053/opening-a-file-stored-in-hdfs-to-edit-in-vi by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop 구성 : mapred. * vs mapreduce. * (0) | 2019.07.26 |
---|---|
[HADOOP] Hive에서 XML 데이터 행 분해 (0) | 2019.07.25 |
[HADOOP] PIG의 특정 필드 만로드 하시겠습니까? (0) | 2019.07.25 |
[HADOOP] EC2에서 spark 클래스 경로 설정 : spark.driver.extraClassPath 및 spark.executor.extraClassPath (0) | 2019.07.25 |
[HADOOP] hadoop에서 많은 수의 작은 파일을 어떻게 처리 할 수 있습니까? (0) | 2019.07.25 |