欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文了解Hive是什么

 更新時間:2022年05月19日 11:37:21   作者:Philosophy7  
Hive?是基于?Hadoop?的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張表,并提供類?SQL?查詢功能,對Hive是什么及優(yōu)缺點感興趣的朋友跟隨小編一起看看吧

一、Hive介紹

hive: 由 Facebook 開源用于解決海量結(jié)構(gòu)化日志的數(shù)據(jù)統(tǒng)計工具。

Hive 是基于 Hadoop 的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張表,并提供類 SQL 查詢功能。

Hive的優(yōu)缺點

優(yōu)點:

  • 類似于SQL語句,簡單學習易上手
  • 避免了去寫 MapReduce,減少開發(fā)人員的學習成本
  • Hive 的執(zhí)行延遲比較高,因此 Hive 常用于數(shù)據(jù)分析,對實時性要求不高的場合
  • Hive 優(yōu)勢在于處理大數(shù)據(jù),對于處理小數(shù)據(jù)沒有優(yōu)勢,因為 Hive 的執(zhí)行延遲比較高
  • Hive 支持用戶自定義函數(shù),用戶可以根據(jù)自己的需求來實現(xiàn)自己的函數(shù)

缺點:

  • Hive 的 HQL 表達能力有限
  • Hive 的效率比較低
  • Hive本質(zhì)是一個MR

Hive架構(gòu)

Hive用戶接口

  • Hive CLI(Hive Command Line) Hive的命令行
  • HWI(Hive Web Interface) HiveWeb接口
  • Hive提供了Thrift服務,也就是Hiveserver。

Hive元數(shù)據(jù)的三種存儲模式

  • 單用戶模式 : Hive安裝時,默認使用的是Derby數(shù)據(jù)庫存儲元數(shù)據(jù),這樣不能并發(fā)調(diào)用Hive。
  • 多用戶模式 : MySQL服務器存儲元數(shù)據(jù)
  • 遠程服務器模式 : 啟動MetaStoreServer

Hive數(shù)據(jù)存儲

Hive數(shù)據(jù)可區(qū)分為表數(shù)據(jù)元數(shù)據(jù),表數(shù)據(jù)我們都知道是表中的數(shù)據(jù),而元數(shù)據(jù)是用來存儲表的名字、、表分區(qū)以及屬性

Hive是基于Hadoop分布式文件存儲的,它的數(shù)據(jù)存儲在HDFS中。現(xiàn)在我們介紹Hive中常見的數(shù)據(jù)導入方式

  • 本地文件系統(tǒng)中導入數(shù)據(jù)到Hive
  • 從HDFS上導入數(shù)據(jù)到Hive表
  • 從其他表中查詢出相應的數(shù)據(jù)并導入Hive表中
  • 在創(chuàng)建表的時候通過從其他表中查詢出相應的記錄并插入到所創(chuàng)建的表中
#1.演示從本地裝載數(shù)據(jù)到hive
#1.1創(chuàng)建表
create table student(id string, name string) 
row format delimited fields terminated by '\t';
#1.2加載本地的文件到hive
 load data local inpath 
'/root/student.txt' into table default.student; #default.test 數(shù)據(jù)庫.表名 也可直接表名
#2.演示加載HDFS文件到hive中
#2.1 將文件上傳到HDFS根目錄
dfs -put /root/student.txt /;
#2.2加載HDFS上的數(shù)據(jù)
load data inpath '/student.txt' into table test.student;
#3.加載數(shù)據(jù)覆蓋表中原有的數(shù)據(jù)
#3.1上傳文件到HDFS中
dfs -put /root/student.txt /;  #將文件裝載到表下 文件就相當于Windows中的剪切操作
#3.2加載數(shù)據(jù)覆蓋表中原有數(shù)據(jù)
load data inpath '/student.txt' overwrite into table test.student;
#4.查詢表
select * from student;
#通過查詢語句向表中插入數(shù)據(jù)(insert)
#1.1創(chuàng)建表
create table student_par(id int,name String)
row format delimited fields terminated by '\t';
#1.2通過insert插入數(shù)據(jù)
insert into table student_par values(1,'zhangsan'),(2,'lisi');

架構(gòu)原理

用戶接口

