《Hadoop技術原理》課件-10.數據倉庫Hive_第1頁
《Hadoop技術原理》課件-10.數據倉庫Hive_第2頁
《Hadoop技術原理》課件-10.數據倉庫Hive_第3頁
《Hadoop技術原理》課件-10.數據倉庫Hive_第4頁
《Hadoop技術原理》課件-10.數據倉庫Hive_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Hadoop技術原理數據倉庫HiveHive簡介01Hive簡介01Hive是基于Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,并提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。Hive簡介02Hive在Hadoop生態圈中的位置如下:Hive簡介03什么是Hive?Hive是一個翻譯器:SQL--->Hive引擎--->MapReduce程序Hive是構建在HDFS上的一個數據倉庫(DataWarehouse)Hive支持SQL(SQL99標準的一個子集)HiveHDFS表目錄分區目錄數據文件桶文件減低學習MapReduce的成功,使DBA、運維人員可以通過SQL來實現為什么使用Hive?Hive體系結構04Hive基本架構Hive體系結構05Hive工作原理Hive的安裝06Metastore三種運行模式Hive的安裝07了解Metastore配置屬性hive-site.xml屬性名稱類型默認值描述hive.metastore.warehouse.dirURI/usr/hive/warehouse相對于的目錄,托管表就存儲在這里hive.metastore.uris逗號分隔的URI未設定如果未設置(默認值),則使用當前的metastore,否則連接到由URI列表指定要連接的遠程metastore服務器。如果有多個遠程服務器,則客戶端便以輪詢方式連接javax.jdo.option.ConnectionURLURIjdbc:derby:;databaseName=metastore_db;create=trueJDBCURL,mysql示例:jdbc:mysql://localhost:3306/hive?useSSL=falsejavax.jdo.option.ConnectionDriverNameStringorg.apache.derby.jdbc.EmbeddedDriverJDBC驅動器的類名javax.jdo.option.ConnectionUserNameStringAPPJDBC用戶名javax.jdo.option.ConnectionPasswordStringmineJDBC密碼Hive的安裝08Hive安裝步驟解壓hive安裝包配置環境變量配置conf/hive-site.xml如果是derby,初始化:schematool-dbTypederby-initSchema如果是mysql,將MySQL驅動拷貝到lib下,初始化:schematool-dbTypemysql-initSchema啟動hive:輸入hiveHiveQL操作02HiveQL01Hive支持的數據類型基本數據類型(不區分大小寫)TINYINT/SMALLINT/INT/BIGINT:整數類型FLOAT/DOUBLE:浮點數類型BOOLEAN:布爾類型STRING:字符串類型復雜數據類型Array:數組類型,由一系列相同數據類型的元素組成Map:集合類型,包含key->value鍵值對,可以通過key來訪問元素。Struct:結構類型,可以包含不同數據類型的元素。這些元素可以通過”點語法”的方式來得到所需要的元素時間類型Date:從Hive0.12.0開始支持Timestamp:從Hive0.8.0開始支持HiveQL02建表命令常用的:CREATE[TEMPORARY][EXTERNAL]TABLEtable_name(col_namedata_type[COMMENTcol_comment],...)[PARTITIONEDBY(col_namedata_type[COMMENTcol_comment],...)][LOCATIONhdfs_path]ROWFORMATDELIMITED[FIELDSTERMINATEDBYchar][CLUSTEREDBY(col_name,col_name,...)[SORTEDBY(col_name[ASC|DESC],...)]INTOnum_bucketsBUCKETS]HiveQL03數據加載命令LOADDATA[LOCAL]INPATH'filepath'[OVERWRITE]INTOTABLEtablename[PARTITION(partcol1=val1,partcol2=val2...)]

LOADDATA[LOCAL]INPATH'filepath'[OVERWRITE]INTOTABLEtablename[PARTITION(partcol1=val1,partcol2=val2...)][INPUTFORMAT'inputformat'SERDE'serde'](3.0orlater)數據模型04內部表(托管表)與數據庫中的Table在概念上是類似每一個Table在Hive中都有一個相應的目錄存儲數據所有的Table數據(不包括ExternalTable)都保存在這個目錄中刪除表時,元數據與數據都會被刪除數據模型05外部表指向已經在HDFS中存在的數據它和內部表在元數據的組織上是相同的,而實際數據的存儲則有較大的差異外部表只有一個過程,加載數據和創建表同時完成,并不會移動到數據倉庫目錄中,只是與外部數據建立一個鏈接。當刪除一個外部表時,僅刪除該鏈接數據模型06分區表Partition對應于數據庫的Partition列的密集索引在Hive中,表中的一個Partition對應于表下的一個目錄,所有的Partition的數據都存儲在對應的目錄中創建分區表創建表時,可以指定按某個字段進行分區數據模型07桶表桶表與之前的MapReduce中的Hash分區很像。目的是讓數據分散存放,避免熱塊。桶表是對數據進行哈希取值,然后放到不同文件中存儲。需要設置環境變量:sethive.enforce.bucketing=true;數據模型08視圖視圖是一種虛表,是一個邏輯概念;可以跨越多張表視圖建立在已有表的基礎上,視圖賴以建立的這些表稱為基表視圖可以簡化復雜的查詢,但不能提高查詢的效率數據查詢09普通查詢基本語法selectfieldsfromtable_name;多表查詢子查詢只支持:內連接,外連接,左半不支持非相等的join條件hive只支持:from和where子句中的子查詢條件函數case....when....是標準的SQL語句Hive不支持數據刪除或修改客戶端操作10首先啟動Hive遠程服務:hiveserver2pom.xml配置依賴<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.6.0</version></dependency><dependency><groupId>org.apache.hive</groupId><artifactId>hive-jdbc</artifactId><version>2.3.0</version></dependency>co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論