반응형

hadoop streaming, spark batch작업을 하다보면 보통 쉘스크립트로 해당 배치를 동작시키는 경우가 많다.

 

이 때 원하는 데이터가 없어 배치 작업이 정상적으로 동작하지 않는 경우가 있다.

 

보통은 해당 파일이 없으면 안돌아야하는게 맞지만 하루 하루 누적으로 쌓이는 데이터(어제, 그제 데이터와 별차이없는)가 없는 것 때문에 

 

중요한 배치작업이 돌지 않아 문제가 발생할 수 있다.

 

그렇기 때문에 쉘스크립트로 원하는 데이터가 있는 디렉터리의 최신 파일을 가져오는 스크립트를 작성해보았다.

 

 

get_recent_file 메서드에 최신 데이터를 가져오고 싶은 direct의 path를 전달해주면 된다.
해당 method에 direcotry parameter를 넘겨주고 최신 파일 경로를 받아 recent_file_path에 저장한다.

 

옵션에 대한 설명이다. 

hdfs dfs -ls -R ${DIR} : gives all dirs recursively
grep "^d" : gives only directories
sort -k6,7 : sorts them by modification time
tail -3 : gives listing for last 3 modified directory
tr -s ' ' : some formatting
cut -d' ' -f8 : gives only directory path
sort -r : result reverse sotring

 

쉘스크립트를 잘쓰면 프로그래밍삶이 좀 더 윤택해질 것 같다.

 

틈틈히 보고 유용한 스크립트를 작성해서 나만의 유틸 스크립트들을 만들어 나가면 좋을 것 같다.

반응형

+ Recent posts