CLI(command-line interface)、JDBC/ODBC(jdbc 訪問 hive)、WEBUI(瀏覽器訪問 hive)

元數(shù)據(jù)

元數(shù)據(jù)包括:表名、表所屬的數(shù)據(jù)庫(默認是 default)、表的擁有者、列/分區(qū)字段、表的類型(是否是外部表)、表的數(shù)據(jù)所在目錄等

Hadoop

使用 HDFS 進行存儲,使用 MapReduce 進行計算。

驅(qū)動器:Driver

(1)解析器(SQL Parser):將 SQL 字符串轉(zhuǎn)換成抽象語法樹 AST,這一步一般都用第三方工具庫完成,比如 antlr;對 AST 進行語法分析,比如表是否存在、字段是否存在、SQL語義是否有誤。
(2)編譯器(Physical Plan):將 AST 編譯生成邏輯執(zhí)行計劃。
(3)優(yōu)化器(Query Optimizer):對邏輯執(zhí)行計劃進行優(yōu)化。
(4)執(zhí)行器(Execution):把邏輯執(zhí)行計劃轉(zhuǎn)換成可以運行的物理計劃。對于 Hive 來說,就是 MR/Spark。

在這里插入圖片描述

Hive文件格式

  • TextFile

這是默認的文件格式。數(shù)據(jù)不會壓縮處理,磁盤開銷大,數(shù)據(jù)解析開銷也大。
SequenceFile
這是HadooAPI提供的一種二進制文件支持,以二進制的形式序列化到文件中。

  • RCFile

這種格式是行列存儲結(jié)構(gòu)的存儲方式。

  • ORC

Optimized Row Columnar ORC文件格式是一種Hadoop生態(tài)圈中的列式存儲格式。

ORC的優(yōu)勢:

  • 列示存儲,有多種文件壓縮方式
  • 文件是可分割的。
  • 提供了多種索引
  • 可以支持復雜的數(shù)據(jù)結(jié)構(gòu) 比如Map

ORC文件格式是以二進制方式存儲的,所以是不可直接讀取的。

Hive本質(zhì)

將HQL轉(zhuǎn)換成MapReduce程序。

  • Hive處理的數(shù)據(jù)存儲在HDFS上
  • Hive分析數(shù)據(jù)底層的實現(xiàn)是MapReduce
  • 執(zhí)行程序運行在Yarn上

Hive工作原理

簡單來說Hive就是一個查詢引擎。當Hive接受到一條SQL語句會執(zhí)行如下操作:

  • 詞法分析和語法分析。使用antlr將SQL語句解析成抽象語法樹
  • 語義分析。從MetaStore中獲取元數(shù)據(jù)信息,解釋SQL語句中的表名、列名、數(shù)據(jù)類型
  • 邏輯計劃生成。生成邏輯計劃得到算子樹
  • 邏輯計劃優(yōu)化。對算子樹進行優(yōu)化
  • 物理計劃生成。將邏輯計劃生成出的MapReduce任務組成的DAG的物理計劃
  • 物理計劃執(zhí)行。將DAG發(fā)送到Hadoop集群進行執(zhí)行
  • 將查詢結(jié)果返回。

Hive展現(xiàn)的MapReduce任務設(shè)計到組件有:

  • 元存儲 : 該組件存儲了Hive中表的信息,其中包括了表、表的分區(qū)、模式、列及其類型、表映射關(guān)系等
  • 驅(qū)動 : 控制HiveQL生命周期的組件
  • 查詢編輯器
  • 執(zhí)行引擎
  • Hive服務器
  • 客戶端組件 提供命令行接口Hive CLI、Web UI、JDBC驅(qū)動等

在這里插入圖片描述

Hive數(shù)據(jù)類型

Hive支持兩種數(shù)據(jù)類型,一種原子數(shù)據(jù)類型、還有一種叫復雜數(shù)據(jù)類型。

 基本數(shù)據(jù)類型 
類型描述示例
TINYINT1字節(jié)有符合整數(shù)1
SMALLINT2字節(jié)有符號整數(shù)1
INT4字節(jié)有符號整數(shù)1
BIGINT8字節(jié)有符號整數(shù)1
FLOAT4字節(jié)單精度浮點數(shù)1.0
DOUBLE8字節(jié)雙精度浮點數(shù)1.0
BOOLEANtrue/falsetrue
STRING字符串“hive”,‘hive’

