복붙노트

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

HADOOP

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

HDFS에서 파일을 검사하는 빠른 방법은 tail을 사용하는 것입니다.

~$ hadoop fs -tail /path/to/file

그러면 파일의 마지막 킬로바이트가 표시되므로 매우 유용합니다. 그러나 반대 명령 머리글은 셸 명령 모음의 일부로 보이지 않습니다. 나는이 사실이 매우 놀랍다 고 생각한다.

HDFS는 대용량 파일에서 매우 빠른 스트리밍 읽기를 위해 제작 되었기 때문에 머리에 영향을주는 액세스 지향적 인 문제가 있습니다. 이것은 내가 머리에 접근하기위한 일을하는 것을 주저하게 만든다. 아무도 대답이 없습니까?

해결법

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

    1.나는 효율성과 더 관련이 있다고 말할 수 있습니다. 머리는 linux head 명령을 통해 hadoop fs -cat의 출력을 파이프하여 쉽게 복제 할 수 있습니다.

    나는 효율성과 더 관련이 있다고 말할 수 있습니다. 머리는 linux head 명령을 통해 hadoop fs -cat의 출력을 파이프하여 쉽게 복제 할 수 있습니다.

    hadoop fs -cat /path/to/file | head
    

    이것은 원하는 수의 라인이 출력 된 후에 헤드가 기본 스트림을 닫을 때 효율적입니다.

    이 방식으로 꼬리를 사용하면 상당히 효율적이지 않습니다. 마지막 x 행을 찾으려면 전체 파일 (모든 HDFS 블록)을 스트리밍해야합니다.

    hadoop fs -cat /path/to/file | tail
    

    마지막 kilobyte-hadoop에서 작업 한 noteoop fs -tail 명령은 마지막 블록을 효율적으로 찾고 최종 킬로 바이트의 위치로 건너 뛴 다음 출력을 스트리밍 할 수 있습니다. 꼬리를 통한 배관은 쉽게이 작업을 수행 할 수 없습니다.

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

    2.

    hdfs -dfs /path | head
    

    문제를 해결하는 좋은 방법입니다.

  3. ==============================

    3.당신은 다음 명령을 시도 할 수있다.

    당신은 다음 명령을 시도 할 수있다.

    hadoop fs -cat /path | head -n 
    

    여기서 -n은 볼 레코드 수로 바꿀 수 있습니다.

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

    4.Hadoop v2 :

    Hadoop v2 :

    hdfs dfs -cat /file/path|head
    

    Hadoop v1 및 v3 :

    hadoop fs -cat /file/path|head
    
  5. ==============================

    5.버전 3.1.0부터는 다음과 같은 기능을 제공합니다.

    버전 3.1.0부터는 다음과 같은 기능을 제공합니다.

    여길 봐.

  6. from https://stackoverflow.com/questions/19778137/why-is-there-no-hadoop-fs-head-shell-command by cc-by-sa and MIT license