복붙노트

[HADOOP] crontab 명령에 하이브 쿼리를 예약하려면

HADOOP

crontab 명령에 하이브 쿼리를 예약하려면

하나는 특정 시간에 간단한 하이브 쿼리를 실행하고 나에게 텍스트의 출력을 제공 할 것입니다 crontab 명령에 작업을 예약하는 데 도움이 수 / 로그 파일.

나는 선택 쿼리를 실행하는 배치 스크립트를 작성했지만, crontab 명령에 그것을 실행하는 동안 오류 ( "하이브 명령을 찾을 수 없습니다")하기. 그러나 동일한 스크립트는 쉘을 통해 벌금을 실행 중입니다. 다음은 내 스크립트입니다 :

ip.sh
#!/bin/bash
echo "Starting of Job"
cd /home/hadoop/work/hive/bin
hive -e 'select * from mytest.empl'
echo "Script ends here"

crontab을 : 10 * * * * /home/hadoop/work/ip.sh /home/hadoop/work/quryout.log >> 2> (1) 및

은 crontab을 실행 한 후, 나는 로그에 메시지 아래에 무엇입니까 :

출력 (Queryout.log) : 작업 시작 행 번호 4에서 ip.sh에서 찾을 수 없습니다 하이브 명령 스크립트는 여기서 끝

해결법

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

    1.당신의 /home/hadoop/.bashrc에 다음 줄을 추가합니다 :

    당신의 /home/hadoop/.bashrc에 다음 줄을 추가합니다 :

    export HIVE_HOME=/home/hadoop/work/hive
    export PATH=$PATH:$HIVE_HOME/bin
    

    자,이 같은 스크립트를 변경 :

    #!/bin/bash
    echo "Starting of Job"
    hive -e 'select * from mytest.empl'
    echo "Script ends here"
    
  2. ==============================

    2.쉘 스크립트에서 이것을 시도

    쉘 스크립트에서 이것을 시도

    /home/hadoop/work/hive/bin/hive -e 'select * from mytest.empl'
    
  3. from https://stackoverflow.com/questions/30521650/to-schedule-a-hive-query-on-crontab by cc-by-sa and MIT license