您好,登錄后才能下訂單哦!
這篇文章主要講解了“hive的特點和要點總結”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“hive的特點和要點總結”吧!
一.什么是Hive與其特點
官網介紹:The Apache Hive ? data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL 。 也就是說:hive數據倉庫軟件使用sql讀取、寫入和管理駐留在分布式存儲中的大型數據集。說明Hive的開發語言是SQL,而實際我們常見的分布式計算框架也就spark,MapReduce,Storm等,那么Hive如何使用SQL語言去進行分布式計算呢?
1.1Hive可以看做是MapReduce的客戶端
因為Hive的底層運算是MapReduce計算框架,Hive只是將可讀性強,容易編程的SQL語句通過Hive軟件轉換成MR程序在集群上執行。hive可以看做mapreduce客戶端,能用mapreduce程序完成的任務基本都可以對應的替換成hql(Hive SQL)編寫的hive任務。所以因為hadoop和hdfs的本身設計的特點,也限制了hive所能勝任的工作特性。Hive最大的限制特點就是不支持基于行記錄的更新,刪除,增加。但是用戶可以通過查詢生成新表,或者將查詢結果導入文件中來“實現”hive基于行記錄的操作。
1.2.Hive是批處理系統
因為mapreduce是批處理系統,所以hive也是基于海量數據的批處理的。同樣因為mapreduce具有高延遲(1.啟動時間長2.中間結果放在本地而非內存中),造成hive執行也耗時過長。
1.3.hive不支持事物
所以不支持OLTP(連接事物處理),更適用與OLAP(聯機分析處理),同樣Hive還有不支持很多SQL的用法 ,后面會說。
二.hive和hdfs,mysql,mapreduce之間的關系
1.舉例說明hive,mysql和hdfs之間的關系
下面是一個完成的流程,從hive中創建表,到往表里導入數據,1-9說明了hive,mysql,hdfs之間的流程。
2.要點總結
1.Hive不存儲數據,Hive需要分析計算的數據,以及計算結果后的數據實際存儲在分布式系統上,如HDFS上。
2.Hive某種程度來說也不進行數據計算,只是個解釋器,只是將用戶需要對數據處理的邏輯,通過SQL編程提交后解釋成MapReduce程序,然后將這個MR程序提交給Yarn進行調度執行。所以實際進行分布式運算的是MapReduce程序
3.因為Hive為了能操作HDFS上的數據集,那么他需要知道數據的切分格式,如行列分隔符,存儲類型,是否壓縮,數據的存儲地址等信息。為了方便以后操作所以他需要將這些信息通過一張表存儲起來,然后將這張表(元數據)存儲到mysql中。為了啥存儲到mysql里(實際是遠程mysql),因為hive本身就是一個解釋器,所以他不存儲數據 ,為啥存到遠程mysql里,后面會說。
mysql中的hive數據庫是自己手動創建的,然后執行下面語句:
schematool -dbType mysql -initSchema
該語句的作用是在mysql的hive數據庫下建立一大堆的表格.
------------下面是hive操作------------- hive> show databases; OK default hive Time taken: 0.018 seconds, Fetched: 2 row(s) ------------下面是mysql操作------------- mysql> use hive Database changed mysql> select * from DBS; +-------+-----------------------+-----------------------------------+---------+------------+------------+-----------+ | DB_ID | DESC | DB_LOCATION_URI | NAME | OWNER_NAME | OWNER_TYPE | CTLG_NAME | +-------+-----------------------+-----------------------------------+---------+------------+------------+-----------+ | 1 | Default Hive database | file:/user/hive/warehouse | default | public | ROLE | hive | | 11 | NULL | file:/user/hive/warehouse/hive.db | hive | appleyuchi | USER | hive | +-------+-----------------------+-----------------------------------+---------+------------+------------+-----------+ 2 rows in set (0.00 sec)
感謝各位的閱讀,以上就是“hive的特點和要點總結”的內容了,經過本文的學習后,相信大家對hive的特點和要點總結這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。