CHD的impala实现hive和hbase数据查询
cdh版本安裝spark-sql比較復雜,cdh主推impala,可以方便進行查詢
啟動命令:impala-shell?
可以直接進行hive操作。
?
impala查詢hbase,需要進行映射
CREATE EXTERNAL TABLE tiger.test_info(--指定庫名和表名
? ? ?user_id string, --字段
? ? ?user_type tinyint,--字段
? ? ?gender string,--字段
? ? ?birthday string)--字段
ROW FORMAT SERDE 'org.apache.hadoop.hive.hbase.HBaseSerDe' --固定格式
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'--固定格式
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key, info:user_type, info:gender, info:birthday")--映射關系,主鍵以及其他字段
TBLPROPERTIES("hbase.table.name" = "test_info");--指定hbase表名
然后在impala執行,INVALIDATE METADATA;同步元數據,即可進行查詢。
?
impala jdbc:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class ImpalaJDBC {private static final String SQL_STATEMENT = "SELECT * FROM tiger.test_info ";private static final String IMPALAD_HOST = "172.**.**.**";private static final String IMPALAD_JDBC_PORT = "21050";private static final String CONNECTION_URL = "jdbc:hive2://" + IMPALAD_HOST + ':' + IMPALAD_JDBC_PORT + "/;auth=noSasl";private static final String JDBC_DRIVER_NAME = "org.apache.hive.jdbc.HiveDriver";public static void main(String[] args) {System.out.println("Cloudera Impala JDBC Example");System.out.println("Using Connection URL: " + CONNECTION_URL);System.out.println("Running Query: " + SQL_STATEMENT);Connection con = null;try {Class.forName(JDBC_DRIVER_NAME);con = DriverManager.getConnection(CONNECTION_URL,"liupeijin","");--用戶名Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery(SQL_STATEMENT);System.out.println("Begin Query Results");while (rs.next()) {System.out.println(rs.getString(1));}System.out.println("End Query Results");} catch (SQLException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();} finally {try {con.close();} catch (Exception e) {}}}?
總結
以上是生活随笔為你收集整理的CHD的impala实现hive和hbase数据查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++语法学习笔记三十九:shared_
- 下一篇: 用MySQL后电脑频繁蓝屏_电脑容易蓝屏