Hive簡介

Hive最初是應Facebook每天產生的海量新興社會網絡數據進行管理和機器學習的需求而產生和發展的

是建立在Hadoop上的數據倉庫基礎架構

作為Hadoop的一個數據倉庫工具,Hive可以將結構化的數據文件映射為一張數據庫表,并提供簡單的SQL查詢功能

Hive作為數據倉庫,可用來進行數據提取轉化加載(ETL)

Hive構建在基于靜態批處理的Hadoop之上,Hadoop通常都有較高的延遲并且在作業提交和調度時需要大量的開銷

Hive不適合那些需要低延遲的應用,如聯機事務處理(OLTP)

Hive并不提供實時的查詢和基于行級的數據更新操作

Hive的最佳使用場合是大數據集的批處理作業

Hive將用戶的HQL語句通過解釋器轉為MapReduce作業提交到Hadoop集群上,Hadoop監控作業執行過程,然后返回作業執行結果給用戶。


用戶訪問接口,用戶用來訪問Hive數據倉庫所使用的工具接口。

CLI (command line interface) 命令行接口

Thrift Server是Facebook開發的一個軟件框架,它用來開發可擴展且跨語言的服務,Hive集成了該服務,能讓不同編程語言調用Hive的接口

Hive客戶端提供了通過網頁的方式訪問Hive提供的服務,這個接口需要啟動HWI(Hive web interface)服務。


Metastore是Hive中的元數據存儲

主要存儲Hive中表的名稱,列和分區及其屬性、表的屬性(外表?)、表的數據所在目錄等。

Metastore和Hive Driver驅動的互聯有兩種方式,一種是集成模式,一種是遠程模式(通過Thrift Interface連接)


驅動編譯組件包括編譯器、優化器和執行引擎

分別完成HQL的詞法分析、語法分析、編譯、優化以及查詢計劃的生成

生成的查詢計劃存儲在HDFS中,并在隨后由MapReduce調用執行


Hive的數據模型

tinyint1 byte
smallint2 byte
int4 byte
bigint8 byte
float4 byte 單精度
double8 byte 雙精度
decimal任意精度數字
timestampyyyy-mm-dd hh:mm:ss
date?yyyy-mm-dd
string?
varchar1~65535
char1~255
boolean?
binary?

此外還有:

ARRAY<data_type>

MAP<key_type, value_type>

STRUCT<col_name1:data_type1, ...,?col_namen:data_typen>

UNIONTYPE<data_type1, ...,?data_typen>


Hive中沒有專門的數據存儲格式,也沒有為數據建立索引

用戶可以非常自由的組織Hive中的表,只需明確列分隔符和行分隔符,Hive就可以解析數據


HIve中的數據存儲在HDFS中,有以下數據模型:

表(Table):

? ? 存儲錄由hive-site.xml配置文件中的hive.metastore.warehouse.dir屬性配置,默認為/user/hive/warehouse

外部表(External Table):

分區(Partition):每個分區就是表目錄下的一個目錄

桶(Bucket):根據哈希值對數據進行切分



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387388.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387388.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387388.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

可用于 線性判別、聚類分析 的R語言函數總結

一、判別分析 判別分析是一種分類技術&#xff0c;其通過一個已知類別的“訓練樣本”來建立判別準則&#xff0c;并通過預測變量來為未知類別的數據進行分類。根據判別的模型分為線性判別和非線性判別&#xff0c;線性判別中根據判別準則又分為Fisher判別&#xff0c;Bayes判別…

Linux 環境下搭建 Jenkins(Hudson)平臺

安裝jenkins&#xff1a;安裝 jenkins 有兩種方式&#xff1a;安裝方式一&#xff1a; [java] view plaincopysudo java -jar jenkins.war –httpPort18080 –ajp13Port18009 但是很多時候我們是使用SSH方式到目標機器上的&#xff0c;放我們關閉SSH連接時&#xff0c;這個命…

Android APK 打包過程 MD

Markdown版本筆記我的GitHub首頁我的博客我的微信我的郵箱MyAndroidBlogsbaiqiantaobaiqiantaobqt20094baiqiantaosina.comAndroid APK 打包流程 MD 目錄 目錄APK 的打包流程整體流程資源的編譯和打包資源ID資源索引概況具體打包過程aapt階段aidl階段Java Compiler階段dex階段a…

可用于 主成分分析、R型因子分析、簡單相應分析 的R語言函數總結

一、主成分分析 主成分分析是多元統計分析的一種常用的降維方法&#xff0c;它以盡量少的信息損失&#xff0c;最大程度將變量個數減少&#xff0c;且彼此間互不相關。提取出來的新變量成為主成分&#xff0c;主成分是原始變量的線性組合。 1.1 KMO檢驗和Bartlett球形檢驗 在…

[國家集訓隊]墨墨的等式

Description 墨墨突然對等式很感興趣&#xff0c;他正在研究a1x1a2y2…anxnB存在非負整數解的條件&#xff0c;他要求你編寫一個程序&#xff0c;給定N、{an}、以及B的取值范圍&#xff0c;求出有多少B可以使等式存在非負整數解。 Input 輸入的第一行包含3個正整數&#xff0c;…

Storm簡介

