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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop生态hive(一)介绍

發(fā)布時間:2023/12/3 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop生态hive(一)介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、Hive是什么

? ? ? 起源自facebook由Jeff Hammerbacher領(lǐng)導(dǎo)的團隊,構(gòu)建在Hadoop上的數(shù)據(jù)倉庫框架。設(shè)計目的是讓SQL技能良好,但Java技能較弱的分析師可以查詢海量數(shù)據(jù)。2008年facebook把hive項目貢獻給Apache。

? ? ? ?由facebook開源,最初用于解決海量結(jié)構(gòu)化的日志數(shù)據(jù)統(tǒng)計問題。ETL(Extraction-Transformation-Loading)數(shù)據(jù)抽取、加載、處理工具,構(gòu)建在Hadoop之上的數(shù)據(jù)倉庫。數(shù)據(jù)計算使用MR,數(shù)據(jù)存儲使用HDFS。Hive 定義了一種類 SQL 查詢語言——HQL,類似SQL,但不完全相同。通常用于進行離線數(shù)據(jù)處理(采用MapReduce),可認為是一個HQL?MR的語言翻譯器。

? ? ? ?作為數(shù)據(jù)倉庫工具,可以把Hadoop下的原始結(jié)構(gòu)化數(shù)據(jù)變成Hive中的表 ,支持一種與SQL幾乎完全相同的語言HiveQL。除了不支持更新、索引和事務(wù),幾乎SQL的其它特征都能支持??梢钥闯墒菑腟QL到Map-Reduce的映射器 。提供shell、JDBC/ODBC、Thrift、Web等接口。?

?

二、為什么使用Hive

簡單,容易上手,提供了類SQL查詢語言HQL。為超大數(shù)據(jù)集設(shè)計的計算/擴展能力 ,MR作為計算引擎,HDFS作為存儲系統(tǒng) 。統(tǒng)一的元數(shù)據(jù)管理(HCalalog) ,可與Pig、Presto等共享 。

(1)Hive優(yōu)點與長處

95%的Facebook任務(wù)由Hive寫成,開發(fā)周期通常十分鐘
Hive的所有執(zhí)行,最終是轉(zhuǎn)換為MapReduce
Hive的長處,在于數(shù)據(jù)統(tǒng)計如:pv,uv,ip的計算
group by,join
………………
精力放在數(shù)據(jù)邏輯上,優(yōu)化數(shù)據(jù)結(jié)構(gòu)和性能,而不再關(guān)注前人已經(jīng)發(fā)明的輪子,不同同事之間的成果,可以方便的服用

(2)Hive缺點

Hive的HQL表達的能力有限:迭代式算法無法表達;有些復(fù)雜運算用HQL不易表達

Hive效率較低:Hive自動生成MapReduce作業(yè),通常不夠智能;HQL調(diào)優(yōu)困難,粒度較粗;可控性差

?

三、Hive架構(gòu)

(1)Hive的基本架構(gòu)

1)用戶接口
包括 CLI,JDBC/ODBC,WebUI
2)元數(shù)據(jù)存儲(metastore)
默認存儲在自帶的數(shù)據(jù)庫derby中,線上使用時一般換為MySQL
3)驅(qū)動器(Driver)
解釋器、編譯器、優(yōu)化器、執(zhí)行器
4)Hadoop
用 MapReduce 進行計算,用 HDFS 進行存儲

(2)Hive的數(shù)據(jù)存儲

1)Hive沒有專門的數(shù)據(jù)存儲格式,也沒有為數(shù)據(jù)建立索引,用戶可以非常自由的組織 Hive 中的表。
2)Hive 中所有的數(shù)據(jù)都存儲在 HDFS 中,Hive 中包含以下數(shù)據(jù)模型:Table,External Table,Partition,Bucket。
3)Hive 中的 Table 和數(shù)據(jù)庫中的 Table 在概念上是類似的,每一個 Table 在 Hive 中都有一個相應(yīng)的目錄存儲數(shù)據(jù)。
例如表 tbl_pv放在目錄 /wh/tbl_pv中,這里wh為hive-site.xml中${hive.metastore.warehouse.dir} 指定的數(shù)據(jù)倉庫目錄。
4)Hive 表中的一個 Partition 對應(yīng)于表下的一個目錄,所有的 Partition 的數(shù)據(jù)都存儲在對應(yīng)的目錄中。
例如:tbl_pv 表中包含 ds 和 city 兩個 Partition,則對應(yīng)于 ds = 20090801, ctry = US 的 HDFS 子目錄為:/wh/tbl_pv/ds=20090801/ctry=US;對應(yīng)于 ds = 20090801, ctry = CA 的 HDFS 子目錄為/wh/pvs/ds=20090801/ctry=CA

5)Buckets 對指定列計算 hash,根據(jù) hash 值切分數(shù)據(jù),每一個 Bucket 對應(yīng)一個文件。可用于采樣:

CREATE TABLE sales( id INT, name STRING)PARITIONED BY (ds STRING)CLUSTERED BY (id) INTO 32 BUCKETS; SELECT id FROM sales TABLESAMPLE (BUCKET 1 OUT OF 32);

6)External Table 指向已經(jīng)在 HDFS 中存在的數(shù)據(jù),可以創(chuàng)建 Partition

?

?

?

總結(jié)

以上是生活随笔為你收集整理的Hadoop生态hive(一)介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。