복붙노트

[HADOOP] hadoop-streaming.jar는 각 줄의 끝에 x'09 '를 추가합니다

HADOOP

hadoop-streaming.jar는 각 줄의 끝에 x'09 '를 추가합니다

아래의 hadoop-streaming.jar 명령을 사용하여 HDFS 위치에 * _0 (HDFS의 일부 파일) 파일을 병합하려고합니다.

  hadoop jar $HDPHOME/hadoop-streaming.jar -Dmapred.reduce.tasks=1 -input $INDIR -output $OUTTMP/${OUTFILE}  -mapper cat -reducer cat

일이 잘 작동합니다-예외로, 위 명령의 결과가 각 줄의 끝에 x'09 '를 추가하는 것처럼 보입니다.

마지막 필드가 BIGINT로 정의 된 부분 파일 (병합 된 파일로 대체 됨) 위에 Hive 테이블이 정의되어 있습니다. 병합 된 파일은 x'09 '를 마지막 필드에 추가하기 때문에 tbale의 동일한 정의는 색조의 마지막 필드에서 NULL을 표시합니다 (510408은 더 이상 X'09'가 추가 된 숫자가 아님).

부품 파일의 데이터.

00000320  7c 35 31 30 34 30 38 0a                           ||510408.|

병합 된 파일의 데이터 (위 명령의 결과)

00000320  7c 35 31 30 34 30 38 09  0a                       ||510408..|

이 문제가 발생하지 않도록하려면 이를 방지하기 위해 명령에서 설정할 수있는 옵션이 있습니까?

도움 / 포인터를위한 시간을 보내십시오.

해결법

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

    1.이 게시물에서 답을 찾았습니다.

    이 게시물에서 답을 찾았습니다.

    아래 옵션을 추가하면 문제가 해결됩니다.

    -D mapred.textoutputformat.separator=<delimiter-of-input-file>
    
  2. from https://stackoverflow.com/questions/45620256/hadoop-streaming-jar-adds-x09-at-the-end-of-each-line by cc-by-sa and MIT license