国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Hive進(jìn)階Day06

這篇具有很好參考價(jià)值的文章主要介紹了Hive進(jìn)階Day06。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、MapReduce的計(jì)算過程

二、Yarn的資源調(diào)度

1、yarn的資源調(diào)度策略

三、Hive的語法樹

四、數(shù)據(jù)開發(fā)

五、數(shù)據(jù)倉庫

六、數(shù)據(jù)倉庫開發(fā)流程

七、數(shù)倉分層

八、ETL和ELT


一、MapReduce的計(jì)算過程

分布式計(jì)算框架

需要編寫代碼執(zhí)行,執(zhí)行時(shí)會(huì)數(shù)據(jù)所在服務(wù)器上運(yùn)行相同的計(jì)算代碼

計(jì)算過程分為map 和reduce過程

map對(duì)多份數(shù)據(jù)進(jìn)行拆分計(jì)算

reduce將分開的map結(jié)果合并一起計(jì)算

map的計(jì)算程序數(shù)量由文件塊個(gè)數(shù)據(jù)決定,每個(gè)map計(jì)算一個(gè)塊的數(shù)據(jù)

reduce的個(gè)數(shù)默認(rèn)是一個(gè);在進(jìn)行數(shù)據(jù)拆分存儲(chǔ)時(shí),reduce個(gè)數(shù)由分區(qū)數(shù)和分桶數(shù)決定

map將數(shù)據(jù)傳遞給reduce過程稱為shuffle過程

包含 分區(qū),排序,合并

Map階段

1-按照塊數(shù)量進(jìn)行split的塊數(shù)據(jù)讀取

2-split切割后的數(shù)據(jù)傳遞給對(duì)應(yīng)的map進(jìn)行處理,會(huì)對(duì)數(shù)據(jù)轉(zhuǎn)為kv (張三,1) (張三,1),(李四,1)

3-map將處理的后的數(shù)據(jù)寫入buffer緩存區(qū)

4-對(duì)緩沖區(qū)內(nèi)的數(shù)據(jù)進(jìn)行spill溢出(讀取緩沖區(qū)內(nèi)的數(shù)據(jù))

5-對(duì)讀取的數(shù)據(jù)進(jìn)行分區(qū),將數(shù)據(jù)拆分多份

6-對(duì)每份拆分的數(shù)據(jù)進(jìn)行排序 sort

7-將拆分的數(shù)據(jù)寫入不同的文件

8-在將每次溢出的數(shù)據(jù)合并merge在一起,保存同一文件,文件是臨時(shí)文件,計(jì)算后會(huì)刪除

Reduce階段

1-根據(jù)的分區(qū)數(shù)創(chuàng)建出多個(gè)reduce

2-每個(gè)reduce從不同的map中fetch獲取相同分區(qū)的文件數(shù)據(jù)

3-在將fetch后的文件合并,對(duì)合并后的數(shù)據(jù)進(jìn)行排序

4-reduce對(duì)合并后的文件數(shù)據(jù)進(jìn)行計(jì)算

5-reduce對(duì)結(jié)果輸出到hdfs的目錄下

二、Yarn的資源調(diào)度

分布式資源調(diào)度,管理整個(gè)hadoop集群的所有服務(wù)器資源

6.7章節(jié)

  • ResourceManger

    • 負(fù)責(zé)處理所有計(jì)算資源申請(qǐng)

  • NodeManager

    • 負(fù)責(zé)資源空間(container)的創(chuàng)建

  • ApplicationMaster

    • 管理計(jì)算任務(wù),只有產(chǎn)生了mapreduce計(jì)算才會(huì)運(yùn)行ApplicationMaster

    • 負(fù)責(zé)具體的資源分配

      • map使用多少

      • reduce使用多少

1-mapreduce提交計(jì)算任務(wù)給RM(ResourceManager)

2-RM中的applicationmanager負(fù)責(zé)創(chuàng)建applicationMaster進(jìn)程

3-applicationMaster和applicationmanager保持通訊

4-applicationMaster找RM中的ResourceScheduler(資源調(diào)度器)申請(qǐng)計(jì)算需要的資源

5-applicationMaster通知對(duì)應(yīng)的NodeManger創(chuàng)建資源空間container

6-在資源空間中先運(yùn)行map階段的計(jì)算,先運(yùn)行reduce階段的計(jì)算

7-map和reduce運(yùn)行期間會(huì)將自身狀態(tài)信息匯報(bào)給applicationMaster

8-計(jì)算完成后,applicationMaster通知NodeManger釋放資源