Storm是實時流式數據處理框架&#xff0c;支持多種編程語言 應用案例&#xff1a; realtime analytics online machine learning continuous computation distributed RPC ETL 性能&#xff1a;a million tuples per second per node 可擴展、高容錯 結合消息隊列和數據庫…

持續集成之Jenkins安裝部署

安裝JDKJenkins是Java編寫的&#xff0c;所以需要先安裝JDK&#xff0c;這里采用yum安裝&#xff0c;如果對版本有需求&#xff0c;可以直接在Oracle官網下載JDK。 [rootlinux-node1 ~]# yum install -y java-1.8.0 安裝Jekins [rootlinux-node1 ~]# cd /etc/yum.repos.d/ […

2019/2/18 Python今日收獲

Python day15——032&#xff0c;033異常處理&#xff1a;你不可能總是對的 1. Python標準異常總結AssertionError斷言語句&#xff08;assert&#xff09;失敗AttributeError嘗試訪問未知的對象屬性EOFError用戶輸入文件末尾標志EOF&#xff08;Ctrld&#xff09;FloatingPoin…

Shell01

shell是一個命令解釋器&#xff0c;是操作系統的最外層。 把用戶的輸入解釋給操作系統&#xff0c;將操作系統的輸入結果返回給用戶。 硬件-->kernel-->shell-->外圍應用程序 shell腳本&#xff1a;將命令或語句寫入文件&#xff0c;進行操作系統管理。 shell腳本…

jenkins svn tomcat ant自動部署

Jenkins Jenkins是基于Java開發的一種持續集成工具&#xff0c;用于監控持續重復的工作&#xff0c;功能包括&#xff1a; 1、持續的軟件版本發布/測試項目。 2、監控外部調用執行的工作。 跟其他持續集成相比&#xff0c;它的主要優點有&#xff1a; 開源&#xff0c;即免…

Shell02

局部變量 1、普通字符串變量 變量名value 變量名value #單引號中不進行變量解析&#xff0c;原樣輸出&#xff0c;應用不多 變量名"value" #雙引號會解析變量 例&#xff1a; a1123 a2234 a3"345" echo "a1$a1" echo "a2$a2&quo…

553 mail from must equal authorized user解決方法

在配置發送郵件通知&#xff0c;驗證其正確性時&#xff0c;出現"553 mail from must equal authorized user"提示的錯誤&#xff1b; 原因在于沒有在"系統管理&#xff08;Manage Jenkins&#xff09;"的"系統設置&#xff08;Configure system&…

3.1 讀入一個參數

已知正方形的邊長&#xff0c;求出其面積。 輸入樣例&#xff1a; 1 2 3 4 輸出樣例&#xff1a; 1 4 9 16 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交時&#xff0c;注釋此句i…

[Apple開發者帳戶幫助]八、管理檔案(2)創建臨時配置文件(iOS,tvOS,watchOS)...

創建臨時配置文件以在設備上運行您的應用程序而無需Xcode。在開始之前&#xff0c;您需要一個App ID&#xff0c;一個分發證書和多個注冊設備。 有關完整的臨時配置文件工作流程&#xff0c;請轉到Xcode幫助中的分發到已注冊設備&#xff08;iOS&#xff0c;tvOS&#xff0c;wa…

Ant Build.xml

題記&#xff1a;用 Eclipse 3 &#xff0b;Tomcat 5 做東東&#xff0c;用起來還是比較爽。但是調試時每次手動Deploy到Tomcat中&#xff0c;比較麻煩。今用Ant來完成之。 1。打開Eclipse&#xff0c;在項目的根路徑下建立builds.xml文件。 這個是Ant配置的關鍵。其內容如下&…

3.2 讀入兩個參數

計算兩個整數的差。 輸入樣例&#xff1a; 1 3 5 7 輸出樣例&#xff1a; -2 -2 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交時&#xff0c;注釋此句int num1, num2;while (cin &g…

解決做好一個機器學習項目的3個問題

機器學習是目前人工智能最令人激動的研究方向之一。我們可能更關注機器學習算法的實現細節&#xff0c;沉浸于機器學習所需要的數學功底&#xff0c;但對于機器學習從業者來說&#xff0c;如何更好更快速的實現一個機器學習項目更值得關注。 正如吳恩達在《機器學習》這門課中所…

數據挖掘的相關知識例子

一、貝葉斯 貝葉斯定理由英國數學家貝葉斯 ( Thomas Bayes 1702-1761 ) 發展&#xff0c;用來描述兩個條件概率之間的關系&#xff0c;比如 P(A|B) 和 P(B|A)。按照乘法法則&#xff0c;可以立刻導出&#xff1a;P(A∩B) P(A)*P(B|A)P(B)*P(A|B)。如上公式也可變形為&#xf…

3.3 1!到n!的和

求1! 2! ... n! 的結果。 輸入樣例&#xff1a; 3 6 輸出樣例 9 873 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交時&#xff0c;注釋此句int num;while (cin >> num){int…

[幣嚴區塊鏈]以太坊(ETH)Dapp開發入門教程之寵物商店領養游戲

閱讀本文前&#xff0c;你應該對以太坊、智能合約有所了解&#xff0c;如果你還不了解&#xff0c;建議你先看以太坊是什么 除此之外&#xff0c;你最好還了解一些HTML及JavaScript知識。 本文通過實例教大家來開發去中心化應用&#xff0c;應用效果如圖: 項目背景 Pete有一個…