hadoop之旅8-centerOS7 : Hive的基本操做

經過hadoop之旅7-centerOS7 : Hive環境搭建相信搭建已經在本身的虛擬機上搭建好了hive的環境,今天帶你們熟悉一下hive的基本使用java

hive腳本的三種執行方式

  1. hive -e 'sql'
  2. hive -f 'sql.file'
  3. hive jdbc 代碼執行腳本

經過這三種方式能夠不用進入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做業

登陸web頁面查看mapreduce做業,打開http://master:8088能夠看到

在此處顯示其實一個mapreduce做業已經運行了起來。

經過hive,咱們就不用再寫MapReduce做業了,能夠直接將數據導入到hive中,經過sql來作離線數據分析。固然hive還有不少強大的地方你們能夠詳細去學習瞭解

相關文章
相關標籤/搜索