9-資源釋放后再通知applicationmanager把自身(applicationMaster)關(guān)閉釋放資源

1、yarn的資源調(diào)度策略

當(dāng)有多個(gè)計(jì)算任務(wù)同時(shí)請(qǐng)求yarn進(jìn)行計(jì)算,如何分配資源給每個(gè)計(jì)算任務(wù)?

  • 先進(jìn)先出

    • 誰先搶到資源誰使用所有資源

    • 資源利用效率低

    • 如果遇到一個(gè)計(jì)算時(shí)間較長(zhǎng)的任務(wù),保資源占用后。其他的任務(wù)就無法計(jì)算

  • 容量調(diào)度

    • 將資源分成多份

      • 不同計(jì)算任務(wù)使用不同的資源大小

  • 公平調(diào)度

    • 資源全部給一個(gè)計(jì)算任務(wù)使用,但是當(dāng)計(jì)算任務(wù)中的某個(gè)map或reduce計(jì)算完成后,可以將自身資源釋放掉給其他計(jì)算任務(wù)使用

      • 5個(gè)map,其中有兩個(gè)map計(jì)算完成,就可以先釋放掉兩個(gè)資源,給他任務(wù)使用,不同等待所有任務(wù)計(jì)算完成在釋放

三、Hive的語法樹

  • 解析器

    • 解析sql關(guān)鍵詞轉(zhuǎn)為語法數(shù)據(jù)

  • 分析器

    • 分析語法格式,字段類型等是否正確

  • 優(yōu)化器

    • 謂詞下推

      • 調(diào)整jion和where執(zhí)行順序

    • 列值裁剪

  • 執(zhí)行器

    • 將語法中的邏輯轉(zhuǎn)為mapreduce的計(jì)算java代碼交給MR執(zhí)行

四、數(shù)據(jù)開發(fā)

數(shù)據(jù)開發(fā)主要分兩種

  • 操作型處理,叫聯(lián)機(jī)事務(wù)處理OLTP(On-Line Transaction Processing)

    • 對(duì)數(shù)據(jù)進(jìn)行事務(wù)操作,保證數(shù)據(jù)操作的安全性

    • 事務(wù)特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)

    • 原子性:一個(gè)sql語句的執(zhí)行是不可拆分的,能完整執(zhí)行得到結(jié)果,不被搶占資源

      • select * from (select * from tb2) tb;

    • 一致性

      • 多表數(shù)據(jù)寫入時(shí),數(shù)據(jù)是一致性

        • 訂單表

          • 小米手機(jī) 1

        • 商品表

          • 小米手機(jī) 99

    • 隔離性

      • 程序員張三 update from order set stock=old_stock-num where id=1

        • 在更新數(shù)據(jù)之前會(huì)先查詢剩余庫存的

      • 程序員李四 update from order set stock=90 where id=1

      • 保證每個(gè)sql執(zhí)行的任務(wù)是獨(dú)立的,此時(shí)任務(wù)就要按順序執(zhí)行語句

    • 持久性

      • 數(shù)據(jù)會(huì)持久存儲(chǔ)在磁盤上

    • 業(yè)務(wù)開發(fā)使用到數(shù)據(jù)庫都屬于聯(lián)機(jī)事務(wù)處理

      • 業(yè)務(wù)開發(fā)(網(wǎng)站或程序)進(jìn)行的數(shù)據(jù)操作對(duì)安全性要求比較高,所有采用的數(shù)據(jù)操作方式是聯(lián)機(jī)事務(wù)處理

  • 分析型處理,叫聯(lián)機(jī)分析處理OLAP(On-Line Analytical Processing)

    • 大數(shù)據(jù)的數(shù)據(jù)開發(fā)主要進(jìn)行的是聯(lián)機(jī)分析處理

      • 對(duì)數(shù)據(jù)進(jìn)行查詢計(jì)算,得到結(jié)果進(jìn)行分析

      • 數(shù)據(jù)一般是一次寫入,多次讀取

      • 大數(shù)據(jù)開發(fā)不涉及數(shù)據(jù)的刪除,也不修改數(shù)據(jù)

五、數(shù)據(jù)倉庫

數(shù)據(jù)倉庫就是對(duì)公司的過往歷史數(shù)據(jù)進(jìn)行計(jì)算分析,為公司決策提供數(shù)據(jù)支撐

歷史數(shù)據(jù)的數(shù)據(jù)量比較大,就需要采用大數(shù)據(jù)技術(shù)實(shí)現(xiàn)數(shù)據(jù)倉庫開發(fā)

