package org.apache.hadoop.hive.hwi; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Locale; import java.util.Properties; import javax.jdo.PersistenceManager; import javax.jdo.PersistenceManagerFactory; import javax.jdo.Query; import javax.jdo.Transaction; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.hwi.model.MCrontab; import org.apache.hadoop.hive.hwi.model.MQuery; import org.apache.hadoop.hive.hwi.model.Pagination; import org.apache.hadoop.hive.hwi.query.QueryManager; import org.apache.hadoop.hive.hwi.query.QueryStore; import org.apache.hadoop.hive.hwi.util.HadoopUtil; import org.apache.hadoop.hive.hwi.util.QueryUtil; import org.apache.hadoop.hive.ql.session.SessionState; import java.net.URI; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.UriBuilder; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.core.util.MultivaluedMapImpl; public class TestEverything { public static void testAPI() { Client client = Client.create(); WebResource webResource = client .resource(getBaseURI()); MultivaluedMap<String,String> formData = new MultivaluedMapImpl(); formData.add("name", "wanghuida"); formData.add("query", "select count(1) from pokes"); formData.add("callback", "http://localhost/abc.php"); ClientResponse response = webResource.path("queries").path("create").path("api").accept("application/json") .post(ClientResponse.class, formData); if (response.getStatus() != 200) { throw new RuntimeException("Failed : HTTP error code : " + response.getStatus()); } String output = response.getEntity(String.class); System.out.println("Output from Server .... \n"); System.out.println(output); } private static URI getBaseURI() { return UriBuilder.fromUri("http://localhost:9999/hwi").build(); } public static void testHistoryFile() throws IOException { QueryUtil .getHiveHistoryViewer("/tmp/hadoop/hive_job_log_hadoop_201212280953_1889961092.txt"); } public static String readFile(String path) throws IOException { @SuppressWarnings("resource") BufferedReader br = new BufferedReader(new FileReader(path)); StringBuffer str = new StringBuffer(); String line = br.readLine(); while (line != null) { str.append(line); str.append("\n"); line = br.readLine(); } return str.toString(); } public static void testGetJobTrackerURL() { System.out.println(HadoopUtil.getJobTrackerURL("aa")); } public static void testGetDataNodeURL() { System.out.println(HadoopUtil.getDataNodeURL("/tmp")); } public static void testHiveConf() { HiveConf conf = new HiveConf(SessionState.class); Properties p = conf.getAllProperties(); for (Object k : p.keySet()) { System.out.print((String) k + ","); System.out.println(p.get(k)); } } public static void testHadoopConf() throws IOException { Configuration conf = new Configuration(); conf.addResource("hdfs-default.xml"); conf.addResource("hdfs-site.xml"); Configuration.dumpConfiguration(conf, new PrintWriter(System.out)); } public static void testSlaves() throws IOException { ClassLoader classLoader = Thread.currentThread() .getContextClassLoader(); BufferedReader in = new BufferedReader(new InputStreamReader( classLoader.getResource("slaves").openStream())); String line = in.readLine(); System.out.println(line); } public static void testQueryCron() throws InterruptedException { QueryManager.getInstance(); MCrontab ct = new MCrontab("test-query", "select * from test", "", "*/10 * * * * ?", "hadoop", "hadoop"); QueryStore.getInstance().insertCrontab(ct); QueryManager.getInstance().schedule(ct); Thread.sleep(30000); QueryManager.getInstance().shutdown(); QueryManager.getInstance().shutdown(); } public static void testInt() { System.out.println(new Integer(10).toString()); } public static void testQuery() { QueryStore qs = QueryStore.getInstance(); Query query = qs.getPM().newQuery(MQuery.class); query.setOrdering("id DESC"); HashMap<String, Object> map = new HashMap<String, Object>(); map.put("crontabId", 3); query.setResult("COUNT(id)"); query.executeWithMap(null); // Pagination<MQuery> pagination = qs.paginate(query, map, 1, 2); // System.out.println(pagination.getTotal()); } public static void testCalendar() { Calendar c = Calendar.getInstance(); System.out.println(c.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.CHINA)); } public static void testDate() { Date d = new Date(); SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(ft.format(d)); } public static void testConcurrent() { ArrayList<String> l = new ArrayList<String>(); l.add("1"); for (String s : l) { l.remove(s); } } public static void testPersistenceManager() { PersistenceManagerFactory pmf = QueryStore.getInstance().getPMF(); PersistenceManager pm1 = pmf.getPersistenceManager(); System.out.println(pm1); MQuery mquery = pm1.getObjectById(MQuery.class, 204); mquery.setCallback("1"); Transaction tx1 = pm1.currentTransaction(); tx1.begin(); pm1.makePersistent(mquery); // tx1.commit(); PersistenceManager pm2 = pmf.getPersistenceManager(); System.out.println(pm2); mquery.setCallback("2"); MQuery mquery1 = pm2.getObjectById(MQuery.class, mquery.getId()); mquery1.copy(mquery); Transaction tx2 = pm2.currentTransaction(); tx2.begin(); pm2.makePersistent(mquery1); tx2.commit(); PersistenceManager pm3 = pmf.getPersistenceManager(); System.out.println(pm3); Query query = pm3.newQuery(MQuery.class); query.setOrdering("id DESC"); Pagination<MQuery> p = new Pagination<MQuery>(query, null, 1, 1); System.out.println(p.getItems().get(0).getId()); } public static void testValidateQuery() { try { // QueryUtil.validateQuery("add jar 1.jar;select * from test;select * from xx;"); } catch (Exception e) { e.printStackTrace(); } } public static void testStartStop() { QueryManager.getInstance().start(); QueryManager.getInstance().shutdown(); } public static void testProp() { Properties props = new Properties(); props.put("org.quartz.threadPool.threadCount", "20"); System.out.println(props .getProperty("org.quartz.threadPool.threadCount")); props.setProperty("org.quartz.threadPool.threadCount", "20"); System.out.println(props .getProperty("org.quartz.threadPool.threadCount")); } public static void main(String[] args) throws Exception { //testProp(); testAPI(); } }