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;
}