使用HiveSQL對(duì)海量數(shù)據(jù)采用結(jié)構(gòu)化數(shù)據(jù)方式進(jìn)行計(jì)算

數(shù)倉開發(fā)本質(zhì)就是將文件數(shù)據(jù)轉(zhuǎn)為了結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分析計(jì)算的

數(shù)倉特征

  • 面向主題的(Subject-Oriented )

    • 根據(jù)分析內(nèi)容采集相關(guān)數(shù)據(jù)進(jìn)行計(jì)算

    • 每個(gè)分析方向就是一個(gè)主題

  • 集成的(Integrated)

    • 將相關(guān)主題的數(shù)據(jù)收集在一起進(jìn)行計(jì)算,形成一個(gè)大的寬表

    • 銷售主題開發(fā)

      • 訂單表,訂單商品表,訂單評(píng)價(jià),退款訂單表

  • 非易失的(Non-Volatile)

    • 數(shù)倉數(shù)據(jù)不容易丟失,也不會(huì)進(jìn)行刪除和修改

  • 時(shí)變的(Time-Variant )

    • 隨著分析需求的改變,數(shù)倉中的數(shù)據(jù)也在不斷變化,隨著時(shí)間推移,統(tǒng)計(jì)的字段計(jì)算數(shù)據(jù)也在發(fā)生變化

    • 用戶表 用戶名,用戶性別,用戶年齡,用戶地址,用戶手機(jī)號(hào)

六、數(shù)據(jù)倉庫開發(fā)流程

  • 設(shè)計(jì)主題計(jì)算需求

    • 數(shù)據(jù)分析師或者數(shù)據(jù)產(chǎn)品經(jīng)理

  • 數(shù)據(jù)來源

    • Mysql中的業(yè)務(wù)數(shù)據(jù)

    • 文件數(shù)據(jù) excel文件,csv文件,json,log

  • 采集數(shù)據(jù)源數(shù)據(jù)

    • kettle

    • sqoop

    • datax

    • 代碼采集

  • 對(duì)采集的數(shù)據(jù)進(jìn)行清洗轉(zhuǎn)化,將處理的后的數(shù)據(jù)寫入到hdfs中

    • 數(shù)據(jù)采集時(shí)單獨(dú)崗位

      • ETL開發(fā)工程師

  • 數(shù)據(jù)的計(jì)算

    • mapreduce --> hiveSQL

    • spark

    • flink

    • 數(shù)據(jù)計(jì)算和結(jié)果保存屬于數(shù)倉開發(fā)崗

  • 將計(jì)算的結(jié)果數(shù)據(jù)存儲(chǔ)到指定位置

    • hdfs

    • habse

    • es

    • Mysql

    • 數(shù)據(jù)計(jì)算和結(jié)果保存屬于數(shù)倉開發(fā)崗

  • 對(duì)結(jié)果數(shù)據(jù)進(jìn)行BI展示

    • fineBI

    • powerBI

    • superset

    • BI工程師

七、數(shù)倉分層

將數(shù)據(jù)的計(jì)算過程拆分成多個(gè)部分就是數(shù)倉分層

分層實(shí)現(xiàn)就是創(chuàng)建不同數(shù)據(jù)庫

數(shù)倉最基本的三個(gè)分層

  • ODS(old data service)

    • 保存原始數(shù)據(jù),采集清洗后的數(shù)據(jù)會(huì)被寫入ods層

    • create databases ods;

  • DW(Data WareHouse)

    • 數(shù)倉開發(fā)層,對(duì)數(shù)據(jù)進(jìn)行計(jì)算

    • create databases dw;

  • APP(application)

    • 結(jié)果數(shù)據(jù)層

    • 不同主題下的數(shù)據(jù)保存在對(duì)應(yīng)表目錄下

    • create databases app;

對(duì)dw層可以進(jìn)行分層的拆分

dwb 基礎(chǔ)數(shù)據(jù) 在這一層進(jìn)行數(shù)據(jù)的過濾

dwd 數(shù)據(jù)詳情層 進(jìn)行數(shù)據(jù)的關(guān)聯(lián)

對(duì)數(shù)據(jù)的計(jì)算流程拆分后,形式一個(gè)完成數(shù)據(jù)開發(fā)流程,在流程中的每個(gè)關(guān)節(jié)都可以單獨(dú)進(jìn)行開發(fā)

