IT TIP

'hadoop fs -head'쉘 명령이없는 이유는 무엇입니까?

itqueen 2020. 12. 28. 22:21
반응형

'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

반응형