1. 程式人生 > >二、hive shell常用命令

二、hive shell常用命令

在使用hive shell之前我們需要先安裝hive

請參考:https://www.cnblogs.com/lay2017/p/9973298.html

hive shell

我們先進入安裝目錄

cd /usr/local/hadoop/hive/apache-hive-1.2.2-bin

使用Hive命令啟動hive shell

hive

檢視一下資料庫,發現有一個預設的default

我們需要建立一個新的test資料庫

再看一下資料庫,test資料庫已經建立完成了

我們切換到test資料庫

建立一張t_user表,你會看到建立表的語句顯得似乎很麻煩,這麼長一句

CREATE TABLE users(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n' STORED AS TEXTFILE;

我們分開來看,建表的簡單語句,如

create t_user(id int, name String);

而每一列分隔符就是

ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '

每行的分隔符就是

LINES TERMINATED BY '\n'

最後儲存的檔案格式就是txt

STORED AS TEXTFILE;

為了更清楚建表語句為什麼這麼建,我們在/tmp目錄下建立一個user.txt,內容如下(注意:每個單詞之間是空格分隔,每行是\n分隔,這也是為什麼我們在建立hive的表的時候需要配置它的格式,因為我們在讀取txt資料的時候需要按照格式進行讀取,否則你將查詢到一堆的null)

1 lay
2 marry
3 gary

然後我們在hive shell中,把該txt資料給載入到hive中

load data local inpath '/tmp/user.txt' overwrite into table t_user; // 載入本地資料到t_user表中

然後我們查詢一下t_user表中的資料,如下

資料就像關係型資料庫一樣展示,這就是hive的SQL簡單查詢功能

常用命令

create database test; // 建立資料庫
drop database test; // 刪除資料庫
drop database test cascade; // 強制刪除資料庫
show databases; // 列出所有資料庫
use test; // 使用資料庫

create t_user(id int, name String); // 建立表
CREATE TABLE users(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n' STORED AS TEXTFILE; // 按照格式建立表,否則load data無法正常讀取資料
describe t_user; // 查詢表結構
drop table t_user; // 刪除表
alter table t_user add columns(age int); // 更改表,新增列
load data local inpath '/tmp/user.txt' overwrite into table t_user; // 載入本地資料到t_user表中
load data inpath '/tmp/user.txt' overwrite into table t_user; // 從hdfs載入資料到t_user表中

參考文件:https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-InstallationandConfiguration