select gender,avg(age) from tb1 join tb2 where dt = 2021-10-10 group by gender
?
?
?
1-數(shù)據(jù)的過濾
insert into tb1_where select * from tb1 where dt = 2021-10-10
insert into tb2_where select * from tb2 where dt = 2021-10-10
?
insert into tb1_where select * from tb1 where age > 20
insert into tb2_where select * from tb2 where name='張三'
?
2-關(guān)聯(lián)表數(shù)據(jù)據(jù)
-- 新的表中保存了關(guān)聯(lián)后的所有數(shù)據(jù)
insert into tb1_tb2_where select * from tb1_where join tb2_where 
?
?
3-數(shù)據(jù)分組計(jì)算
select gender,avg(age) from tb1_tb2_where group by gender
select city,avg(age) from tb1_tb2_where group by city

八、ETL和ELT

  • extract 數(shù)據(jù)抽取

  • transform 數(shù)據(jù)清洗轉(zhuǎn)化

  • load 數(shù)據(jù)的導(dǎo)入

ETL 屬于數(shù)據(jù)采集工作 通過采集工具采集的對(duì)應(yīng)的數(shù)據(jù)內(nèi)容,對(duì)內(nèi)容清洗轉(zhuǎn)化,在將清洗轉(zhuǎn)化后的數(shù)據(jù)寫入hdfs

ELT是將etl的開發(fā)流程進(jìn)行了調(diào)整,使用采集工具采集數(shù)據(jù),將數(shù)據(jù)直接寫入hdfs,清洗轉(zhuǎn)化過程可以使用hiveSQL在數(shù)倉中執(zhí)行文章來源地址http://www.zghlxwxcb.cn/news/detail-855558.html

