Hive使用方式

Hive的常用方式

Hive 和 Hbase 的區別

Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射爲一張數據庫表,並提供簡單的sql查詢功能,可以將sql語句轉換爲MapReduce任務進行運行。
Hive不支持更新操作,不適於實時查詢。可通過一些過濾條件批量查詢結果。

HBase – Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分佈式存儲系統。
Hbase適用於大數據的實時查詢。

Hive shell命令

使用的是類sql語句

1.進入hive
hive
2.查詢庫
show databases;
3.使用庫
use default;
4.查看錶
show tables;
5.查詢表結構
desc tableName;
6.查詢表數據
select * from tableName;
7.創建數據庫
create database dbName;
8.刪除數據庫
drop database if exists dbName;
9.創建數據表
// 內部表 create table tableName (id string, name string) row format delimited fields terminated by ","
//分區表 create external table tableName (id string, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE location '/path/';
10.清空表
truncate table tableName;
11.查看錶結構
describe extended tableName;
12.導入數據
load data local inpath "/path/data.csv" into table tableName;
13.修改表結構
alter table tableName replace columns (id string, name string, age int);
還有好多好多 待續。。。

Hive Java JDBC連接方式

1.準備JDBC包或依賴 必須與所在的hadoop的版本一致

https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc

(由於我的hadoop版本是2.6.5,沒有找到依賴… 所以最後找了一個對應版本的JDBC的jar包)

2.連接Hive

需要driver驅動的類,一般爲:org.apache.hive.jdbc.HiveDriver
因爲我下的包比較奇怪,我的是:com.cloudera.hiveserver1.hive.core.Hive1JDBCDriver
主要是找Driver類的位置

url是hive的地址:jdbc:hive2://127.0.0.1:10000/databaseName
user極有可能是:hive
password急有可能是:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class HiveConnection {
    private static String driverName;
    private static String url;
    private static String user;
    private static String password;

    private static Connection connection;

	//可添加自己相應的配置
    public static void addConf(HiveConfiguration config){
        driverName = config.getDriverName();
        url = config.getUrl();
        user = config.getUser();
        password = config.getPassword();
    }

    public static Connection getConnection(){
        try {
            if (connection == null) {
                Class.forName(driverName);
                connection = DriverManager.getConnection(url, user, password);
            }
        } catch (ClassNotFoundException e){
            e.printStackTrace();
        } catch (SQLException e){
            e.printStackTrace();
        }
        return connection;
    }

    public static void close(){
        try {
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

3.通過Java查詢操作Hive

private static ResultSet execSql(String sql){
        Connection conn = HiveConnection.getConnection();
        try {
            Statement state = conn.createStatement();
            ResultSet result = state.executeQuery(sql);
            return result;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章