您好,登錄后才能下訂單哦!
這篇文章主要講解了“hive的特點(diǎn)和要點(diǎn)總結(jié)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“hive的特點(diǎn)和要點(diǎn)總結(jié)”吧!
一.什么是Hive與其特點(diǎn)
官網(wǎng)介紹:The Apache Hive ? data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL 。 也就是說(shuō):hive數(shù)據(jù)倉(cāng)庫(kù)軟件使用sql讀取、寫(xiě)入和管理駐留在分布式存儲(chǔ)中的大型數(shù)據(jù)集。說(shuō)明Hive的開(kāi)發(fā)語(yǔ)言是SQL,而實(shí)際我們常見(jiàn)的分布式計(jì)算框架也就spark,MapReduce,Storm等,那么Hive如何使用SQL語(yǔ)言去進(jìn)行分布式計(jì)算呢?
1.1Hive可以看做是MapReduce的客戶(hù)端
因?yàn)镠ive的底層運(yùn)算是MapReduce計(jì)算框架,Hive只是將可讀性強(qiáng),容易編程的SQL語(yǔ)句通過(guò)Hive軟件轉(zhuǎn)換成MR程序在集群上執(zhí)行。hive可以看做mapreduce客戶(hù)端,能用mapreduce程序完成的任務(wù)基本都可以對(duì)應(yīng)的替換成hql(Hive SQL)編寫(xiě)的hive任務(wù)。所以因?yàn)閔adoop和hdfs的本身設(shè)計(jì)的特點(diǎn),也限制了hive所能勝任的工作特性。Hive最大的限制特點(diǎn)就是不支持基于行記錄的更新,刪除,增加。但是用戶(hù)可以通過(guò)查詢(xún)生成新表,或者將查詢(xún)結(jié)果導(dǎo)入文件中來(lái)“實(shí)現(xiàn)”hive基于行記錄的操作。
1.2.Hive是批處理系統(tǒng)
因?yàn)閙apreduce是批處理系統(tǒng),所以hive也是基于海量數(shù)據(jù)的批處理的。同樣因?yàn)閙apreduce具有高延遲(1.啟動(dòng)時(shí)間長(zhǎng)2.中間結(jié)果放在本地而非內(nèi)存中),造成hive執(zhí)行也耗時(shí)過(guò)長(zhǎng)。
1.3.hive不支持事物
所以不支持OLTP(連接事物處理),更適用與OLAP(聯(lián)機(jī)分析處理),同樣Hive還有不支持很多SQL的用法 ,后面會(huì)說(shuō)。
二.hive和hdfs,mysql,mapreduce之間的關(guān)系
1.舉例說(shuō)明hive,mysql和hdfs之間的關(guān)系
下面是一個(gè)完成的流程,從hive中創(chuàng)建表,到往表里導(dǎo)入數(shù)據(jù),1-9說(shuō)明了hive,mysql,hdfs之間的流程。
2.要點(diǎn)總結(jié)
1.Hive不存儲(chǔ)數(shù)據(jù),Hive需要分析計(jì)算的數(shù)據(jù),以及計(jì)算結(jié)果后的數(shù)據(jù)實(shí)際存儲(chǔ)在分布式系統(tǒng)上,如HDFS上。
2.Hive某種程度來(lái)說(shuō)也不進(jìn)行數(shù)據(jù)計(jì)算,只是個(gè)解釋器,只是將用戶(hù)需要對(duì)數(shù)據(jù)處理的邏輯,通過(guò)SQL編程提交后解釋成MapReduce程序,然后將這個(gè)MR程序提交給Yarn進(jìn)行調(diào)度執(zhí)行。所以實(shí)際進(jìn)行分布式運(yùn)算的是MapReduce程序
3.因?yàn)镠ive為了能操作HDFS上的數(shù)據(jù)集,那么他需要知道數(shù)據(jù)的切分格式,如行列分隔符,存儲(chǔ)類(lèi)型,是否壓縮,數(shù)據(jù)的存儲(chǔ)地址等信息。為了方便以后操作所以他需要將這些信息通過(guò)一張表存儲(chǔ)起來(lái),然后將這張表(元數(shù)據(jù))存儲(chǔ)到mysql中。為了啥存儲(chǔ)到mysql里(實(shí)際是遠(yuǎn)程mysql),因?yàn)閔ive本身就是一個(gè)解釋器,所以他不存儲(chǔ)數(shù)據(jù) ,為啥存到遠(yuǎn)程mysql里,后面會(huì)說(shuō)。
mysql中的hive數(shù)據(jù)庫(kù)是自己手動(dòng)創(chuàng)建的,然后執(zhí)行下面語(yǔ)句:
schematool -dbType mysql -initSchema
該語(yǔ)句的作用是在mysql的hive數(shù)據(jù)庫(kù)下建立一大堆的表格.
------------下面是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的特點(diǎn)和要點(diǎn)總結(jié)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)hive的特點(diǎn)和要點(diǎn)總結(jié)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。