package com.alimama.mdrill.adhoc; import java.io.UnsupportedEncodingException; import java.util.concurrent.ExecutorService; public class OfflineDownload { private static final ExecutorService EXECUTE = ExecutorSerives.EXECUTE; private IOffilneDownloadCallBack offline; private String hql = null; private String md5 = null; private String useName = null; private String jobName = null; private String memo = ""; private String displayParams = null; private HiveExecute hivexec=new HiveExecute(); private String storeDir; private String mailto=""; private Runnable Processer=null; public Runnable getProcesser() { return Processer; } public void setProcesser(Runnable processer) { Processer = processer; } private String confdir= System.getenv("HADOOP_CONF_DIR"); public void setConfdir(String confdir) { this.confdir = confdir; } public void setMailto(String mailto) { this.mailto = mailto; } public void setSqlMd5(String md5) { this.md5=md5; } public void setStoreDir(String storeDir) { this.storeDir = storeDir; } public void setOffline(IOffilneDownloadCallBack offline) { this.offline = offline; } public void setUseName(String useName) { this.useName = useName; } public void setHql(String hql) { this.hql = hql; } public void setDisplayParams(String displayParams) { this.displayParams = displayParams; } public void setJobName(String jobName) { this.jobName = jobName; } public void setMemo(String memo) { this.memo = memo; } public void run() { this.offline.setSqlMd5(md5); this.offline.setMailto(mailto); this.offline.setStoreDir(this.storeDir); this.offline.setUserName(useName); this.offline.setName(this.jobName); this.offline.setDisplayParams(displayParams); this.hivexec.setConfdir(confdir); this.hivexec.setStoreDir(this.storeDir); this.hivexec.setHql(this.hql); this.hivexec.setCallback(this.offline); this.hivexec.setProcesser(this.getProcesser()); this.hivexec.init(); EXECUTE.execute(this.hivexec); } public static void main(String[] args) throws UnsupportedEncodingException { MySqlConn conn=new MySqlConn("jdbc:mysql://tiansuan1.kgb.cm4:3306/adhoc_download", "adhoc", "adhoc"); MysqlCallback callback=new MysqlCallback(conn); OfflineDownload download=new OfflineDownload(); download.setOffline(callback); download.setMailto("yannian.mu@alipay.com"); download.setHql(args[0]); download.setUseName(args[1]); download.setJobName(args[2]); download.setDisplayParams(args[3]); download.setStoreDir(args[4]); download.run(); while(!callback.isfinished()) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }