a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > 文庫 > 正文

hive函數簡介

2020-10-29 21:47:20
字體:
來源:轉載
供稿:網友

首先我們要知道hive到底是做什么的。下面這幾段文字很好的描述了hive的特性: 

 1.hive是基于Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,并提供完整的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。

  2.Hive是建立在 Hadoop 上的數據倉庫基礎構架。它提供了一系列的工具,可以用來進行數據提取轉化加載(ETL),這是一種可以存儲、查詢和分析存儲在 Hadoop 中的大規模數據的機制。Hive 定義了簡單的類 SQL 查詢語言,稱為 HQL,它允許熟悉 SQL 的用戶查詢數據。同時,這個語言也允許熟悉 MapReduce 開發者的開發自定義的 mapper 和 reducer 來處理內建的 mapper 和 reducer 無法完成的復雜的分析工作。

  要理解hive,必須先理解hadoop和mapreduce,如果有不熟悉的童鞋,可以百度一下。

  使用hive的命令行接口,感覺很像操作關系數據庫,但是hive和關系數據庫還是有很大的不同,下面我就比較下hive與關系數據庫的區別,具體如下:

1.hive和關系數據庫存儲文件的系統不同,hive使用的是hadoop的HDFS(hadoop的分布式文件系統),關系數據庫則是服務器本地的文件系統;

2.hive使用的計算模型是mapreduce,而關系數據庫則是自己設計的計算模型;

3.關系數據庫都是為實時查詢的業務進行設計的,而hive則是為海量數據做數據挖掘設計的,實時性很差;實時性的區別導致hive的應用場景和關系數據庫有很大的不同;

4.Hive很容易擴展自己的存儲能力和計算能力,這個是繼承hadoop的,而關系數據庫在這個方面要比數據庫差很多。

  以上都是從宏觀的角度比較hive和關系數據庫的區別,hive和關系數據庫的異同還有很多,我在文章的后面會一一描述。

  下面我來講講hive的技術架構,大家先看下面的架構圖: 

  由上圖可知,hadoop和mapreduce是hive架構的根基。Hive架構包括如下組件:CLI(command line interface)、JDBC/ODBC、Thrift Server、WEB GUI、metastore和Driver(Complier、Optimizer和Executor),這些組件我可以分為兩大類:服務端組件和客戶端組件。

   首先講講服務端組件:

  Driver組件:該組件包括Complier、Optimizer和Executor,它的作用是將我們寫的HiveQL(類SQL)語句進行解析、編譯優化,生成執行計劃,然后調用底層的mapreduce計算框架。

  Metastore組件:元數據服務組件,這個組件存儲hive的元數據,hive的元數據存儲在關系數據庫里,hive支持的關系數據庫有derby、mysql。元數據對于hive十分重要,因此hive支持把metastore服務獨立出來,安裝到遠程的服務器集群里,從而解耦hive服務和metastore服務,保證hive運行的健壯性,這個方面的知識,我會在后面的metastore小節里做詳細的講解。

  Thrift服務:thrift是facebook開發的一個軟件框架,它用來進行可擴展且跨語言的服務的開發,hive集成了該服務,能讓不同的編程語言調用hive的接口。

  客戶端組件:

  CLI:command line interface,命令行接口。

  Thrift客戶端:上面的架構圖里沒有寫上Thrift客戶端,但是hive架構的許多客戶端接口是建立在thrift客戶端之上,包括JDBC和ODBC接口。

  WEBGUI:hive客戶端提供了一種通過網頁的方式訪問hive所提供的服務。這個接口對應hive的hwi組件(hive web interface),使用前要啟動hwi服務。

  下面我著重講講metastore組件,具體如下:

  Hive的metastore組件是hive元數據集中存放地。Metastore組件包括兩個部分:metastore服務和后臺數據的存儲。后臺數據存儲的介質就是關系數據庫,例如hive默認的嵌入式磁盤數據庫derby,還有mysql數據庫。Metastore服務是建立在后臺數據存儲介質之上,并且可以和hive服務進行交互的服務組件,默認情況下,metastore服務和hive服務是安裝在一起的,運行在同一個進程當中。我也可以把metastore服務從hive服務里剝離出來,metastore獨立安裝在一個集群里,hive遠程調用metastore服務,這樣我們可以把元數據這一層放到防火墻之后,客戶端訪問hive服務,就可以連接到元數據這一層,從而提供了更好的管理性和安全保障。使用遠程的metastore服務,可以讓metastore服務和hive服務運行在不同的進程里,這樣也保證了hive的穩定性,提升了hive服務的效率。

  Hive的執行流程如下圖所示:

圖描述的很清晰了,我這里就不在累述了。

下面我給大家展示一個簡單的例子,看看hive是怎么操作的。

首先我們創建一個普通的文本文件,里面只有一行數據,該行也只存儲一個字符串,命令如下:

echo ‘sharpxiajun' > /home/hadoop/test.txt

然后我們建一張hive的表:

hive 

主站蜘蛛池模板:
免费色网址
|
影音先锋中文字幕在线
|
久久久亚洲一区二区三区
|
国产精品免费一区二区三区都可以
|
九色视频网站
|
日韩2区|
国产成人+综合亚洲+天堂
|
九九热在线视频观看这里只有精品
|
亚洲精品国产9999久久久久
|
精品亚洲成a人片在线观看
99在线免费视频
|
欧美一区黄
|
欧美精品一区二区三区在线播放
|
一级黄色录像视频
|
91啦|
久久久久久久久久久久久女国产乱
|
国产精品黄视频
|
精品国产一级毛片
|
日本不卡免费新一二三区
|
日韩一区二区在线观看
|
日日夜夜欧美
|
一级视频黄色
|
中文字幕视频免费观看
|
欧美成人免费在线视频
|
日韩色综合
|
久久九|
a性视频|
亚洲 欧美日韩 国产 中文
|
欧美大片在线看免费观看
|
91免费观看视频
|
免费大片在线观看网站
|
久久一区二区三区精品
|
日韩av视屏
|
精品国产精品三级精品av网址
|
欧美黄视频在线观看
|
四虎永久在线
|
国产不卡一区二区三区在线观看
|
国产精品美女久久久
|
精品免费国产
|
日韩国产一区二区
|
99免费视频|
久久久久久久久久久九
|