在使用hive shell之前我們需要先安裝hive,並啟動hdfs
請參考: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表中