版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、廈門大學計算機科學系 2016年版林子雨廈門大學計算機科學系E-mail: ziyulin主頁:/linziyu第八講 基于Hadoop的數(shù)據(jù)倉庫Hive (PPT版本號:2016年4月6日版本) 大數(shù)據(jù)技術(shù)原理與應用/post/bigdata溫馨提示:編輯幻燈片母版,可以修改每頁PPT的廈大校徽和底部文字課堂內(nèi)容與教材對應關(guān)系說明廈門大學林子雨編著大數(shù)據(jù)技術(shù)原理與應用2015年8月1日人民郵電出版社出版發(fā)行第1版教材共包含13章內(nèi)容第一章 大數(shù)據(jù)概述第二章 大數(shù)據(jù)處理架構(gòu)Hadoop第三章 分布式文件系統(tǒng)HDFS第四章 分布式數(shù)據(jù)庫HBase第五章 NoSQL數(shù)據(jù)庫第六章 云數(shù)據(jù)庫第七章 M
2、apReduce第八章 流計算第九章 圖計算第十章 數(shù)據(jù)可視化第十一章 大數(shù)據(jù)在互聯(lián)網(wǎng)領(lǐng)域的應用第十二章 大數(shù)據(jù)在生物醫(yī)學領(lǐng)域的應用(自學)第十三章 大數(shù)據(jù)的其他應用(自學)2016年新增章節(jié)(將加入到第2版教材中)第14章基于Hadoop的數(shù)據(jù)倉庫Hive第15章Hadoop架構(gòu)再探討第16章Spark課堂內(nèi)容與教材對應關(guān)系說明課堂章節(jié)對應的大數(shù)據(jù)技術(shù)原理與應用(第1版)教材章節(jié)第1講-大數(shù)據(jù)概述第1章-大數(shù)據(jù)概述第2講-大數(shù)據(jù)處理架構(gòu)Hadoop第2章-大數(shù)據(jù)處理架構(gòu)Hadoop第3講-分布式文件系統(tǒng)HDFS第3章-分布式文件系統(tǒng)HDFS第4講-分布式數(shù)據(jù)庫HBase第4章-分布式數(shù)據(jù)庫H
3、Base第5講-NoSQL數(shù)據(jù)庫第5章-NoSQL數(shù)據(jù)庫第6講-云數(shù)據(jù)庫第6章-云數(shù)據(jù)庫第7講-MapReduce第7章-MapReduce第8講-基于Hadoop的數(shù)據(jù)倉庫Hive新增第14章,不在當前第1版教材中,將放入第2版教材第9講-Hadoop架構(gòu)再探討新增第15章,不在當前第1版教材中,將放入第2版教材第10講-流計算第8章-流計算第11講-Spark新增第16章,不在當前第1版教材中,將放入第2版教材第12講-圖計算第9章-圖計算第13講-數(shù)據(jù)可視化第10章-數(shù)據(jù)可視化第14講-大數(shù)據(jù)在互聯(lián)網(wǎng)領(lǐng)域的應用第11章-大數(shù)據(jù)在互聯(lián)網(wǎng)領(lǐng)域的應用備注:教材的第12章大數(shù)據(jù)在生物醫(yī)學領(lǐng)域的應
4、用和第13章大數(shù)據(jù)在其他領(lǐng)域的應用,為自學章節(jié),不錄制視頻廈門大學計算機科學系 2016年版林子雨廈門大學計算機科學系E-mail: ziyulin主頁:/linziyu第十四章 基于Hadoop的數(shù)據(jù)倉庫Hive (第1版教材出版后的2016年新增章節(jié))大數(shù)據(jù)技術(shù)原理與應用/post/bigdata溫馨提示:編輯幻燈片母版,可以修改每頁PPT的廈大?;蘸偷撞课淖郑≒PT版本號:2016年4月6日版本) 中國高校大數(shù)據(jù)課程公共服務平臺/post/bigdata-teaching-platform/百度搜索“廈門大學數(shù)據(jù)庫實驗室”訪問平臺主頁課程教材講義PPT學習指南免費提供備課指南上機習題授課
5、視頻技術(shù)資料全方位、一站式服務提綱14.1 概述14.2 Hive系統(tǒng)架構(gòu)14.3 Hive工作原理14.4 Hive HA基本原理14.5 Impala14.6 Hive編程實踐歡迎訪問大數(shù)據(jù)技術(shù)原理與應用教材官方網(wǎng)站:/post/bigdata歡迎訪問“中國高校大數(shù)據(jù)課程公共服務平臺”旗下子欄目“大數(shù)據(jù)課程學生服務站”,為學生學習大數(shù)據(jù)課程提供全方位、一站式免費服務:/post/4331/本PPT是如下教材的配套講義:21世紀高等教育計算機規(guī)劃教材大數(shù)據(jù)技術(shù)原理與應用概念、存儲、處理、分析與應用 (2015年8月第1版)廈門大學 林子雨 編著,人民郵電出版社ISBN:978-7-115-3
6、9287-914.1概述14.1.1 數(shù)據(jù)倉庫概念14.1.2 傳統(tǒng)數(shù)據(jù)倉庫面臨的挑戰(zhàn)14.1.3Hive簡介14.1.4Hive與Hadoop生態(tài)系統(tǒng)中其他組件的關(guān)系14.1.5Hive與傳統(tǒng)數(shù)據(jù)庫的對比分析14.1.6Hive在企業(yè)中的部署和應用14.1.1數(shù)據(jù)倉庫概念數(shù)據(jù)倉庫(Data Warehouse)是一個面向主題的(Subject Oriented)、集成的(Integrated)、相對穩(wěn)定的(Non-Volatile)、反映歷史變化(Time Variant)的數(shù)據(jù)集合,用于支持管理決策。圖14-1 數(shù)據(jù)倉庫的體系結(jié)構(gòu)(1)無法滿足快速增長的海量數(shù)據(jù)存儲需求(2)無法有效處理不
7、同類型的數(shù)據(jù)(3)計算和處理能力不足14.1.2 傳統(tǒng)數(shù)據(jù)倉庫面臨的挑戰(zhàn)14.1.3 Hive簡介Hive是一個構(gòu)建于Hadoop頂層的數(shù)據(jù)倉庫工具支持大規(guī)模數(shù)據(jù)存儲、分析,具有良好的可擴展性某種程度上可以看作是用戶編程接口,本身不存儲和處理數(shù)據(jù)依賴分布式文件系統(tǒng)HDFS存儲數(shù)據(jù)依賴分布式并行計算模型MapReduce處理數(shù)據(jù)定義了簡單的類似SQL 的查詢語言HiveQL用戶可以通過編寫的HiveQL語句運行MapReduce任務可以很容易把原來構(gòu)建在關(guān)系數(shù)據(jù)庫上的數(shù)據(jù)倉庫應用程序移植到Hadoop平臺上是一個可以提供有效、合理、直觀組織和使用數(shù)據(jù)的分析工具14.1.3 Hive簡介Hive具
8、有的特點非常適用于數(shù)據(jù)倉庫采用批處理方式處理海量數(shù)據(jù)Hive需要把HiveQL語句轉(zhuǎn)換成MapReduce任務進行運行數(shù)據(jù)倉庫存儲的是靜態(tài)數(shù)據(jù),對靜態(tài)數(shù)據(jù)的分析適合采用批處理方式,不需要快速響應給出結(jié)果,而且數(shù)據(jù)本身也不會頻繁變化提供適合數(shù)據(jù)倉庫操作的工具Hive本身提供了一系列對數(shù)據(jù)進行提取、轉(zhuǎn)換、加載(ETL)的工具,可以存儲、查詢和分析存儲在Hadoop中的大規(guī)模數(shù)據(jù)這些工具能夠很好地滿足數(shù)據(jù)倉庫各種應用場景14.1.4 Hive與Hadoop生態(tài)系統(tǒng)中其他組件的關(guān)系Hive依賴于HDFS 存儲數(shù)據(jù)Hive依賴于MapReduce 處理數(shù)據(jù)在某些場景下Pig可以作為Hive的替代工具HB
9、ase 提供數(shù)據(jù)的實時訪問14.1.5 Hive與傳統(tǒng)數(shù)據(jù)庫的對比分析Hive在很多方面和傳統(tǒng)的關(guān)系數(shù)據(jù)庫類似,但是它的底層依賴的是HDFS和MapReduce,所以在很多方面又有別于傳統(tǒng)數(shù)據(jù)庫對比項目Hive傳統(tǒng)數(shù)據(jù)庫數(shù)據(jù)插入支持批量導入支持單條和批量導入數(shù)據(jù)更新不支持支持索引支持支持分區(qū)支持支持執(zhí)行延遲高低擴展性好有限14.1.6 Hive在企業(yè)中的部署和應用圖 企業(yè)中一種常見的大數(shù)據(jù)分析平臺部署框架1. Hive在企業(yè)大數(shù)據(jù)分析平臺中的應用14.1.6 Hive在企業(yè)中的部署和應用圖 Facebook的數(shù)據(jù)倉庫架構(gòu)基于Oracle的數(shù)據(jù)倉庫系統(tǒng)已經(jīng)無法滿足激增的業(yè)務需求Facebook公
10、司開發(fā)了數(shù)據(jù)倉庫工具Hive,并在企業(yè)內(nèi)部進行了大量部署2.Hive在Facebook公司中的應用14.2 Hive系統(tǒng)架構(gòu)圖 Hive系統(tǒng)架構(gòu)用戶接口模塊包括CLI、HWI、JDBC、ODBC、Thrift Server驅(qū)動模塊(Driver)包括編譯器、優(yōu)化器、執(zhí)行器等,負責把HiveSQL語句轉(zhuǎn)換成一系列MapReduce作業(yè)元數(shù)據(jù)存儲模塊(Metastore)是一個獨立的關(guān)系型數(shù)據(jù)庫(自帶derby數(shù)據(jù)庫,或MySQL數(shù)據(jù)庫)14.3 Hive工作原理14.3.1 SQL語句轉(zhuǎn)換成MapReduce作業(yè)的基本原理14.3.2 Hive中SQL查詢轉(zhuǎn)換成MapReduce作業(yè)的過程14.
11、3.1 SQL語句轉(zhuǎn)換成MapReduce的基本原理1.join的實現(xiàn)原理1是表User的標記位2是表Order的標記位1和2是uid的值14.3.1 SQL語句轉(zhuǎn)換成MapReduce的基本原理2. group by的實現(xiàn)原理存在一個分組(Group By)操作,其功能是把表Score的不同片段按照rank和level的組合值進行合并,計算不同rank和level的組合值分別有幾條記錄:select rank, level ,count(*) as value from score group by rank, level14.3.2 Hive中SQL查詢轉(zhuǎn)換成MapReduce作業(yè)的過程當
12、用戶向Hive輸入一段命令或查詢時,Hive需要與Hadoop交互工作來完成該操作:驅(qū)動模塊接收該命令或查詢編譯器對該命令或查詢進行解析編譯由優(yōu)化器對該命令或查詢進行優(yōu)化計算該命令或查詢通過執(zhí)行器進行執(zhí)行14.3.2 Hive中SQL查詢轉(zhuǎn)換成MapReduce作業(yè)的過程第1步:由Hive驅(qū)動模塊中的編譯器對用戶輸入的SQL語言進行詞法和語法解析,將SQL語句轉(zhuǎn)化為抽象語法樹的形式第2步:抽象語法樹的結(jié)構(gòu)仍很復雜,不方便直接翻譯為MapReduce算法程序,因此,把抽象語法書轉(zhuǎn)化為查詢塊第3步:把查詢塊轉(zhuǎn)換成邏輯查詢計劃,里面包含了許多邏輯操作符第4步:重寫邏輯查詢計劃,進行優(yōu)化,合并多余操作
13、,減少MapReduce任務數(shù)量第5步:將邏輯操作符轉(zhuǎn)換成需要執(zhí)行的具體MapReduce任務第6步:對生成的MapReduce任務進行優(yōu)化,生成最終的MapReduce任務執(zhí)行計劃第7步:由Hive驅(qū)動模塊中的執(zhí)行器,對最終的MapReduce任務進行執(zhí)行輸出14.3.2 Hive中SQL查詢轉(zhuǎn)換成MapReduce作業(yè)的過程當啟動MapReduce程序時,Hive本身是不會生成MapReduce算法程序的需要通過一個表示“Job執(zhí)行計劃”的XML文件驅(qū)動執(zhí)行內(nèi)置的、原生的Mapper和Reducer模塊Hive通過和JobTracker通信來初始化MapReduce任務,不必直接部署在Jo
14、bTracker所在的管理節(jié)點上執(zhí)行通常在大型集群上,會有專門的網(wǎng)關(guān)機來部署Hive工具。網(wǎng)關(guān)機的作用主要是遠程操作和管理節(jié)點上的JobTracker通信來執(zhí)行任務數(shù)據(jù)文件通常存儲在HDFS上,HDFS由名稱節(jié)點管理幾點說明:14.4 Hive HA基本原理圖 Hive HA基本原理問題:在實際應用中,Hive也暴露出不穩(wěn)定的問題解決方案:Hive HA(High Availability)由多個Hive實例進行管理的,這些Hive實例被納入到一個資源池中,并由HAProxy提供一個統(tǒng)一的對外接口對于程序開發(fā)人員來說,可以把它認為是一臺超強“Hive14.5Impala14.5.1Impala
15、簡介14.5.2Impala系統(tǒng)架構(gòu)14.5.3 Impala查詢執(zhí)行過程14.5.4Impala與Hive的比較14.5.1 Impala簡介Impala是由Cloudera公司開發(fā)的新型查詢系統(tǒng),它提供SQL語義,能查詢存儲在Hadoop的HDFS和HBase上的PB級大數(shù)據(jù),在性能上比Hive高出330倍Impala的運行需要依賴于Hive的元數(shù)據(jù)Impala是參照 Dremel系統(tǒng)進行設(shè)計的Impala采用了與商用并行關(guān)系數(shù)據(jù)庫類似的分布式查詢引擎,可以直接與HDFS和HBase進行交互查詢Impala和Hive采用相同的SQL語法、ODBC驅(qū)動程序和用戶接口圖 Impala與其他組件
16、關(guān)系14.5.2 Impala系統(tǒng)架構(gòu)圖 Impala系統(tǒng)架構(gòu)Impala和Hive、HDFS、HBase等工具是統(tǒng)一部署在一個Hadoop平臺上的Impala主要由Impalad,State Store和CLI三部分組成14.5.2 Impala系統(tǒng)架構(gòu)Impala主要由Impalad,State Store和CLI三部分組成Impalad負責協(xié)調(diào)客戶端提交的查詢的執(zhí)行包含Query Planner、Query Coordinator和Query Exec Engine三個模塊與HDFS的數(shù)據(jù)節(jié)點(HDFS DN)運行在同一節(jié)點上給其他Impalad分配任務以及收集其他Impalad的執(zhí)行結(jié)
17、果進行匯總Impalad也會執(zhí)行其他Impalad給其分配的任務,主要就是對本地HDFS和HBase里的部分數(shù)據(jù)進行操作2. State Store會創(chuàng)建一個statestored進程負責收集分布在集群中各個Impalad進程的資源信息,用于查詢調(diào)度CLI給用戶提供查詢使用的命令行工具還提供了Hue、JDBC及ODBC的使用接口說明:Impala中的元數(shù)據(jù)直接存儲在Hive中。Impala采用與Hive相同的元數(shù)據(jù)、SQL語法、ODBC驅(qū)動程序和用戶接口,從而使得在一個Hadoop平臺上,可以統(tǒng)一部署Hive和Impala等分析工具,同時支持批處理和實時查詢14.5.3 Impala查詢執(zhí)行過
18、程圖 Impala查詢過程圖14.5.3 Impala查詢執(zhí)行過程Impala執(zhí)行查詢的具體過程:第0步,當用戶提交查詢前,Impala先創(chuàng)建一個負責協(xié)調(diào)客戶端提交的查詢的Impalad進程,該進程會向Impala State Store提交注冊訂閱信息,State Store會創(chuàng)建一個statestored進程,statestored進程通過創(chuàng)建多個線程來處理Impalad的注冊訂閱信息。第1步,用戶通過CLI客戶端提交一個查詢到impalad進程,Impalad的Query Planner對SQL語句進行解析,生成解析樹;然后,Planner把這個查詢的解析樹變成若干PlanFragmen
19、t,發(fā)送到Query Coordinator14.5.3 Impala查詢執(zhí)行過程Impala執(zhí)行查詢的具體過程:第2步,Coordinator通過從MySQL元數(shù)據(jù)庫中獲取元數(shù)據(jù),從HDFS的名稱節(jié)點中獲取數(shù)據(jù)地址,以得到存儲這個查詢相關(guān)數(shù)據(jù)的所有數(shù)據(jù)節(jié)點。第3步,Coordinator初始化相應impalad上的任務執(zhí)行,即把查詢?nèi)蝿辗峙浣o所有存儲這個查詢相關(guān)數(shù)據(jù)的數(shù)據(jù)節(jié)點。第4步,Query Executor通過流式交換中間輸出,并由Query Coordinator匯聚來自各個impalad的結(jié)果。第5步,Coordinator把匯總后的結(jié)果返回給CLI客戶端。14.5.4 Impal
20、a與Hive的比較圖 Impala與Hive的對比Hive與Impala的不同點總結(jié)如下:Hive適合于長時間的批處理查詢分析,而Impala適合于實時交互式SQL查詢Hive依賴于MapReduce計算框架,Impala把執(zhí)行計劃表現(xiàn)為一棵完整的執(zhí)行計劃樹,直接分發(fā)執(zhí)行計劃到各個Impalad執(zhí)行查詢Hive在執(zhí)行過程中,如果內(nèi)存放不下所有數(shù)據(jù),則會使用外存,以保證查詢能順序執(zhí)行完成,而Impala在遇到內(nèi)存放不下數(shù)據(jù)時,不會利用外存,所以Impala目前處理查詢時會受到一定的限制14.5.4 Impala與Hive的比較Hive與Impala的相同點總結(jié)如下:Hive與Impala使用相同
21、的存儲數(shù)據(jù)池,都支持把數(shù)據(jù)存儲于HDFS和HBase中Hive與Impala使用相同的元數(shù)據(jù)Hive與Impala中對SQL的解釋處理比較相似,都是通過詞法分析生成執(zhí)行計劃圖 Impala與Hive的對比14.5.4 Impala與Hive的比較總結(jié)Impala的目的不在于替換現(xiàn)有的MapReduce工具把Hive與Impala配合使用效果最佳可以先使用Hive進行數(shù)據(jù)轉(zhuǎn)換處理,之后再使用Impala在Hive處理后的結(jié)果數(shù)據(jù)集上進行快速的數(shù)據(jù)分析14.6 Hive編程實踐14.6.1 Hive的安裝與配置14.6.2 Hive的數(shù)據(jù)類型14.6.3 Hive基本操作14.6.4 Hive應用
22、實例:WordCount14.6.5 Hive編程的優(yōu)勢Hive上機實踐詳細過程,請參考廈門大學數(shù)據(jù)庫實驗室建設(shè)的“中國高校大數(shù)據(jù)課程公共服務平臺”中的“大數(shù)據(jù)課程學生服務站”中的“學習指南”欄目:學生服務站地址:/post/4331/學習指南欄目中包含了Hive 實踐教程/blog/hive-in-practice掃一掃訪問學生服務站14.6.1 Hive的安裝與配置1. Hive安裝下載安裝包apache-hive-1.2.1-bin.tar.gz 下載地址:/dyn/closer.cgi/hive/解壓安裝包apache-hive-1.2.1-bin.tar.gz至路徑 /usr/loc
23、al配置系統(tǒng)環(huán)境,將hive下的bin目錄添加到系統(tǒng)的path中2. Hive配置Hive有三種運行模式,單機模式、偽分布式模式、分布式模式。均是通過修改hive-site.xml文件實現(xiàn),如果 hive-site.xml文件不存在,我們可以參考$HIVE_HOME/conf目錄下的hive-default.xml.template文件新建。安裝Hive之前需要安裝jdk1.6以上版本以及啟動Hadoop14.6.2 Hive的數(shù)據(jù)類型表 Hive的基本數(shù)據(jù)類型類型描述示例TINYINT1個字節(jié)(8位)有符號整數(shù)1SMALLINT2個字節(jié)(16位)有符號整數(shù)1INT4個字節(jié)(32位)有符號整數(shù)
24、1BIGINT8個字節(jié)(64位)有符號整數(shù)1FLOAT4個字節(jié)(32位)單精度浮點數(shù)1.0DOUBLE8個字節(jié)(64位)雙精度浮點數(shù)1.0BOOLEAN布爾類型,true/falsetrueSTRING字符串,可以指定字符集“xmu”TIMESTAMP整數(shù)、浮點數(shù)或者字符串1327882394(Unix新紀元秒)BINARY字節(jié)數(shù)組0,1,0,1,0,1,0,114.6.2 Hive的數(shù)據(jù)類型表 Hive的集合數(shù)據(jù)類型類型描述示例ARRAY一組有序字段,字段的類型必須相同Array(1,2)MAP一組無序的鍵/值對,鍵的類型必須是原子的,值可以是任何數(shù)據(jù)類型,同一個映射的鍵和值的類型必須相同M
25、ap(a,1,b,2)STRUCT一組命名的字段,字段類型可以不同Struct(a,1,1,0)14.6.3 Hive基本操作 1. create: 創(chuàng)建數(shù)據(jù)庫、表、視圖創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫hivehive create database hive;創(chuàng)建數(shù)據(jù)庫hive。因為hive已經(jīng)存在,所以會拋出異常,加上if not exists關(guān)鍵字,則不會拋出異常hive create database if not exists hive;14.6.3 Hive基本操作創(chuàng)建表在hive數(shù)據(jù)庫中,創(chuàng)建表usr,含三個屬性id,name,age hive use hive; hivecreate ta
26、ble if not exists usr(id bigint,name string,age int);在hive數(shù)據(jù)庫中,創(chuàng)建表usr,含三個屬性id,name,age,存儲路徑為“/usr/local/hive/warehouse/hive/usr” hivecreate table if not exists hive.usr(id bigint,name string,age int) location /usr/local/hive/warehouse/hive/usr;14.6.3 Hive基本操作創(chuàng)建視圖創(chuàng)建視圖little_usr,只包含usr表中id,age屬性hivecr
27、eate view little_usr as select id,age from usr;14.6.3 Hive基本操作 2. show:查看數(shù)據(jù)庫、表、視圖查看數(shù)據(jù)庫查看Hive中包含的所有數(shù)據(jù)庫 hive show databases;查看Hive中以h開頭的所有數(shù)據(jù)庫 hiveshow databases like h.*;查看表和視圖查看數(shù)據(jù)庫hive中所有表和視圖 hive use hive; hive show tables;查看數(shù)據(jù)庫hive中以u開頭的所有表和視圖 hive show tables in hive like u.*;14.6.3 Hive基本操作3. loa
28、d:向表中裝載數(shù)據(jù)把目錄/usr/local/data下的數(shù)據(jù)文件中的數(shù)據(jù)裝載進usr表并覆蓋原有數(shù)據(jù) hive load data local inpath /usr/local/data overwrite into table usr;把目錄/usr/local/data下的數(shù)據(jù)文件中的數(shù)據(jù)裝載進usr表不覆蓋原有數(shù)據(jù) hive load data local inpath /usr/local/data into table usr;把分布式文件系統(tǒng)目錄hdfs:/master_server/usr/local/data下的數(shù)據(jù)文件數(shù)據(jù)裝載進usr表并覆蓋原有數(shù)據(jù) hive load
29、data inpath hdfs:/master_server/usr/local/data overwrite into table usr;14.6.3 Hive基本操作4. insert:向表中插入數(shù)據(jù)或從表中導出數(shù)據(jù)向表usr1中插入來自usr表的數(shù)據(jù)并覆蓋原有數(shù)據(jù) hive insert overwrite table usr1 select * from usr where age=10;向表usr1中插入來自usr表的數(shù)據(jù)并追加在原有數(shù)據(jù)后 hive insert into table usr1 select * from usr where age=10;14.6.4 Hive
30、應用實例:WordCount詞頻統(tǒng)計任務要求:首先,需要創(chuàng)建一個需要分析的輸入數(shù)據(jù)文件然后,編寫HiveQL語句實現(xiàn)WordCount算法具體步驟如下:(1)創(chuàng)建input目錄,其中input為輸入目錄。命令如下: $ cd /usr/local/hadoop $ mkdir input(2)在input文件夾中創(chuàng)建兩個測試文件file1.txt和file2.txt,命令如下: $ cd /usr/local/hadoop/input $ echo hello world file1.txt $ echo hello hadoop file2.txt14.6.4 Hive應用實例:WordCo
31、unt(3)進入hive命令行界面,編寫HiveQL語句實現(xiàn)WordCount算法,命令如下: $ hive hive create table docs(line string); hive load data inpath input overwrite into table docs; hivecreate table word_count as select word, count(1) as count from (select explode(split(line, )as word from docs) w group by word order by word;執(zhí)行完成后,用s
32、elect語句查看運行結(jié)果如下:wordhelloworldhellohadoopWhello worldhello hadoopdocs14.6.5 Hive的編程優(yōu)勢WordCount算法在MapReduce中的編程實現(xiàn)和Hive中編程實現(xiàn)的主要不同點:1. 采用Hive實現(xiàn)WordCount算法需要編寫較少的代碼量在MapReduce中,WordCount類由63行Java代碼編寫而成在Hive中只需要編寫7行代碼2. 在MapReduce的實現(xiàn)中,需要進行編譯生成jar文件來執(zhí)行算法,而在Hive中不需要HiveQL語句的最終實現(xiàn)需要轉(zhuǎn)換為MapReduce任務來執(zhí)行,這都是由Hive
33、框架自動完成的,用戶不需要了解具體實現(xiàn)細節(jié)本章小結(jié)本章詳細介紹了Hive的基本知識。Hive是一個構(gòu)建于Hadoop頂層的數(shù)據(jù)倉庫工具,主要用于對存儲在 Hadoop 文件中的數(shù)據(jù)集進行數(shù)據(jù)整理、特殊查詢和分析處理。Hive在某種程度上可以看作是用戶編程接口,本身不存儲和處理數(shù)據(jù),依賴HDFS存儲數(shù)據(jù),依賴MapReduce處理數(shù)據(jù)。Hive支持使用自身提供的命令行CLI、簡單網(wǎng)頁HWI訪問方式,及通過Karmasphere、Hue、Qubole等工具的外部訪問。Hive在數(shù)據(jù)倉庫中的具體應用中,主要用于報表中心的報表分析統(tǒng)計上。在Hadoop集群上構(gòu)建的數(shù)據(jù)倉庫由多個Hive進行管理,具體實現(xiàn)采用Hive HA原理的方式,實現(xiàn)一臺超強“hive。Impala作為新一代開源大數(shù)據(jù)分析引擎,支持實時計算,并在性能上比Hive高出330倍,甚至在將來的某一天可能會超過Hive的使用率而成為Hadoop上最流行的實時計算平臺。本章最后以單詞統(tǒng)計為例,詳細介紹了如何使用Hive進行簡單編程。附錄:主講教師單位:廈門大學計算機科學系E-mail: ziyulin個人網(wǎng)頁:/linziyu數(shù)據(jù)庫實驗室網(wǎng)站:主講教師:林子雨掃一掃訪問個人主頁林子雨,男,1978年出生,博士(畢業(yè)于北京大學),現(xiàn)為廈門大學計算機科學系助理教授(講師),曾
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度球隊官方賽事官方合作伙伴贊助協(xié)議2篇
- 2024年在建工程抵押協(xié)議3篇
- 2023九年級語文上冊 第三單元 寫作 議論要言之有據(jù)教學實錄 新人教版
- 2024版SPF豬飼養(yǎng)項目疫病防控與費用分擔合同3篇
- 2024年標準磚材料買賣合同版B版
- 2024秋五年級英語上冊 Module 2 Unit 2 How much cheese did you buy教學實錄 外研版(三起)
- 2024年防雷設(shè)備安裝與安全性能評估合同3篇
- 2024年教育器材采購合同示范3篇
- 九年級歷史上冊 第一單元 人類文明的開端 第2課 大河流域-人類文明的搖籃教學實錄 新人教版
- 臨沂職業(yè)學院《版面設(shè)計》2023-2024學年第一學期期末試卷
- 液壓升降機設(shè)計02
- 油墨檢驗報告表
- 科主任績效考核評分表1
- 第三講:蘇聯(lián)模式興衰
- LY/T 1754-2008國家濕地公園評估標準
- GB/T 5623-2008產(chǎn)品電耗定額制定和管理導則
- GB/T 41002-2022兒童箱包通用技術(shù)規(guī)范
- 光學5(光的偏振)
- GB/T 20833-2007旋轉(zhuǎn)電機定子線棒及繞組局部放電的測量方法及評定導則
- 2023年企業(yè)法律顧問服務進度月報
- GA/T 1133-2014基于視頻圖像的車輛行駛速度技術(shù)鑒定
評論
0/150
提交評論