經過hadoop之旅7-centerOS7 : Hive環境搭建相信搭建已經在本身的虛擬機上搭建好了hive的環境,今天帶你們熟悉一下hive的基本使用java
經過這三種方式能夠不用進入hive的命令行,接下來介紹命令行裏處理hive操做c++
啓動hive服務,進入hive的bin目錄下,執行開服務的命令web
[root@master bin]# ./hive --service metastore &
複製代碼
接着執行hive命令,進入hive本地命令行模式sql
[root@master bin]# ./hive
複製代碼
接下來建立數據庫mmcc
,並使用該數據庫數據庫
hive>create database mmcc;
hive>use mmcc;
複製代碼
而後咱們就能夠進行建表操做,如今建一張普通的人員表bash
create table if not exists person(
name String,
age String
)
comment '這是註釋'
row format delimited //進行格式化限制
fields terminated by ',' //表示導入時,行字段按‘,’隔開
lines terminated by '\n' //表示行終止符按\n來算,即遇到回車就算下一行
stored as textfile; //表示最終導入的數據以文件形式存儲
複製代碼
而後能夠經過desc person
查看錶結構oop
在本地或者hdfs準備好一個文件,本文演示本地導入數據到hive,裏面的內容就是person
的信息post
vi /home/mmcc/input.txt
hello,java
hello,world
hello,c++
hello,java
hello,c#
複製代碼
接下來咱們演示如何導入數據,導入數據的語法是:學習
load data [local] inpath 'path' [overwrite] into table xxxx;spa
[root@master mmcc]# ./hive-2.3.3/bin/hive -e 'load data local inpath "/home/mmcc/input.txt" into table person'
複製代碼
若是是hdfs上的文件只須要去掉local
,把path換成遠程hdfs路徑便可
接下來就能夠經過sql語句進行查詢操做了
[root@master mmcc]# ./hive-2.3.3/bin/hive -e 'select * from person'
複製代碼
到這裏數據咱們已經導入進去了。那這個時候可能就會有人問,hive不是把sql轉換成mapreduce嗎?爲何我運行
selec * from person
很快就出來了。這是由於這個語句只是把存在文件裏的內容輸出而已,不過會生成mapreduce做業。接下來咱們能夠作一下條件查詢,好比統計一共有多少我的,語法和sql同樣。
[root@master mmcc]# ./hive-2.3.3/bin/hive -e 'select count(1) from person'
複製代碼
接下來你們就會發現,這條sql被轉換成了一個mapreduce做業
http://master:8088
能夠看到經過hive,咱們就不用再寫MapReduce做業了,能夠直接將數據導入到hive中,經過sql來作離線數據分析。固然hive還有不少強大的地方你們能夠詳細去學習瞭解