'hadoop fs -head'쉘 명령이없는 이유는 무엇입니까?
HDFS에서 파일을 검사하는 빠른 방법은 tail 을 사용하는 것입니다 .
~$ hadoop fs -tail /path/to/file
이렇게하면 파일의 마지막 KB 데이터가 표시되므로 매우 유용합니다. 그러나 반대 명령 head
은 셸 명령 모음의 일부로 나타나지 않습니다. 나는 이것이 매우 놀랍다는 것을 안다.
내 가설은 HDFS가 매우 큰 파일에 대해 매우 빠른 스트리밍 읽기를 위해 구축 되었기 때문에 head
. 이로 인해 머리에 접근하는 일을 주저하게됩니다. 누구 대답이 있습니까?
효율성과 더 관련이 있다고 말하고 싶습니다. linux head 명령을 통해 hadoop fs -cat의 출력을 파이핑하여 헤드를 쉽게 복제 할 수 있습니다.
hadoop fs -cat /path/to/file | head
원하는 수의 라인이 출력 된 후 헤드가 기본 스트림을 닫으므로 효율적입니다.
이러한 방식으로 tail을 사용하면 최종 x 줄 수를 찾기 위해 전체 파일 (모든 HDFS 블록)을 스트리밍해야하므로 훨씬 덜 효율적입니다.
hadoop fs -cat /path/to/file | tail
hadoop fs -tail 명령은 마지막 킬로바이트에서 작동합니다. hadoop은 마지막 블록을 효율적으로 찾고 최종 킬로바이트 위치로 건너 뛴 다음 출력을 스트리밍 할 수 있습니다. 꼬리를 통한 배관은 쉽게 할 수 없습니다.
버전 3.1.0부터 이제 다음과 같이됩니다.
사용법 : hadoop fs -head URI
파일의 첫 번째 KB를 stdout에 표시합니다.
를 참조하십시오 여기 .
hdfs -dfs /path | head
문제를 해결하는 좋은 방법입니다.
다음 명령을 시도 할 수 있습니다.
hadoop fs -cat /path | head -n
-n
볼 레코드 수로 대체 할 수있는 위치
Hadoop v2 :
hdfs dfs -cat /file/path|head
Hadoop v1 및 v3 :
hadoop fs -cat /file/path|head
참조 URL : https://stackoverflow.com/questions/19778137/why-is-there-no-hadoop-fs-head-shell-command
'IT TIP' 카테고리의 다른 글
C #의 날짜 시간 추가 일 (0) | 2020.12.28 |
---|---|
빈 문자열이있는 SQL Coalesce (0) | 2020.12.28 |
bash 스크립트에서 다른 사용자의 $ HOME 디렉토리를 얻는 방법은 무엇입니까? (0) | 2020.12.28 |
py.test를 실행하는 동안 ImportMismatchError 오류가 발생합니다. (0) | 2020.12.28 |
2 개의 개별 프로세스간에 인 메모리 데이터를 공유 할 수 있습니까? (0) | 2020.12.28 |