免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

hive是什么意思

這篇文章主要介紹hive是什么意思,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)建站專注于雙灤網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供雙灤營銷型網站建設,雙灤網站制作、雙灤網頁設計、雙灤網站官網定制、微信小程序開發(fā)服務,打造雙灤網絡公司原創(chuàng)品牌,更為您提供雙灤網站排名全網營銷落地服務。

    hive是hadoop整個項目使用中最常用的輔助項目之一。

    hadoop基礎的組件有hdfs和mapreduce。hdfs完成整個hadoop集群中數(shù)據(jù)的存儲,采用google的bigTable架構,其實我覺得就是將數(shù)據(jù)平分為多份,然后平分給分布式中的各機器上,存儲在上面的數(shù)據(jù)就像一個隱藏文件,你在本地硬盤上找不到它們,但卻可以通過hadoop中hdfs指令顯示和操作它們,像hadoop dfs -ls 路徑。而mapreduce則是將存儲在集群中的數(shù)據(jù)進行分布式計算,由原來1臺電腦的工作放到集群中所有電腦上,因此它的運算效率會有顯著的提高。

    說完了hdfs和mapreduce,你應該對hadoop有個基本的了解了,咱們再說下hive。

    hive是通過解析你所寫的HiveQL語句,來進行mapreduce計算,實現(xiàn)數(shù)據(jù)倉庫中分析數(shù)據(jù)的作用。hive其實就是針對mapreduce寫了一系列的方法和類,咱們可以通過寫HIVEQL的形式執(zhí)行mapreduce.用hiveQL能實現(xiàn)的功能你都能在mapReduce中寫出來,如果你不閑麻煩的話。。。

    說下hive的主要功能:數(shù)據(jù)ETL(抽取、轉換、加載)工具、數(shù)據(jù)存儲和大型數(shù)據(jù)集的查詢和分析能力。

    hive包含了四種數(shù)據(jù)模型:表(Table)、外部表(External Table)、分區(qū)(Partition)、桶(bucket)。

    表和外部表個人感覺用起來沒什么區(qū)別, 有區(qū)別的地方只不過是外部表在創(chuàng)建的時候數(shù)據(jù)沒有移動到數(shù)據(jù)倉庫目錄中,也就是說外部表不是由它自己來管理。而刪除外部表的時候,只會刪除元數(shù)據(jù),外部表內的數(shù)據(jù)不會被刪除。

    而分區(qū)和桶。。。就用分區(qū)。。不過分區(qū)和桶應該都是為了優(yōu)化hive的分析效率而做的架構,我原來放10號到20號的數(shù)據(jù)都放個一個文件中,現(xiàn)在,我通過分區(qū),將10號到20號的每日數(shù)據(jù)存儲在以天為單位的存儲文件中,這樣,我查詢某一天的數(shù)據(jù)時只是查詢這一天的文件,而不是查詢未分區(qū)前的整個文件,這樣,效率就上來了,當然,這只是我的理解,可能還有其它作用。。。

    我理解的hive的基本工作是:將metadata存到hive自建的表中,然后通過操作和分析hive表中的數(shù)據(jù),得到你想要的分析結果。

    hive的元數(shù)據(jù)存儲有三種方式:

    一、Single User Mode.其實就是將metadata存儲在一個內存數(shù)據(jù)庫(derby)中。內存才多大啊,所以日常中基本不用。

    二、Multi User Mode. 通過是連接本機的MySQL,來獲取元數(shù)據(jù)。這是日常和工作中最常用的一種方式。。貌似是工作中。。

    三、Remote Server Mode .其實就是通過本機的thrift協(xié)議訪問另一個服務器上的metaStoreServcer,metadata不在本地。

    關于hive配置,不多說了,網上一堆。。。

   關于hive中表的操作,我說下容易讓人誤會的地方:

    hive雖然有表的概念,但它是一個離線數(shù)據(jù)分析工具,建表只是為了分析服務的,而分析的數(shù)據(jù)你不可能一條一條插入進去,或者刪幾條。。而它的正常使用方式是將metadata導入到hive表中,再通過hiveQL分析hive表中的數(shù)據(jù)。所以hive中不提供手動插入一條或幾條數(shù)據(jù)。有手動就得有自動,自動我舉個例子:insert overwrite table abc select * from bbc;這就是我認為的自動。。。。不能手動增加數(shù)據(jù)了,只能導入數(shù)據(jù)或自動添加數(shù)據(jù)。那么刪除和修改呢,妥妥的也不能。

    關于hive語句的介紹也不多說了,網上也一堆,說的都挺清楚明白的。不過,這里我還得舉個例子,關于我今天寫的一個,煩了我一天的mapjoin...

     mapjoin 有兩個好處:1.關聯(lián)的兩張表中有一個表非常小時,mapjoin可以將小表中的數(shù)據(jù)加載到內存中,然后在map階段會自動大表中的數(shù)據(jù),效率還不錯。like :select /*+ mapjoin*/ a.id,a,username from a join b on (a.id=b.id)。這是在對等的情況下,效率相當不錯。

                          2.還有一個好處就是它可以實現(xiàn)不對等連接。。 join ..on  ()  ,on 后面會跟對等的條件,像a.id=b.id ,你如果跟個like 會報錯。而mapjoin可以實現(xiàn)不對等條件,就是在join后面不用on了,直接用where,不過這個效率,試了下,個人感覺效率不高。。like :select /*+ mapjoin*/ a.id,a,username from a join b where a.username like 'error')。

            關于hive其它的方面我還沒有看。。等以后看完了,再談下感受吧。。

    PS: 關于mapjoin()的非等值測試:

    兩張表:pv_temp_test1(大表)  ,title_keyword_test(小表)

             pv_temp_test1:  530180 條 

             title_keyword_test  5646 條

  測試語句 :

hive> insert overwrite table hbase_test_keyword 
select /*+ mapjoin(a)*/ a.keyword,b.dt,b.pid,b.area,count(*),count(distinct clientid) from title_keyword_test a join (select dt,pid,area,wd,clientid from pv_temp_test1 where wd!='' and wd != 'None') b where b.wd like concat('%',a.keyword,'%') group by  a.keyword,b.dt,b.area,b.pid;

   花費時間:4927秒......

以上是“hive是什么意思”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享名稱:hive是什么意思
網頁網址:http://m.newbst.com/article30/gpjoso.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站改版電子商務虛擬主機網站營銷品牌網站建設App設計

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

手機網站建設