Hive簡介、應用場景及架構原理
Hive簡介、應用場景及架構原理
Hive背景介紹
Hive最初是Facebook為了滿足對海量社交網路資料的管理和機器學習的需求而產生和發展的。馬雲在退休的時候說網際網路現在進入了大資料時代,大資料是現在網際網路的趨勢,而hadoop就是大資料時代裡的核心技術,但是hadoop的mapreduce操作專業性太強,所以facebook在這些基礎上開發了hive框架,畢竟世界上會sql的人比會java的人多的多,hive可以說是學習hadoop相關技術的一個突破口,那些志立於投身hadoop技術開發的童鞋們,可以先從hive開始哦。那麼,hive是什麼呢?
Hive簡介
簡單的說:hive是基於hadoop的資料倉儲。
那麼為什麼說hive是基於Hadoop的呢?
之所以說hive是構建在Hadoop之上的資料倉儲,簡單的說是因為:
①資料儲存在hdfs上
②資料計算用mapreduce
下面我們來深入分析一下:
Hive是一種建立在Hadoop檔案系統上的資料倉儲架構,並對儲存在HDFS中的資料進行分析和管理;它可以將結構化的資料檔案對映為一張資料庫表,並提供完整的 SQL 查詢功能,可以將 SQL 語句轉換為 MapReduce 任務進行執行,通過自己的 SQL 去查詢分析需要的內容,這套 SQL 簡稱 Hive SQL(HQL),使不熟悉 MapReduce 的使用者也能很方便地利用 SQL 語言對資料進行查詢、彙總、分析。同時,這個語言也允許熟悉 MapReduce 開發
者們開發自定義的mappers和reducers來處理內建的mappers和reducers無法完成的複雜的
分析工作。Hive還允許使用者編寫自己定義的函式UDF,用來在查詢中使用。Hive中有3種
UDF:User Defined Functions(UDF)、User Defined Aggregation
Functions(UDAF)、User Defined Table Generating Functions(UDTF)。也就是說對
儲存在HDFS中的資料進行分析和管理,我們不想使用手工,我們建立一個工具吧,那麼這個工具就可以是hive。
Hive常見的應用場景
Hive 並不適合那些需要低延遲的應用;
Hive 的最佳使用場合是大資料集的批處理作業,例如,網路日誌分析。
(1)日誌分析:大部分網際網路公司使用hive進行日誌分析,包括百度、淘寶等。
1)統計網站一個時間段內的pv、uv
2)多維度資料分析
(2)海量結構化資料離線分析
Hive的特點(優缺點)
(一)hive的優點
(1)簡單容易上手:提供了類SQL查詢語言HQL
(2)可擴充套件:為超大資料集設計了計算/擴充套件能力(MR作為計算引擎,HDFS作為儲存系統)
一般情況下不需要重啟服務Hive可以自由的擴充套件叢集的規模。
(3)提供統一的後設資料管理
(4)延展性:Hive支援使用者自定義函式,使用者可以根據自己的需求來實現自己的函式
(5)容錯:良好的容錯性,節點出現問題SQL仍可完成執行
(二)hive的缺點(侷限性)
(1)hive的HQL表達能力有限
1)迭代式演算法無法表達,比如pagerank
2)資料探勘方面,比如kmeans
(2)hive的效率比較低
1)hive自動生成的mapreduce作業,通常情況下不夠智慧化
2)hive調優比較困難,粒度較粗
3)hive可控性差
Hive最後總結
簡單容易上手:提供了類SQL查詢語言HQL
可擴充套件:為超大資料集設計了計算/擴充套件能力(MR作為計算引擎,HDFS作為儲存系統)
延展性:Hive支援使用者自定義函式,使用者可以根據自己的需求來實現自己的函式
容錯:良好的容錯性,節點出現問題SQL仍可完成執行
hive的HQL表達能力有限,比如迭代式演算法無法表達
hive自動生成的mapreduce作業,通常情況下不夠智慧化
hive調優比較困難,粒度較粗
hive可控性差
Hive的預設儲存格式:TEXTFILE
相關文章
- 7.3 應用場景簡介
- ZooKeeper核心原理及應用場景
- hive時間日期函式及典型場景應用Hive函式
- HDFS應用場景、原理、基本架構及使用方法概述架構
- Fiddler(一)Fiddler介紹及應用場景
- 01 . ELK Stack簡介原理及部署應用
- Tornado原理淺析及應用場景探討
- 海外IP池的工作原理及應用場景
- ProxySQL簡介原理及讀寫分離應用SQL
- Redis的資料結構及應用場景Redis資料結構
- RabbitMQ 的應用場景以及基本原理介紹MQ
- RabbitMQ的應用場景以及基本原理介紹MQ
- 詳解 Serverless 架構的 6 大應用場景Server架構
- Mybatis-Plus的應用場景及注入SQL原理分析MyBatisSQL
- Hbase和Hive的特點,和應用場景Hive
- 堆排序原理及其應用場景排序
- 資料湖架構及概念簡介架構
- 面向NLP場景應用的智慧輔助建模(一)簡介
- PyFlink 最新進展解讀及典型應用場景介紹
- Flutter 在流式場景下的架構設計與應用Flutter架構
- RabbitMQ核心元件及應用場景MQ元件
- redis應用場景及例項Redis
- 輪換代理介紹及適用場景介紹
- Webpack 下使用 web workers 及 基本原理 和 應用場景Web
- Scrapy架構及資料流圖簡介架構
- kafka入門:簡介、使用場景、設計原理、主要配置及叢集搭建(轉)Kafka
- MySQL原理簡介—2.InnoDB架構原理和執行流程MySql架構
- 圖資料庫及應用場景資料庫
- Flink基本原理與應用場景
- Zookeeper基礎原理&應用場景詳解
- WebSocket 簡介及應用例項Web
- Lucene介紹及簡單應用
- HDFS架構及原理架構
- 加推時序系統RTS實現原理及應用簡介
- Hive架構Hive架構
- Quartz核心原理之架構及基本元素介紹quartz架構
- Flume架構以及應用介紹[轉]架構
- Android中mmap原理及應用簡析Android