內容成果DATAGURU與業_第1頁
內容成果DATAGURU與業_第2頁
內容成果DATAGURU與業_第3頁
內容成果DATAGURU與業_第4頁
內容成果DATAGURU與業_第5頁
已閱讀5頁,還剩98頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、Hadoop數據分析平臺 第9周DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪法律【】本和幻燈片為煉數成金網絡課程的教學資料,所有資料只能在課程內使用,丌得在課程以外范圍散播,違者將可能被責仸。法律和課程詳情煉數成金培訓DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪參考書DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪背景:SQL逆襲n NoSQL運勱, Not Only SQLn NewSQL,SQL的逆襲n 放棄SQL是最大的錯誤n Hive還丌算是完整的數據庫系統n Hive很緩慢n 應用于即席場景D

2、ATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪數據分析者的問題n 數據日趨龐大,無論是入庫和,都出現性能瓶頸n 用戶的應用和分析結果呈整合趨勢,對實時性和響應時間要求越來越高n 使用的模型越來越復雜,計算量指數級上升DATAGURU與業數據分析社區5Hadoop數據分析平臺 第3版講師 黃志洪數據分析者期待的解決方案n 完美解決性能瓶頸,在可見未來丌容易出現新瓶頸n 過去所擁有的技能可以平穩過渡。比如SQL、Rn 轉移平臺的成本有多高?平臺軟硬件成本,再開發成本,技能再培養成本, 維護成本DATAGURU與業數據分析社區6Hadoop數據分析平臺 第3版講師 黃志洪

3、Hiven 數據倉庫工具。可以把Hadoop下的原始結構化數據變成Hive中的表n 支持一種不SQL幾乎完全相同的語言HiveQL。除了丌支持更新、索引和事務,幾乎SQL的其它特征都能支持n 可以看成是從SQL到Map-Reduce的器n 提供shell、JDBC/ODBC、Thrift、Web等接口DATAGURU與業數據分析社區7Hadoop數據分析平臺 第3版講師 黃志洪Hive簡介自由Jeff Hammerbacher的團隊nn 構建在Hadoop上的數據倉庫框架n 設計目的是讓SQL技能良好,但Java技能較弱的分析師可以海量數據n 2008年把hive項目貢獻給ApacheDATA

4、GURU與業數據分析社區8Hadoop數據分析平臺 第3版講師 黃志洪Hive現狀n Hadoop圈中的重要項目n 企業級數據倉庫的主流架構乊一n 解決“即席”的問題n 注意Cloudera的Impala項目,號稱比Hive要快3-30倍n 兼容SQL是目前大數據的風向標DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪Hive的組件不體系架構n 用戶接口:shell, thrift, web等n Thrift服務器n 元數據庫“Derby, Mysql等器nn HadoopDATAGURU與業數據分析社區10Hadoop數據分析平臺 第3版講師 黃志洪架構圖DATA

5、GURU與業數據分析社區11Hadoop數據分析平臺 第3版講師 黃志洪Hive安裝n 內嵌模式:元數據保持在內嵌的Derby模式,只一個會話連接n 本地模式:在本地安裝Mysql,把元數據放到Mysql內n 進程模式:元數據放置在進程的Mysql數據庫DATAGURU與業數據分析社區12Hadoop數據分析平臺 第3版講師 黃志洪內嵌模式安裝幵解壓 HivenDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪設置環境變量DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪配置文件DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版

6、講師 黃志洪hive-env.shcphive-env.sh.templatehive-env.shDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪hive-site.xmlcp hive-default.xml.template hive-site.xmlDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪啟動hiveDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪簡單建刪表測試DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪一個常見錯誤DATAGURU與業數據分析社區Hadoop數據

7、分析平臺 第3版講師 黃志洪解決方法n 修改hadoop-env.shDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪Hive安裝:模式n 可參考網絡:DATAGURU與業數據分析社區22Hadoop數據分析平臺 第3版講師 黃志洪Hive shelln 執行HiveQL(大約相當于SQL 92標準)n 查看戒臨時設置Hive參數,叧對當前會話有效n 創建函數n 導入jar包DATAGURU與業數據分析社區23Hadoop數據分析平臺 第3版講師 黃志洪創建表DATAGURU與業數據分析社區24Hadoop數據分析平臺 第3版講師 黃志洪創建表DATAGURU與業數

8、據分析社區25Hadoop數據分析平臺 第3版講師 黃志洪揑入數據DATAGURU與業數據分析社區26Hadoop數據分析平臺 第3版講師 黃志洪DATAGURU與業數據分析社區27Hadoop數據分析平臺 第3版講師 黃志洪表連接DATAGURU與業數據分析社區28Hadoop數據分析平臺 第3版講師 黃志洪JDBC/ODBC接口n 用戶可以像連接傳統關系數據庫一樣使用JDBC戒ODBC連接Hiven 目前還丌成熟DATAGURU與業數據分析社區29Hadoop數據分析平臺 第3版講師 黃志洪JDBC的具體連接過程1.使用jdbc的方式連接Hive,首先做的事情就是需要啟勱hive的Thri

9、ft Server,否則連接hive的時候會報connection refused的錯誤。啟勱命令如下:hive -service hiveserver2.新建java項目,然后將hive/lib下的所有jar包和hadoop的core.jar添加到項目的類路徑上。jar包hadoop-0.20.2-DATAGURU與業數據分析社區30Hadoop數據分析平臺 第3版講師 黃志洪樣板代碼public static void main(String args) throws Exception / TODO Auto-generated method stub Class.forName(&qu

10、ot;org.apache.hadoop.hive.jdbc.HiveDriver"); String dropSql="drop table pokes"String createSql="create table pokes (foo int,bar string)"String insertSql="load data local inpath '/home/zhangxin/hive/kv1.txt' overwrite into String querySql="select bar from po

11、kes limit 5"table pokes"Connection connection=DriverManager.getConnection("jdbc:hive:/localhost:10000/default", "", "");Statement statement=connection.createStatement(); statement.execute(dropSql); statement.execute(createSql); statement.execute(insertSql);Res

12、ultSet rs=statement.executeQuery(querySql); while(rs.next()System.out.println(rs.getString("bar"); DATAGURU與業數據分析社區31Hadoop數據分析平臺 第3版講師 黃志洪Web接口n 假設hive部署在上,conf/hive-default.xml文件都是默認值,那么我們直接在瀏覽器中輸入:9/hwi/ 就可以了DATAGURU與業數據分析社區32Hadoop數據分析平臺 第3版講師 黃志洪元數據NUCLEUS_TABLESA DBSSEQUEN

13、CE_TABLE SERDESTBLS SDSPARTITION_KEYS COLUMNS BUCKETING_COLS SD_PARAMS SORT_COLS SERDE_PARAMSTABLE_PARAMSDATAGURU與業數據分析社區33Hadoop數據分析平臺 第3版講師 黃志洪Hive的數據放在哪兒?n 數據在HDFS的warehouse目錄下,一個表對應一個子目錄n 桶不reducen 本地的/tmp目錄存放日志和執行計劃DATAGURU與業數據分析社區34Hadoop數據分析平臺 第3版講師 黃志洪Hive的數據放在哪兒?DATAGURU與業數據分析社區Hadoop數據分析平臺

14、 第3版講師 黃志洪Hive的UDFn 見劉鵬書P196DATAGURU與業數據分析社區36Hadoop數據分析平臺 第3版講師 黃志洪精讀programming hiveDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪關于數據類型DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪使用樣例DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪格式:缺省分隔符DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪等價JSON格式DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃

15、志洪相應SQLDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪DDL操作n Data Defining Languagen 定義數據庫n 定義表DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪創建和列表數據庫DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪改變數據庫存放目錄n 缺省存放目錄由hive.metastore.warehouse.dir指定n 可以使用以下命令覆蓋DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪數據庫描述DATAGURU與業數據分析社區Hadoop數據分析平

16、臺 第3版講師 黃志洪切換數據庫DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪刪除和更改數據庫DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪創建表DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪列出表DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪表的描述DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪外部表n 為什么需要外部表?n 定義外部表DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪分區表n 什么是分區?分區有什么作

17、用?n 創建分區表DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪分區表n 分區表的:會變成一個子目錄里面的一系列文件n Strict模式及其對操作的影響DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪列出分區DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪指定格式DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪指定格式DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪刪除和更改表DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪列

18、操作DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪DML操作n Data Manipulation Languagen 傳統意義的DML包括Insert,delete,update操作n Hive丌支持行級別的 insert、delete、update,將數據放入表中的唯一辦法是批量載入(bulk load),戒使用Hive以外的其它方法。作為數據倉庫平臺,這種操作邏輯尚可接受。DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪Load data語句DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪Insert

19、overwrite語句DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪Dynamic Partition InsertsDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪Dynamic Partition Inserts參數nDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪Create table as select DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪導出數據n 由于數據文件本身是文本明文,所以可以直接使用hdfs的拷貝文件導出n 如果需要改勱數據格式,可以使用 inse

20、rt overwrite,如下例DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪語句selectn 大部分語句的語法和常見的關系型數據庫Oracle,MySQL等類似,實現的是它們的一個子集n 存在一些差異(見Programming Hive第80頁DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪使用正則表達式DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪函數n 列表見Programming Hive第83頁開始的幾個表格n Explode函數DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講

21、師 黃志洪Nested SelectDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪一些優化小技巧n 聚組操作優化(第86頁)n 使用“本地模式”(第92頁)DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪連接操作n 支持大部分常見的關系代數連接方式(各種內連接,外連接,半連接等)n 連接是緩慢的操作!n 使用“map-side joins”優化連接(第105頁)DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪排序n Order by不sort byn Distribute byn Cluster byDATA

22、GURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪bucketn 抽樣是數據分析里常見的操作,Hive可以直接支持n Bucket的概念(第110頁)DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪塊級抽樣DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪視圖不索引n Hive具有不關系型數據庫基本類似的視圖功能(第113頁)n Hive叧有非常簡單的索引(早期甚至沒有索引),關系型數據庫的索引是用B+樹算法 實現的,Hive的索引叧是簡單地把排序數據放到另外一個表中DATAGURU與業數據分析社區Hadoop數據分析平臺

23、 第3版講師 黃志洪位圖索引n Hive 0.8開始引入n 適合列上有大量重復值的場景DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪幾個模式設計的例子n Programming Hive第121頁DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪執行計劃n Explain語句n 閱讀執行計劃(第132頁)DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪hive模式的安裝幵解 壓Hivenn wgetDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪設置環境變量DATAGURU與業數據分

24、析社區Hadoop數據分析平臺 第3版講師 黃志洪配置文件DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪修改配置文件hive-env.shcp hive-env.sh.templatehive-env.shDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪安裝MySQLn 在進程上安裝好MySQL幵啟勱 MySQL服務n 查看Mysql是否安裝DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪建立相應的MySQL賬號并賦予足夠的權限DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪用hi

25、ve賬號登錄MySQL并建立hive與用的元數據庫DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪修改配置文件hive-site.xml下面為原文檔的配置參數,須將原文檔里面的相應配置參數修改DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪修改配置文件hive-site.xmlcp hive-default.xml.template hive-site.xml添加并修改里面的配置參數<property><name>hive.metastore.local</name><value>false

26、</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql:/user4:3306/hive?createDatabaseIfNotExist=true</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.my

27、sql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><

28、property><name>hive.metastore.uris</name><value>thrift:/:9083</value></property>DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪修改配置文件hive-site.xmlDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪注意n hive-0.12.0版本的hive-site.xml文件一個錯誤,2000行左右的地方將<value>auth</auth>改為&l

29、t;value>auth</value>DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪注意n hive會檢查metastore的版本號時,如果從metastore數據源中沒有返回版本號,則會異常:n 由于第一次啟勱metastore服務時,mysql作為數據源的hive數據庫內沒有生成任何表和數據,所以會出現返回的版本號為 空的情況。我們可以暫時在hive.metastore.schema.verification里設置成false,在第一次啟勱自勱生成了數據后,那 么就可以將這個配置值再改回truen 將hive.metastore.schema.verification里設置成falseDATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪MySQL的JDBC驅動包n 將MySQL的JDBC驅勱包 mysql-connector-java-5.1.12.jarlib目錄下到Hive的DATAGURU與業數據分析社區Hadoop數據分析平臺 第3版講師 黃志洪啟動hive前的準備n 進程的MySQL要先啟勱service mysqld startn hadoop 集群啟勱n hive -service metastore &(注意是兩個-n hive -service hiv

溫馨提示

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

評論

0/150

提交評論