到了這里,關(guān)于Hive進(jìn)階Day06的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)倉庫 & Apache Hive

    數(shù)據(jù)倉庫 & Apache Hive

    目錄 一、數(shù)據(jù)分析 1、數(shù)據(jù)倉庫 1.1、數(shù)倉專注分析 1.2、數(shù)倉主要特征 1.3、數(shù)據(jù)倉庫主流開發(fā)語言--SQL 2、Apache Hive 2.1、為什么使用Hive? 2.2、Hive和Hadoop關(guān)系 2.3、Hive架構(gòu)圖、各組件功能 2.4、Hive安裝部署 2.4.1、Hive概念介紹 2.4.2、安裝前準(zhǔn)備 ? ? 數(shù)據(jù)倉庫 (英語:Data Warehous

    2024年01月22日
    瀏覽(34)
  • Hive數(shù)據(jù)倉庫簡(jiǎn)介

    Hive數(shù)據(jù)倉庫簡(jiǎn)介

    Hive起源于Facebook,F(xiàn)acebook公司有著大量的日志數(shù)據(jù),而Hadoop是實(shí)現(xiàn)了MapReduce模式開源的分布式并行計(jì)算的框架,可輕松處理大規(guī)模數(shù)據(jù)。然而MapReduce程序?qū)κ煜ava語言的工程師來說容易開發(fā),但對(duì)于其他語言使用者則難度較大。因此Facebook開發(fā)團(tuán)隊(duì)想設(shè)計(jì)一種使用SQL語言對(duì)日

    2024年02月15日
    瀏覽(24)
  • Hive 數(shù)據(jù)倉庫介紹

    Hive 數(shù)據(jù)倉庫介紹

    目錄 ?編輯 一、Hive 概述 1.1 Hive產(chǎn)生的原因 1.2 Hive是什么? 1.3 Hive 特點(diǎn) 1.4 Hive生態(tài)鏈關(guān)系 二、Hive架構(gòu) 2.1 架構(gòu)圖 2.2 架構(gòu)組件說明 2.2.1 Interface 2.2.1.1 CLI 2.2.1.2 JDBC/ODBC 2.2.1.3 WebUI 2.2.2 MetaData 2.2.3 MetaStore 2.2.4 Hiveserver2 2.2.5 Driver 2.2.5.1 解釋器 2.2.5.2 編譯器 2.2.5.3 優(yōu)化器 2.2.5.4 執(zhí)行

    2024年02月07日
    瀏覽(28)
  • hive數(shù)據(jù)倉庫課后答案

    一、 填空題 1.?dāng)?shù)據(jù)倉庫的目的是構(gòu)建面向 ? ? 分析? ? ? ?? 的集成化數(shù)據(jù)環(huán)境。 2.Hive是基于 ? ? Hadoop? ? ? ?? 的一個(gè)數(shù)據(jù)倉庫工具。 3.?dāng)?shù)據(jù)倉庫分為3層,即 ? ? ?源數(shù)據(jù)層? ? ? ? 、 ? ? 數(shù)據(jù)應(yīng)用層? ? ? ? 和數(shù)據(jù)倉庫層。 4.?dāng)?shù)據(jù)倉庫層可以細(xì)分為 ? ? ?明細(xì)層

    2023年04月08日
    瀏覽(24)
  • 【Hive】——數(shù)據(jù)倉庫

    【Hive】——數(shù)據(jù)倉庫

    數(shù)據(jù)倉庫(data warehouse):是一個(gè)用于存儲(chǔ),分析,報(bào)告的數(shù)據(jù)系統(tǒng) 目的:是構(gòu)建面向分析的集成化數(shù)據(jù)環(huán)境,分析結(jié)果為企業(yè)提供決策支持 特點(diǎn): 數(shù)據(jù)倉庫本身不產(chǎn)生任何數(shù)據(jù),其數(shù)據(jù)來源于不同外部系統(tǒng) 數(shù)據(jù)倉庫也不需要消費(fèi)任何的書,其結(jié)果開放給各個(gè)外部應(yīng)用使用

    2024年02月04日
    瀏覽(20)
  • 安裝hive數(shù)據(jù)倉庫

    安裝hive數(shù)據(jù)倉庫

    需要安裝部署完成的Hadoop的環(huán)境如果不會(huì)搭建的可以參考: 卸載Centos7自帶的mariadb mariadb-libs-5.5.64-1.el7.x86_64是使用 rpm -qa|grep mariadb 查詢出來的名稱 安裝mysql 安裝mysql時(shí)可能會(huì)出現(xiàn)的問題 1、依賴檢測(cè)失敗 問題很明顯了就是依賴的問題,下載他說的依賴就好了 安裝hive 上傳并且

    2024年02月14日
    瀏覽(22)
  • Hive數(shù)據(jù)倉庫

    Hive數(shù)據(jù)倉庫

    數(shù)據(jù)倉庫(英語:Data Warehouse,簡(jiǎn)稱數(shù)倉、DW),是一個(gè)用于存儲(chǔ)、分析、報(bào)告的數(shù)據(jù)系統(tǒng)。 數(shù)據(jù)倉庫的目的是構(gòu)建面相分析的集成化數(shù)據(jù)環(huán)境,分析結(jié)果為企業(yè)提供決策支持(Decision Support)。 數(shù)據(jù)倉庫本身并不“產(chǎn)生”任何數(shù)據(jù),其數(shù)據(jù)來源不同外部系統(tǒng); 同時(shí)數(shù)據(jù)倉庫

    2024年02月15日
    瀏覽(25)
  • 【Hive_06】企業(yè)調(diào)優(yōu)2(數(shù)據(jù)傾斜優(yōu)化、HQL優(yōu)化等)

    【Hive_06】企業(yè)調(diào)優(yōu)2(數(shù)據(jù)傾斜優(yōu)化、HQL優(yōu)化等)

    數(shù)據(jù)傾斜問題,通常是指參與計(jì)算的數(shù)據(jù)分布不均,即某個(gè)key或者某些key的數(shù)據(jù)量遠(yuǎn)超其他key,導(dǎo)致在shuffle階段,大量相同key的數(shù)據(jù)被發(fā)往同一個(gè)Reduce,進(jìn)而導(dǎo)致該Reduce所需的時(shí)間遠(yuǎn)超其他Reduce,成為整個(gè)任務(wù)的瓶頸。 比如對(duì)于一張表的province_id字段,其中99%的值都為1,則

    2024年01月16日
    瀏覽(39)
  • Hive數(shù)據(jù)倉庫行轉(zhuǎn)列

    查了很多資料發(fā)現(xiàn)網(wǎng)上很多文章都是轉(zhuǎn)發(fā)和抄襲,有些問題。這里分享一個(gè)自己項(xiàng)目中使用的行轉(zhuǎn)列例子,供大家參考。代碼如下: 如果是在SparkSQL或Presto平臺(tái),或者阿里云的MaxCompute平臺(tái),還可使用如下方式:

    2024年02月21日
    瀏覽(28)
  • 數(shù)據(jù)倉庫hive的安裝說明

    數(shù)據(jù)倉庫hive的安裝說明

    1.按照下面語句順序依次輸入,安裝mysql ????????$sudo apt-get install mysql-server ????????$sudo apt-get install mysql-client ????????$sudo apt-get install libmysqlclient-dev 2.連接MySQL數(shù)據(jù)庫 (1)進(jìn)入mysql ? ? ? ? $sudo mysql -u root –p (2)使用mysql ????????use mysql; (3)修改mysql用戶密

    2024年03月10日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包