복붙노트

[HADOOP] Sqoop 출력 파일에 사용자 정의 이름을 지정하는 방법

HADOOP

Sqoop 출력 파일에 사용자 정의 이름을 지정하는 방법

기본적으로 sqoop을 사용하여 하이브로 데이터를 가져 오면 HDFS에서 파일 이름이 part-m-0000, part-m-0001 등으로 생성됩니다.

이 파일들의 이름을 바꿀 수 있습니까?

로드를 나타내는 날짜를 가진 접미사 파일 이름과 같은 의미있는 이름을 지정하려면 어떻게해야합니까?

제안 해주세요

해결법

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

    1.sqoop으로 직접 할 수는 없지만 sqoop 가져 오기가 완료된 후 HDFS에서 이름을 바꿀 수 있습니다.

    sqoop으로 직접 할 수는 없지만 sqoop 가져 오기가 완료된 후 HDFS에서 이름을 바꿀 수 있습니다.

    today=`date +%Y-%m-%d`
    files=$(hadoop fs -ls /path-to-files | awk  '{print $8}')
    for f in $files; do hadoop fs -mv $f $f$today; done
    

    첫 번째 명령은 오늘 날짜를 얻습니다. 두 번째 명령은 디렉토리 내의 모든 파일 이름을 가져옵니다. 세 번째 명령은 날짜를 추가하여 해당 파일의 이름을 바꿉니다.

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

    2.그래 우리는 할 수있어 ! 여길 봐

    그래 우리는 할 수있어 ! 여길 봐

    sqoop import -D mapreduce.output.basename=`date +%Y-%m-%d`
    
  3. from https://stackoverflow.com/questions/28695790/how-to-give-custom-name-to-sqoop-output-files by cc-by-sa and MIT license