Hive類型中的String數(shù)據(jù)類型類似于MySQL中的VARCHAR。該類型是一個可變的字符串。

Hive支持數(shù)據(jù)類型轉(zhuǎn)換,Hive是用Java編寫的,所以數(shù)據(jù)類型轉(zhuǎn)換規(guī)則遵循Java :

隱式轉(zhuǎn)換 --> 小轉(zhuǎn)大

強制轉(zhuǎn)換 --> 大傳小

類型描述示例
ARRAY有序的字段。字符類型必須相同ARRAY(1,2)
MAP無序的鍵值對。建的類型必須是原子的,值可以是任何類型。Map(‘a’,1,‘b’,2)
STRUCT一組命名的字段。字段類型可以不同STRUCT(‘a’,1,1,0)

到此這篇關(guān)于一文了解Hive是什么的文章就介紹到這了,更多相關(guān)Hive是什么內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • git add -A 和 git add . 的區(qū)別詳解

    git add -A 和 git add . 的區(qū)別詳解

    這篇文章主要介紹了git add -A 和 git add . 的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • net-snmp靜態(tài)編譯鏈接的獲取程序及生成執(zhí)行程序詳解

    net-snmp靜態(tài)編譯鏈接的獲取程序及生成執(zhí)行程序詳解

    這篇文章主要介紹了net-snmp靜態(tài)編譯鏈接的獲取程序及生成執(zhí)行程序詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • 完全卸載VSCode--解決卸載重新安裝后還有原來配置的問題(圖解)

    完全卸載VSCode--解決卸載重新安裝后還有原來配置的問題(圖解)

    這篇文章主要介紹了完全卸載VSCode--解決卸載重新安裝后還有原來配置的問題,本文給大家分享VSCode卸載不徹底的問題,需要的朋友可以參考下
    2020-04-04
  • git設(shè)置用戶名密碼的示例代碼

    git設(shè)置用戶名密碼的示例代碼

    這篇文章主要介紹了git設(shè)置用戶名密碼的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Cookie 的 SameSite 屬性小結(jié)

    Cookie 的 SameSite 屬性小結(jié)

    Chrome 51 開始,瀏覽器的 Cookie 新增加了一個SameSite屬性,用來防止 CSRF 攻擊和用戶追蹤,下面在通過本文給大家詳細介紹下SameSite 屬性的相關(guān)知識,感興趣的朋友一起看看吧
    2021-10-10
  • 詳解https 加密完整過程

    詳解https 加密完整過程

    這篇文章主要介紹了詳解https 加密完整過程的相關(guān)資料,這里主要說名https加密及通信的方法,需要的朋友可以參考下
    2017-07-07
  • 程序員趣味讀物 談談Unicode編碼

    程序員趣味讀物 談談Unicode編碼

    這是一篇程序員寫給程序員的趣味讀物。所謂趣味是指可以比較輕松地了解一些原來不清楚的概念,增進知識,類似于打RPG游戲的升級。整理這篇文章的動機是兩個問題
    2012-08-08
  • 使用sublime Text3過程中的各種問題的解決

    使用sublime Text3過程中的各種問題的解決

    本文主要介紹了使用sublime Text3過程中的各種問題的解決,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 關(guān)于圖片存儲格式的整理(BMP格式介紹)

    關(guān)于圖片存儲格式的整理(BMP格式介紹)

    BMP文件的圖像深度可選lbit、4bit、8bit及24bit。BMP文件存儲數(shù)據(jù)時,圖像的掃描方式是按從左到右、從下到上的順序。由于BMP文件格式是Windows環(huán)境中交換與圖有關(guān)的數(shù)據(jù)的一種標準,因此在Windows環(huán)境中運行的圖形圖像軟件都支持BMP圖像格式
    2016-01-01
  • Visual Studio和Visual Studio Code之間有什么區(qū)別

    Visual Studio和Visual Studio Code之間有什么區(qū)別

    本文給大家介紹的是Visual Studio和Visual Studio Code之間有什么區(qū)別,希望對大家的學習能夠有所幫助
    2020-02-02

最新評論