中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

12、Hive核心概念與原理詳解

發布時間:2020-02-26 23:32:47 來源:網絡 閱讀:626 作者:victor19901114 欄目:大數據

關注VX:數據科學講堂,領取教程
12、Hive核心概念與原理詳解

1、 Hive核心概念和架構原理

1.1、 Hive概念

Hive由FaceBook開發,用于解決海量結構化日志的數據統計。

Hive是基于Hadoop的數據倉庫工具,可以將結構化數據映射為一張表,提供類似SQL語句查詢功能

本質:將Hive SQL轉化成MapReduce程序。

1.2、Hive與數據庫的區別

對變項 Hive 數據庫軟件
查詢語言 HQL SQL
數據存儲 HDFS Raw Devce or Loal FS
執行器 MapReduce Executor
數據插入 支持批量導入/單條插入 支持單條或者批量導入
數據操作 覆蓋追加 行級更新刪除
處理數據規模
執行延遲
分區 支持 支持
索引 0.8版本之后加入了索引 支持復雜的索引
擴展性 有限
數據加載模式 讀時模式(快) 寫時模式(慢)
應用場景 海量數據查詢 實時查詢

讀時模式:Hive在加載數據到表中的時候不會校驗.

寫時模式:Mysql數據庫插入數據到表的時候會進行校驗.

總結:Hive只適合用來做海量離線的數據統計分析,也就是數據倉庫。

1.3、Hive的優缺點

優點:操作接口采用了類SQL語法,提供快速開發的能力,避免了去寫MapReduce;Hive還支持用戶自定義函數,用戶可以根據自己的需求實現自己的函數。

缺點:Hive不支持紀錄級別的增刪改操作;Hive查詢延遲很嚴重;Hive不支持事務。

1.4、Hive架構原理

12、Hive核心概念與原理詳解
? (1)用戶接口:CLI(hive shell);JDBC(java訪問Hive);WEBUI(瀏覽器訪問Hive)
? (2)元數據:MetaStore
元數據包括:表名、表所屬的數據庫(默認是default)、表的擁有者、列/分區字段,標的類型(表是否為外部表)、表的數據所在目錄。這是數據默認存儲在Hive自帶的derby數據庫中,推薦使用MySQL數據庫存儲MetaStore。
(3)Hadoop集群:
使用HDFS進行存儲數據,使用MapReduce進行計算。
(4)Driver:驅動器:
解析器(SQL Parser):將SQL字符串換成抽象語法樹AST,對AST進行語法分析,像是表是否存在、字段是否存在、SQL語義是否有誤。
編譯器(Physical Plan):將AST編譯成邏輯執行計劃。
優化器(Query Optimizer):將邏輯計劃進行優化。
執行器(Execution):把執行計劃轉換成可以運行的物理計劃。對于Hive來說默認就是Mapreduce任務。
通過Hive**對數據進行數據分析過程**:
12、Hive核心概念與原理詳解

2、 Hive交互方式

需要先啟動hadoop集群和MySQL服務

2.1、Hive交互shell

cd  /opt/bigdata2.7/hive (hive的安裝路徑,根據自己實際情況改變)
bin/hive

12、Hive核心概念與原理詳解
? 可以在命令端口寫上HQL語句:show databases;驗證是否可用。

2.2、JDBC交互

輸入hiveserver2相當于開啟了一個服務端,查看hivesever2的轉態
12、Hive核心概念與原理詳解

輸入netstat  –nlp命令查看:

12、Hive核心概念與原理詳解
?運行hiveserver2相當于開啟了一個服務端,端口號10000,需要開啟一個客戶端進行通信,所以打開另一個窗口,輸入命令beeline.,Beeline連接方式:!connect jdbc:hive2://node1:10000,主意不要省略!
12、Hive核心概念與原理詳解
當然了hiveserver2服務端可以運行在后臺:

nohup hiveserver2 &

3、 Hive數據類型

3.1基本數據類型

類型名稱 描述 舉例
boolean True/false True
tinyint 1字節的有符號整數 1
Smallint 2字節的有符號整數 1
int 4字節的有符號整數 1
Bigint 8字節的有符號整數 1
Float 4字節精度浮點數 1.0
Double 8字節精度浮點數 1.0
String 字符串(不設長度) “adcadfaf”
Varchar 字符串(1-65355) “adfafdafaf”
Timestamp 時間戳 123454566
date 日期 20160202

3.2復合數據類型

類型名稱 描述 舉例
Array 一組有序的字段,字段類型必須相同的array(元素1,元素2) Array(1,2,4)
Map 一組無序的鍵值對map(k1,v1,k2,v2) Map(‘a’,1,’b’,2)
Struct 一組命名的字段,字段類型可以不同struct(元素1,元素2) Struct(‘a’,1,2,0)

? (1)Array字段的元素訪問方式:下標獲取元素,下標從0開始

比如:獲取第一元素:array[0]

(2)Map字段的訪問方式:通過鍵獲取值

比如:獲取a這個key對應的value:map[‘a’]

(3)struct字段的元素獲取方式:

定義一個字段c的類型為struct(a int;b string)

獲取a和b的值:

create table complex(
     col1 array<int>,
     col2 map<string,int>,
     col3 struct<a:string,b:int,c:double>
     )

4、 Hive數據類型轉換

4.1、隱式類型轉換

? 系統自動實現類型轉換,不需要客戶干預

如:tinyint可以轉換成int,int可以轉成bigint

所有整數類型、float、string類型都可以隱式轉轉換成double

tinyint、samllint、int都可以轉成float

boolean不可以轉成其他任何類型

4.2、手動類型轉換

? 可以使用cast函數顯示的進行數據類型轉換

? 例如:cast(‘1’ as int)把字符串’1’轉成整數1

所有整數類型、float、string類型都可以隱式轉轉換成double

tinyint、samllint、int都可以轉成float

boolean不可以轉成其他任何類型

4.2、手動類型轉換

? 可以使用cast函數顯示的進行數據類型轉換

? 例如:cast(‘1’ as int)把字符串’1’轉成整數1

? 如果強制轉換類型失敗,如執行cast(‘x’ as int)表達式返回NULL。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

奉化市| 咸阳市| 中宁县| 青川县| 庐江县| 长武县| 惠东县| 东至县| 依安县| 镇雄县| 获嘉县| 平山县| 永胜县| 迁西县| 吉安市| 肃宁县| 大足县| 岫岩| 西乌珠穆沁旗| 思茅市| 绿春县| 镇安县| 讷河市| 广灵县| 汕头市| 雷州市| 江永县| 进贤县| 龙井市| 古丈县| 大安市| 柳林县| 乌拉特后旗| 安阳市| 蒙城县| 江达县| 肇庆市| 满洲里市| 高陵县| 邹平县| 灵武市|