hive架構探索

2021-08-18 03:18:47 字數 1540 閱讀 1257

hive是一款資料倉儲軟體,幫助使用者使用sql來管理/讀寫在分布式儲存上的大型資料集。使用者可以通過cli/jbdc driver等方式來連線hive。

直接編寫mapreduce程式來操作hadoop上的資料集需要編寫複雜的**,而使用hive,只需要簡單的sql語句,如select * from test;則可以獲取到在hadoop上的指定資料。

hive並不儲存資料,hive只是操作在分布式儲存上的資料,如hdfs/hbase。

以hdfs為例,hdfs上只是簡單的檔案,並不帶表資訊/列資訊,而hive可以把hdfs上的資料讀取出來以表資料的方式呈現。那hdfs上的檔案有些什麼表,表裡有什麼列,這就是元資料,存放在普通資料庫中,如derby/mysql。

hive從metastore中獲取元資料,將sql語句翻譯成mapreduce程式,交給hadoop操縱在hdfs上的資料。

那hive裡面又是怎樣的呢。

1. hive提供多個服務,可以通過以下命令啟動

hive  --service servicename 

parameters>

service list:

beeline 

cleardanglingscratchdir

cli

hbaseimport

hbaseschematool

help

hiveburninclient

hiveserver2

hplsql

jar

lineage

llapdump

llap

llapstatus

metastore

metatool

orcfiledump

rcfilecat

schematool

version

常用的就是cli/hiveserver2/metastore。

1.1 cli

提供命令列方式訪問hive

1.2 hiveserver2

hive thrift server,使程式可以通過jdbc driver等接入hive

1.3 metastore

hive元資料服務。

2. hive從2.2.0開始包含了hcatalog

hcatalog是基於apache hadoop之上的資料表和儲存管理服務,支援跨資料處理工具,如pig,mapreduce,streaming,hive。

使用hcatalog,則hive的元資料也可以為其他基於hadoop的工具所使用。無論使用者用哪個資料處理工具,通過hcatalog,都可以操作同乙個資料。

以上大部分為個人理解,如有不對,望指出。

Hive架構原理

1 使用者介面 client cli command line inte ce jdbc odbc jdbc訪問hive webui 瀏覽器訪問hive 2 元資料 metastore 元資料報括 表名 表所屬的資料庫 預設是default 表的擁有者 列 分割槽字段 表的型別 是否是外部表 表的資...

HIve 體系架構

sql語句就是不能在普通的字串而已,如何讓字串讓hive引擎識別呢 會把sql編譯成乙個語法術 sql parser 編譯解析 queryoptimizer做很多的優化,找到乙個最優的執行計畫,physical plan 生成物理計畫,在這個過程中有序列化和反序列化,udf 就是使用者自己定義的函式...

hive架構原理

1 使用者介面 client cli command line inte ce jdbc odbc jdbc訪問hive webui 瀏覽器訪問hive 2 元資料 metastore 元資料報括 表名 表所屬的資料庫 預設是default 表的擁有者 列 分割槽字段 表的型別 是否是外部表 表的資...