python sqoop 심플한 예제 코드이다.

 

사실 풀링하는 부분은 없어도 된다.

(→ 어차피 proc.communicate()에서 기다렸다가 작업이 끝나면 값을 가져옴)

하지만 이 부분이 없으면 아무 안내문구가 없어서 작업이 제대로 되고 있는지 불안해서 넣었다.

import subprocess
import time

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

query = "select * from member"
sqoop = query + " --hadoop-mapred-home /usr/hdp/3.1.4.0-315/hadoop --outdir/" + BASE_DIR + " --class-name " + "member"

proc = subprocess.Popen(sqoop, shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE)

while proc.poll() is None:			# 데이터 수집 완료하였는지 풀링하며 확인
    print("Still working...")
    time.sleep(3)

result = proc.communicate()[1]

if(result.__contains__("completed successfully"):
    print("success")