您好,登錄后才能下訂單哦!
這篇文章主要講解了“hive和mysql的關系”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“hive和mysql的關系”吧!
Hive是一個基于Hadoop的數據倉庫平臺。通過hive,我們可以方便地進行ETL的工作。hive定義了一個類似于SQL的查詢語言:HQL,能 夠將用戶編寫的QL轉化為相應的Mapreduce程序基于Hadoop執行。
Hive是Facebook 2008年8月剛開源的一個數據倉庫框架,其系統目標與 Pig 有相似之處,但它有一些Pig目前還不支持的機制,比如:更豐富的類型系統、更類似SQL的查詢語言、Table/Partition元數據的持久化等。
Hive 可以看成是從SQL到Map-Reduce的 映射器
hive的組件和體系架構:
hive web接口啟動:./hive --service hwi
瀏覽器訪問:http://localhost:9999/hwi/
默認情況下,Hive元數據保存在內嵌的 Derby 數據庫中,只能允許一個會話連接,只適合簡單的測試。為了支持多用戶多會話,則需要一個獨立的元數據庫,我們使用 MySQL 作為元數據庫,Hive 內部對 MySQL 提供了很好的支持。
Hive安裝
內嵌模式:元數據保持在內嵌的Derby模式,只允許一個會話連接
本地獨立模式:在本地安裝Mysql,把元數據放到Mysql內
遠程模式:元數據放置在遠程的Mysql數據庫。
Hive的數據放在哪兒?
數據在HDFS的warehouse目錄下,一個表對應一個子目錄。
本地的/tmp目錄存放日志和執行計劃
hive的表分為兩種,內表和外表。
Hive 創建內部表時,會將數據移動到數據倉庫指向的路徑;若創建外部表,僅記錄數據所在的路徑,不對數據的位置做任何改變。
在刪除表的時候,內部表的元數據和數據會被一起刪除, 而外部表只刪除元數據,不刪除數據。這樣外部表相對來說更加安全些,數據組織也更加靈活,方便共享源數據。
使用Mysql作為Hive metaStore的存儲數據庫
其中主要涉及到的表如下:
表名 | 說明 | 關聯鍵 |
TBLS | 所有hive表的基本信息(表名,創建時間,所屬者等) | TBL_ID,SD_ID |
TABLE_PARAM | 表級屬性,(如是否外部表,表注釋,最后修改時間等) | TBL_ID |
COLUMNS | Hive表字段信息(字段注釋,字段名,字段類型,字段序號) | SD_ID |
SDS | 所有hive表、表分區所對應的hdfs數據目錄和數據格式 | SD_ID,SERDE_ID |
SERDE_PARAM | 序列化反序列化信息,如行分隔符、列分隔符、NULL的表示字符等 | SERDE_ID |
PARTITIONS | Hive表分區信息(所屬表,分區值) | PART_ID,SD_ID,TBL_ID |
PARTITION_KEYS | Hive分區表分區鍵(即分區字段) | TBL_ID |
PARTITION_KEY_VALS | Hive表分區名(鍵值) | PART_ID |
感謝各位的閱讀,以上就是“hive和mysql的關系”的內容了,經過本文的學習后,相信大家對hive和mysql的關系這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。