data engineering

shell script 하둡 명령어 자동 프로그램.

qkqhxla1 2017. 7. 7. 15:12

스크립트 예제.


각각의 반복문에 대해서 csv파일을 서버1에서 서버2로 복사하고, 

csv파일의 사이즈를 측정하여 특정 경로에 쓰는 배시 쉘 스크립트

#!/bin/bash -x
export HADOOP_USER_NAME=하둡 유저 네임.

# 파일사이즈 체크용 파일. 이미 있으면 매번 지우고 새로만듬..
outpath=파일 경로
hdfs dfs -test -e ${outpath}  # 파일이 존재하면
if [ $? == 0 ]
then
    hadoop fs -rm ${outpath} #파일을 지움.
fi

# 하둡서버1에서 하둡서버2로 distcp하는 코드
for site in 반복1 반복2 반복3 반복4  
do
    r=${site}_r.csv
    t=${site}_t.csv
    for kind in ${r} ${t}
    do
        hadoop distcp -m 3 -bandwidth 25 -pb -i -delete -update 경로1${kind} 경로2${kind} # 각각 csv를 batch-pricing으로 쏨.
        each=`hadoop fs -du -s 파일경로${kind}  | awk '{s+=$1} END {printf "%.3fGB\n", s/1000000000}'`
        echo "${kind}=${each}" | hdfs dfs -appendToFile - ${outpath}
    done
done