java JDBC连接Impala(impala使用一篇解决)

文末有好图~
    com.cloudera    ImpalaJDBC4    2.6.15  org.apache.thrift  libfb303  0.9.0    org.apache.thrift    libthrift    0.9.0  org.apache.hive  hive-metastore  3.1.0  org.apache.hive  hive-service  3.1.0  log4j  log4j  1.2.14  slf4j-api  slf4j-api  1.5.8  atom.core1  slf4j-log4j12  1.5.8    com.cloudera.impala.jdbc    TCLIServiceClient    2.5.41    ql    ql    1.0.0

可能你会需要这个:

org.hibernatehibernate-validator4.1.0.Final


在conttoller里的搞个test测试一下.因为之前我曾经遇到,在main方法里执行没什么问题,但在启动了jetty容器之后,就会报找不到驱动类的错;


 static String JDBC_DRIVER    = "com.cloudera.impala.jdbc4.Driver";//    static String JDBC_DRIVER    = "org.apache.hive.jdbc.HiveDriver";//    static String JDBC_DRIVER    = "org.apache.phoenix.jdbc.PhoenixDriver";    static String CONNECTION_URL = "jdbc:impala://192.168.13.75:21050/kd_orcl_sumpay";//    static String CONNECTION_URL = "jdbc:hive2://192.168.13.75:21050/kd_orcl_sumpay;auth=noSasl";//    static String CONNECTION_URL = "jdbc:phoenix:192.168.13.219,192.168.13.220,192.168.13.221:12181";
 Connection con = null;        ResultSet rs = null;        PreparedStatement ps = null;        Statement stmt = null;        try {            Class.forName(JDBC_DRIVER);            con = DriverManager.getConnection(CONNECTION_URL, "", "");                        stmt = con.createStatement();            String sql00 = "select * from us_population";            String sql0 = "select * from ods_bus_scene_order_info limit 20";             rs = stmt.executeQuery(sql0);            while (rs.next()) {                System.out.println(rs.getString(1) + '\\t' + rs.getString(2));            }                        String sql = "create    table pay_tradepay_info_tian1_kudu (TRADE_PAY_ID string ,   TRADE_NO string, ORDER_NO string, TOTAL_AMOUNT decimal, CURRENCY string, TRADE_TYPE int, TRADE_MODE string, TRADE_PAY_STATUS int, MEMO string, USER_ID string, PAYER_ACCOUNT string, PAYEE_ACCOUNT string, REFUND_SERIAL_NO string, PAY_SOURCE string, CREATE_TIME string, MODIFY_TIME string, SYSTEM_ENV_FLAG string, TRX_STATUS_CD string, ACCOUNT_REMARK string, SHARE_BENEFIT_FLAG int, SHARE_BENEFIT_EXP string, SHARE_BENEFIT_FEE string, SECURED_PAY string, PRO_CODE string,   PRIMARY KEY (TRADE_PAY_ID) )   PARTITION BY HASH (TRADE_PAY_ID) PARTITIONS 2  STORED AS KUDU ";            String sql1 = "insert into pay_tradepay_info_tian1_kudu select * from pay_tradepay_info_tian1";                        Properties properties = new Properties();            properties.setProperty("driverClassName", "com.cloudera.impala.jdbc4.Driver");            properties.setProperty("url", "jdbc:impala://192.168.13.75:21050/kd_orcl_sumpay");            properties.setProperty("username", "");            properties.setProperty("password", "");            properties.setProperty("initialSize", "50");            properties.setProperty("maxActive", "100");            properties.setProperty("maxWait", "60000");            properties.setProperty("timeBetweenEvictionRunsMillis", "60000");            properties.setProperty("minEvictableIdleTimeMillis", "300000");            properties.setProperty("validationQuery", "SELECT 1");            properties.setProperty("testWhileIdle", "true");            properties.setProperty("testOnBorrow", "false");            properties.setProperty("testOnReturn", "false");            properties.setProperty("poolPreparedStatements", "false");            //当该值大于0时,启用pool,poolPreparedStatements为true            properties.setProperty("maxPoolPreparedStatementPerConnectionSize", "-1");            try {                druidDataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties); //DruidDataSrouce工厂模式            } catch (Exception e) {            }            JdbcTemplate jdbcTemplate = new JdbcTemplate(druidDataSource);            String masterSql = "select count(0) from ods_bus_scene_order_info limit 20";            Integer totalCount = jdbcTemplate.queryForObject(masterSql, Integer.class);            System.out.println("count:"+totalCount);


impala shell

数据仓库常常会分有多层,对ODS/DWD层做汇总聚合成模型时,可以在一个调度平台上执行如下shell脚本即可.

SQL可以是多个一连串的SQL语句,以分号“;”做结束符;

调度平台可选择易观大数据开源给Apatch的项目:dolphinscheduler

source ~/.bash_profileimpala-shell -i $DW_IMPALA_SHELL_IP -f create_db_dws_tpl.sql


然后,来一个劲爆的图片吧~


java JDBC连接Impala(impala使用一篇解决)


分享到:


相關文章: