日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学习笔记Hive(一)—— Hive简介

發布時間:2025/3/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习笔记Hive(一)—— Hive简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Hive設計思想

(了解)
Facebook用戶社交數據存儲與處理

Facebook是美國的一個社交網站 ,于2004年2月4日上線。主要創始人為美國人馬克·扎克伯格。Facebook是世界排名領先的照片分享站點。

根據Comscore咨詢公司的數據顯示,2008年5月Facebook全球獨立訪問用戶首次超過了競爭對手Myspace,前者五月獨立訪問用戶達到了1.239億,頁面瀏覽量達到500.6億。2009年12月,Facebook的獨立人次達到了4.69億,其綜合瀏覽量增長了141個百分點,在09年末達到了1930億。

1.1、Hive由來

Hive是Facebook開發的,構建于Hadoop集群之上的數據倉庫應用。2008年Facebook將Hive項目貢獻給Apache,成為開源項目。

Hive最初是由Facebook設計的,是基于Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,并提供簡單的類SQL查詢語言(稱為HiveQL)。

底層將HiveQL語句轉換為MapReduce任務運行,它允許熟悉SQL的用戶基于Hadoop框架分析數據。

優點:學習成本低,對于簡單的統計分析,不必開發專門的MapReduce程序,直接通過HiveQL即可實現。


二、Hive體系結構

  • CLI:Cli 啟動的時候,會同時啟動一個 Hive 副本。

  • JDBC客戶端:封裝了Thrift,java應用程序,可以通過指定的主機和端口連接到在另一個進程中運行的hive服務器

  • ODBC客戶端:ODBC驅動允許支持ODBC協議的應用程序連接到Hive。

  • WUI 接口:是通過瀏覽器訪問 Hive

  • Thrift服務器
    基于socket通訊,支持跨語言。Hive Thrift服務簡化了在多編程語言中運行Hive的命令。綁定支持C++,Java,PHP,Python和Ruby語言

  • 解析器

    • 編譯器:完成 HQL 語句從詞法分析、語法分析、編譯、優化以及執行計劃的生成。
    • 優化器是一個演化組件,當前它的規則是:列修剪,謂詞下壓。
    • 執行器會順序執行所有的Job。如果Task鏈不存在依賴關系,可以采用并發執行的方式執行Job。
  • 元數據庫

    • Hive的數據由兩部分組成:數據文件和元數據。元數據用于存放Hive庫的基礎信息,它存儲在關系數據庫中,如 mysql、derby。元數據包括:數據庫信息、表的名字,表的列和分區及其屬性,表的屬性,表的數據所在目錄等。
  • Hadoop

    • Hive 的數據文件存儲在 HDFS 中,大部分的查詢由 MapReduce 完成。(對于包含 * 的查詢,比如 select * from tbl 不會生成 MapRedcue 作業)

2.1、運行機制

  • 用戶通過用戶接口連接Hive,發布Hive SQL
  • Hive解析查詢并制定查詢計劃
  • Hive將查詢轉換成MapReduce作業
  • Hive在Hadoop上執行MapReduce作業

補充知識點

① 用戶接口主要有三個:CLI,Client和WUI.其中最常用的是CLI,CLI啟動的時候,會同時啟動一個Hive副本。Client是Hive的客戶端,用戶連接至Hive Server。在啟動Client模式的時候,需要指出Hive Server所在節點,并且在該節點啟動Hive Server。WUI是通過瀏覽器訪問Hive。

② Hive將元數據存儲在數據庫中,如mysql、derby。Hive中的元數據包括表的名字,表的列和分區以及屬性,表的屬性(是否為外部表等),表的數據所在目錄等。

③ 解釋器、編輯器、優化器完成HQL查詢語句從詞法分析、語法分析、編譯、優化以及查詢計劃的生成。生成的查詢計劃存儲在HDFS中,并在隨后有MapReduce調用執行。

④ Hive的數據存儲在HDFS中,大部分的查詢、計算由MapReduce完成

三、Hive應用場景

3.1、Hive設計特點

  • Hive 不支持對數據的改寫和添加,所有的數據都是在加載的時候確定的。
  • 支持索引,加快數據查詢。
  • 不同的存儲類型,例如,文本文件、序列化文件。
  • 將元數據保存在關系數據庫中,減少了在查詢中執行語義檢查時間。
  • 可以直接使用存儲在Hadoop 文件系統中的數據。
  • 內置大量用戶函數UDF 來操作時間、字符串和其他的數據挖掘工具,支持用戶擴展UDF 函數來完成內置函數無法實現的操作。
  • 類SQL 的查詢方式,將SQL 查詢轉換為MapReduce 的job 在Hadoop集群上執行。
  • 編碼跟Hadoop同樣使用UTF-8字符集。

3.2、Hive的優勢

  • 解決了傳統關系數據庫在大數據處理上的瓶頸。適合大數據的批量處理。
  • 充分利用集群的CPU計算資源、存儲資源,實現并行計算。
  • Hive支持標準SQL語法,免去了編寫MR程序的過程,減少了開發成本。
  • 具有良好的擴展性,拓展功能方便。

3.3、Hive的劣勢

  • Hive的HQL表達能力有限:有些復雜運算用HQL不易表達。
  • Hive效率低:Hive自動生成MR作業,通常不夠智能。

針對Hive運行效率低下的問題,促使人們去尋找一種更快,更具交互性的分析框架。 SparkSQL 的出現則有效的提高了Sql在Hadoop 上的分析運行效率。

3.4、應用場景

適用場景

  • 海量數據的存儲處理
  • 數據挖掘
  • 海量數據的離線分析

不適用場景

  • 復雜的機器學習算法
  • 復雜的科學計算
  • 聯機交互式實時查詢

總結

以上是生活随笔為你收集整理的学习笔记Hive(一)—— Hive简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。