版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
大數(shù)據(jù)存儲(chǔ)技術(shù)與應(yīng)用案例所有教學(xué)資源,我們給;所有復(fù)雜操作,我們做;圖書附贈(zèng),永久免費(fèi),只為老師用書更方便課件教案微課掃碼題庫(kù)建課互評(píng)考試平臺(tái)
學(xué)習(xí)工具0102030405申請(qǐng)簽到功能建課、建班(無(wú)需操作,技術(shù)專員負(fù)責(zé)搭建)系統(tǒng)自動(dòng)記錄考勤分創(chuàng)建簽到學(xué)生掃碼簽到掃碼申請(qǐng)免費(fèi)開(kāi)通簽到功能→動(dòng)態(tài)二維碼,防作弊
考勤記錄自動(dòng)統(tǒng)計(jì),匯入學(xué)生總成績(jī)課堂簽到項(xiàng)目一大數(shù)據(jù)存儲(chǔ)入門項(xiàng)目三列式數(shù)據(jù)庫(kù)HBase項(xiàng)目二數(shù)據(jù)倉(cāng)庫(kù)Hive項(xiàng)目四文檔數(shù)據(jù)庫(kù)MongoDB項(xiàng)目五圖數(shù)據(jù)庫(kù)Neo4j項(xiàng)目六鍵值數(shù)據(jù)庫(kù)Redis項(xiàng)目七NewSQL數(shù)據(jù)庫(kù)CockroachDB數(shù)據(jù)倉(cāng)庫(kù)Hive項(xiàng)目二任務(wù)一采用遠(yuǎn)程模式部署Hive任務(wù)二構(gòu)建網(wǎng)站流量數(shù)據(jù)倉(cāng)庫(kù)任務(wù)三操作網(wǎng)站流量數(shù)據(jù)在數(shù)據(jù)倉(cāng)庫(kù)在整合數(shù)據(jù)、提高數(shù)據(jù)質(zhì)量、支持實(shí)時(shí)決策和實(shí)現(xiàn)業(yè)務(wù)分析等方面發(fā)揮著重要作用。Hive是一個(gè)基于Hadoop生態(tài)系統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù)工具,它能夠有效處理大規(guī)模數(shù)據(jù)集,常用于構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)、處理和分析數(shù)據(jù)等。本項(xiàng)目將介紹數(shù)據(jù)倉(cāng)庫(kù)和Hive的相關(guān)知識(shí),采用遠(yuǎn)程模式部署Hive,構(gòu)建網(wǎng)站流量數(shù)據(jù)倉(cāng)庫(kù),操作網(wǎng)站流量數(shù)據(jù)。項(xiàng)目導(dǎo)讀項(xiàng)目目標(biāo)熟悉數(shù)據(jù)倉(cāng)庫(kù)的特點(diǎn)、應(yīng)用場(chǎng)景和分層架構(gòu)。熟悉Hive的架構(gòu)、存儲(chǔ)結(jié)構(gòu)和表的存儲(chǔ)格式。掌握Hive中數(shù)據(jù)庫(kù)和表的基本操作。掌握Hive中導(dǎo)入數(shù)據(jù)、查詢數(shù)據(jù)和導(dǎo)出數(shù)據(jù)的基本操作。能采用遠(yuǎn)程模式部署Hive。能根據(jù)業(yè)務(wù)需求合理設(shè)計(jì)并構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)。能有效操作業(yè)務(wù)中的數(shù)據(jù),包括向數(shù)據(jù)倉(cāng)庫(kù)導(dǎo)入數(shù)據(jù)、查詢數(shù)據(jù)和導(dǎo)出數(shù)據(jù)等。增強(qiáng)遵守規(guī)則的意識(shí),養(yǎng)成按規(guī)矩行事的習(xí)慣。學(xué)習(xí)共享精神,實(shí)現(xiàn)資源的共同利用,從而推動(dòng)社會(huì)的共同進(jìn)步和繁榮。采用遠(yuǎn)程模式部署Hive任務(wù)一Hive支持3種部署模式,分別為內(nèi)嵌模式、本地模式和遠(yuǎn)程模式。在實(shí)際開(kāi)發(fā)中,通常采用遠(yuǎn)程模式部署Hive。采用這種模式部署Hive時(shí),需要配置Hive的服務(wù)端和客戶端。服務(wù)端通常將元數(shù)據(jù)存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中,并通過(guò)HiveServer2服務(wù)管理元數(shù)據(jù)、處理來(lái)自客戶端的用戶請(qǐng)求、執(zhí)行查詢并返回結(jié)果??蛻舳送ㄟ^(guò)Beeline工具與Hive服務(wù)端進(jìn)行交互,允許用戶編寫并提交查詢語(yǔ)句到服務(wù)端執(zhí)行。采用遠(yuǎn)程模式部署Hive之前,我們先來(lái)學(xué)習(xí)一下數(shù)據(jù)倉(cāng)庫(kù)的特點(diǎn)、應(yīng)用場(chǎng)景和分層架構(gòu),以及Hive的架構(gòu)、存儲(chǔ)結(jié)構(gòu)和表的存儲(chǔ)格式。任務(wù)準(zhǔn)備問(wèn)題1:簡(jiǎn)述Hive和關(guān)系型數(shù)據(jù)庫(kù)中數(shù)據(jù)類型的異同。全班學(xué)生以3~5人為一組,各組選出組長(zhǎng)。組長(zhǎng)組織組員掃碼觀看“Hive和關(guān)系型數(shù)據(jù)庫(kù)的異同”視頻,討論并回答下列問(wèn)題。問(wèn)題2:簡(jiǎn)述Hive和關(guān)系型數(shù)據(jù)庫(kù)中表存儲(chǔ)格式的異同。Hive和關(guān)系型數(shù)據(jù)庫(kù)的異同一、數(shù)據(jù)倉(cāng)庫(kù)概述定義:數(shù)據(jù)倉(cāng)庫(kù)是企業(yè)決策支持系統(tǒng)中不可或缺的一部分,它為企業(yè)提供了一個(gè)集中管理數(shù)據(jù)的平臺(tái),用于存儲(chǔ)歷史數(shù)據(jù)、進(jìn)行復(fù)雜的查詢和分析,從而幫助企業(yè)做出更明智的商業(yè)決策。特征(1)主題性(2)集成性(3)穩(wěn)定性(4)歷史性1、數(shù)據(jù)倉(cāng)庫(kù)的特點(diǎn)特征(1)主題性(2)集成性(3)穩(wěn)定性(4)歷史性數(shù)據(jù)倉(cāng)庫(kù)是針對(duì)企業(yè)的某個(gè)特定主題或問(wèn)題而設(shè)計(jì)的,其中的數(shù)據(jù)是按照主題進(jìn)行組織和存儲(chǔ)的。主題是一個(gè)抽象概念,每個(gè)主題通常對(duì)應(yīng)一個(gè)或多個(gè)表,這些表包含與主題相關(guān)的數(shù)據(jù)。一、數(shù)據(jù)倉(cāng)庫(kù)概述一、數(shù)據(jù)倉(cāng)庫(kù)概述特征(1)主題性(2)集成性(3)穩(wěn)定性(4)歷史性數(shù)據(jù)倉(cāng)庫(kù)可以從多個(gè)數(shù)據(jù)源中獲取數(shù)據(jù),并將數(shù)據(jù)集成到一個(gè)統(tǒng)一的數(shù)據(jù)模型中,以確保數(shù)據(jù)的一致性和準(zhǔn)確性。1、數(shù)據(jù)倉(cāng)庫(kù)的特點(diǎn)一、數(shù)據(jù)倉(cāng)庫(kù)概述特征(1)主題性(2)集成性(3)穩(wěn)定性(4)歷史性數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)一般以只讀格式保存,不可以修改,以確保數(shù)據(jù)的完整性和穩(wěn)定性。例如,在電信公司的數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)了用戶的通話記錄。這些通話記錄在存入數(shù)據(jù)倉(cāng)庫(kù)后,一般不會(huì)被刪除或修改。當(dāng)需要分析用戶在過(guò)去幾個(gè)月或幾年的通話行為變化時(shí),能夠保證數(shù)據(jù)的原始性和完整性,確保分析結(jié)果是基于穩(wěn)定的數(shù)據(jù)得到的。1、數(shù)據(jù)倉(cāng)庫(kù)的特點(diǎn)一、數(shù)據(jù)倉(cāng)庫(kù)概述特征(1)主題性(2)集成性(3)穩(wěn)定性(4)歷史性數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)通常包含歷史信息,可以對(duì)企業(yè)的發(fā)展歷程和未來(lái)趨勢(shì)做出定量分析和預(yù)測(cè)。例如,銀行的數(shù)據(jù)倉(cāng)庫(kù)會(huì)記錄客戶賬戶余額的變化情況。每個(gè)月都會(huì)有新的賬戶交易數(shù)據(jù)添加到數(shù)據(jù)倉(cāng)庫(kù)中,并且歷史的賬戶余額數(shù)據(jù)和交易記錄都會(huì)被保存。這樣可以分析客戶在不同時(shí)間段的資金流動(dòng)情況,比如分析某個(gè)客戶過(guò)去一年的儲(chǔ)蓄趨勢(shì)或者消費(fèi)模式的變化。1、數(shù)據(jù)倉(cāng)庫(kù)的特點(diǎn)一、數(shù)據(jù)倉(cāng)庫(kù)概述2、數(shù)據(jù)倉(cāng)庫(kù)的應(yīng)用場(chǎng)景一、數(shù)據(jù)倉(cāng)庫(kù)概述定義:數(shù)據(jù)倉(cāng)庫(kù)分層是一種用于管理數(shù)據(jù)倉(cāng)庫(kù)的方法,它能將數(shù)據(jù)倉(cāng)庫(kù)劃分為多個(gè)邏輯層次。每個(gè)層次都有特定的功能和作用,不同層次的數(shù)據(jù)具有不同的組織、存儲(chǔ)和管理方式。數(shù)據(jù)應(yīng)用層數(shù)據(jù)倉(cāng)庫(kù)層源數(shù)據(jù)層3、數(shù)據(jù)倉(cāng)庫(kù)分層架構(gòu)一、數(shù)據(jù)倉(cāng)庫(kù)概述源數(shù)據(jù)層源數(shù)據(jù)層又稱ODS(operationdatastore)層,主要用于保存原始數(shù)據(jù),完成數(shù)據(jù)積存。源數(shù)據(jù)層通常采用ETL工具為數(shù)據(jù)倉(cāng)庫(kù)提供數(shù)據(jù),使源數(shù)據(jù)和數(shù)據(jù)倉(cāng)庫(kù)之間保持?jǐn)?shù)據(jù)同步。該層的數(shù)據(jù)通常保存在磁盤中,即使計(jì)算機(jī)突然停機(jī)或崩潰,數(shù)據(jù)也不會(huì)丟失。一、數(shù)據(jù)倉(cāng)庫(kù)概述源數(shù)據(jù)層源數(shù)據(jù)層又稱ODS(operationdatastore)層,主要用于保存原始數(shù)據(jù),完成數(shù)據(jù)積存。源數(shù)據(jù)層通常采用ETL工具為數(shù)據(jù)倉(cāng)庫(kù)提供數(shù)據(jù),使源數(shù)據(jù)和數(shù)據(jù)倉(cāng)庫(kù)之間保持?jǐn)?shù)據(jù)同步。該層的數(shù)據(jù)通常保存在磁盤中,即使計(jì)算機(jī)突然停機(jī)或崩潰,數(shù)據(jù)也不會(huì)丟失。高手點(diǎn)拔ETL(extract-transform-load)工具是用于提取、轉(zhuǎn)換和加載數(shù)據(jù)的軟件工具。ETL工具能夠從各種數(shù)據(jù)源中提取數(shù)據(jù);然后轉(zhuǎn)換和整理提取到的數(shù)據(jù);最后將數(shù)據(jù)加載到目標(biāo)數(shù)據(jù)倉(cāng)庫(kù)或數(shù)據(jù)分析平臺(tái)。提問(wèn):ETL的作用是什么?一、數(shù)據(jù)倉(cāng)庫(kù)概述數(shù)據(jù)倉(cāng)庫(kù)層數(shù)據(jù)倉(cāng)庫(kù)層又稱DW(datawarehouse)層,存儲(chǔ)的數(shù)據(jù)是對(duì)源數(shù)據(jù)層中數(shù)據(jù)的輕度匯總,即按照一定的主題匯總的數(shù)據(jù)。數(shù)據(jù)倉(cāng)庫(kù)層可以繼續(xù)劃分為明細(xì)(datawarehousedetail,DWD)層、中間(datawarehousemiddle,DWM)層和業(yè)務(wù)(datawarehouseservice,DWS)層。一、數(shù)據(jù)倉(cāng)庫(kù)概述數(shù)據(jù)倉(cāng)庫(kù)層數(shù)據(jù)倉(cāng)庫(kù)層又稱DW(datawarehouse)層,存儲(chǔ)的數(shù)據(jù)是對(duì)源數(shù)據(jù)層中數(shù)據(jù)的輕度匯總,即按照一定的主題匯總的數(shù)據(jù)。數(shù)據(jù)倉(cāng)庫(kù)層可以繼續(xù)劃分為明細(xì)(datawarehousedetail,DWD)層、中間(datawarehousemiddle,DWM)層和業(yè)務(wù)(datawarehouseservice,DWS)層。一、數(shù)據(jù)倉(cāng)庫(kù)概述數(shù)據(jù)倉(cāng)庫(kù)層數(shù)據(jù)倉(cāng)庫(kù)層又稱DW(datawarehouse)層,存儲(chǔ)的數(shù)據(jù)是對(duì)源數(shù)據(jù)層中數(shù)據(jù)的輕度匯總,即按照一定的主題匯總的數(shù)據(jù)。數(shù)據(jù)倉(cāng)庫(kù)層可以繼續(xù)劃分為明細(xì)(datawarehousedetail,DWD)層、中間(datawarehousemiddle,DWM)層和業(yè)務(wù)(datawarehouseservice,DWS)層。高手點(diǎn)拔①指標(biāo)是用于分析、衡量和評(píng)估業(yè)務(wù)性能的度量值。在銷售業(yè)務(wù)分析中,可以將指標(biāo)設(shè)置為銷售量、銷售額、銷售增長(zhǎng)率等,以便從不同的角度分析業(yè)務(wù)數(shù)據(jù)。②粒度是指數(shù)據(jù)在數(shù)據(jù)倉(cāng)庫(kù)中的組織層次和細(xì)節(jié)程度。在銷售業(yè)務(wù)分析中,可以對(duì)數(shù)據(jù)進(jìn)行細(xì)粒度匯總,如日銷售額;也可以對(duì)數(shù)據(jù)進(jìn)行粗粒度匯總,如月銷售額。③維度是對(duì)業(yè)務(wù)過(guò)程中的某方面進(jìn)行描述的屬性集合。在銷售業(yè)務(wù)分析中,可以從時(shí)間、地點(diǎn)、產(chǎn)品和客戶等維度描述訂單。④維度建模法是數(shù)據(jù)倉(cāng)庫(kù)構(gòu)建過(guò)程中常用的一種邏輯設(shè)計(jì)手段,它通過(guò)維度表和事實(shí)表設(shè)計(jì)數(shù)據(jù)模型。其中,事實(shí)表用于存儲(chǔ)業(yè)務(wù)指標(biāo),維度表用于描述事實(shí)表的維度。在實(shí)際應(yīng)用中,用戶可以根據(jù)業(yè)務(wù)需求省略中間層,直接從明細(xì)層讀取數(shù)據(jù)并計(jì)算寬表的指標(biāo),然后將寬表存放在業(yè)務(wù)層。一、數(shù)據(jù)倉(cāng)庫(kù)概述數(shù)據(jù)應(yīng)用層數(shù)據(jù)應(yīng)用層又稱DA(dataapplication)層,用于為數(shù)據(jù)挖掘、數(shù)據(jù)可視化、數(shù)據(jù)分析等實(shí)際業(yè)務(wù)場(chǎng)景提供數(shù)據(jù)。數(shù)據(jù)應(yīng)用層的數(shù)據(jù)通常來(lái)源于數(shù)據(jù)倉(cāng)庫(kù)層。二、Hive的架構(gòu)定義:Hive是開(kāi)源的數(shù)據(jù)倉(cāng)庫(kù)工具,它提供了一種類似于SQL(structuredquerylanguage)的查詢語(yǔ)言(HiveQL),用于管理和查詢大規(guī)模數(shù)據(jù)。Hive使用MapReduce實(shí)現(xiàn)分布式計(jì)算Hive使用HDFS存儲(chǔ)數(shù)據(jù)用戶接口Thrift服務(wù)驅(qū)動(dòng)器元數(shù)據(jù)庫(kù)二、Hive的架構(gòu)用戶接口Hive提供了CLI、編程接口(如JDBC、ODBC)和Web接口等用戶接口。通過(guò)用戶接口,用戶可以執(zhí)行查詢數(shù)據(jù)、管理表和管理數(shù)據(jù)庫(kù)等操作。CLI(commandlineinterface)是命令行界面,用戶可以在該界面上輸入命令或語(yǔ)句與計(jì)算機(jī)進(jìn)行交互。JDBC(Javadatabaseconnectivity)和ODBC(opendatabaseconnectivity)是用于連接數(shù)據(jù)庫(kù)和進(jìn)行數(shù)據(jù)庫(kù)交互的兩種標(biāo)準(zhǔn)接口。通過(guò)這些標(biāo)準(zhǔn)接口,用戶可以使用多種編程語(yǔ)言(如Java、Python、R等)訪問(wèn)Hive。高手點(diǎn)拔二、Hive的架構(gòu)Thrift服務(wù)提供了訪問(wèn)服務(wù)允許用戶使用不同的編程語(yǔ)言調(diào)用Hive接口。Thrift服務(wù)二、Hive的架構(gòu)驅(qū)動(dòng)器用于完成HiveQL語(yǔ)句的解析、編譯、優(yōu)化和MapReduce任務(wù)的生成。驅(qū)動(dòng)器二、Hive的架構(gòu)驅(qū)動(dòng)器解析器將用戶輸入的HiveQL語(yǔ)句轉(zhuǎn)換成抽象語(yǔ)法樹(shù)(abstractsyntaxtree,AST)。解析器會(huì)進(jìn)行語(yǔ)法檢查、語(yǔ)義分析和轉(zhuǎn)換操作,確保查詢語(yǔ)句的正確性和合法性。編譯器將抽象語(yǔ)法樹(shù)轉(zhuǎn)換成查詢塊,然后將查詢塊轉(zhuǎn)換成邏輯執(zhí)行計(jì)劃。優(yōu)化器對(duì)邏輯執(zhí)行計(jì)劃進(jìn)行優(yōu)化,提高查詢的性能。執(zhí)行器將優(yōu)化后的邏輯執(zhí)行計(jì)劃轉(zhuǎn)換成物理執(zhí)行計(jì)劃(一系列MapReduce任務(wù))。二、Hive的架構(gòu)元數(shù)據(jù)庫(kù)中含有表名、字段名、字段的數(shù)據(jù)類型、分區(qū)、表的存儲(chǔ)位置等信息。Hive的元數(shù)據(jù)可以存儲(chǔ)在不同的數(shù)據(jù)庫(kù)中,如MySQL數(shù)據(jù)庫(kù)、Oracle數(shù)據(jù)庫(kù)和Hive內(nèi)置的Derby數(shù)據(jù)庫(kù)等。元數(shù)據(jù)庫(kù)三、Hive的存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)庫(kù)(database)是一個(gè)目錄或命名空間,用于分類存儲(chǔ)表。可以避免不同表之間的命名沖突,確保表名的唯一性??梢苑诸惔鎯?chǔ)具有相關(guān)性的表,以便管理和查詢數(shù)據(jù)。表(table)是存儲(chǔ)和管理數(shù)據(jù)的基本結(jié)構(gòu)。表名、表的存儲(chǔ)位置、字段名、字段的數(shù)據(jù)類型等元數(shù)據(jù)存儲(chǔ)在元數(shù)據(jù)庫(kù)中。表中的實(shí)際數(shù)據(jù)存儲(chǔ)在對(duì)應(yīng)的HDFS目錄中。分區(qū)(partition)在Hive中,可以根據(jù)一個(gè)或多個(gè)分區(qū)字段的值對(duì)表中數(shù)據(jù)進(jìn)行分區(qū)存儲(chǔ),每個(gè)分區(qū)都對(duì)應(yīng)一個(gè)子目錄,每個(gè)分區(qū)的數(shù)據(jù)存儲(chǔ)在相應(yīng)的子目錄中。桶(bucket)在Hive中,可以根據(jù)一個(gè)或多個(gè)分桶字段的哈希值將表中數(shù)據(jù)分別存儲(chǔ)在固定數(shù)量的桶中。字段是指表中的一個(gè)列用于存儲(chǔ)一種特定類型的數(shù)據(jù)。字段的數(shù)據(jù)類型包括基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型?;緮?shù)據(jù)類型包括數(shù)值類型、日期/時(shí)間類型、字符串類型和布爾類型等;復(fù)雜數(shù)據(jù)類型包括數(shù)組(ARRAY)、映射(MAP)和結(jié)構(gòu)體(STRUCT)。四、Hive表的存儲(chǔ)格式在Hive中,常用的表存儲(chǔ)格式包括TextFile、SequenceFile、ORC(optimizedrowcolumnar)和Parquet等。表存儲(chǔ)格式描述存儲(chǔ)方式適用場(chǎng)景TextFile以文本形式存儲(chǔ)數(shù)據(jù),每行數(shù)據(jù)都以換行符分隔。創(chuàng)建Hive表時(shí),默認(rèn)使用該存儲(chǔ)格式存儲(chǔ)表中數(shù)據(jù)行式存儲(chǔ)適用于存儲(chǔ)和處理簡(jiǎn)單的非結(jié)構(gòu)化文本數(shù)據(jù)SequenceFile二進(jìn)制文件格式,將鍵值對(duì)序列化后按順序存儲(chǔ)行式存儲(chǔ)適用于順序讀寫大規(guī)模數(shù)據(jù)ORC存儲(chǔ)大規(guī)模數(shù)據(jù)的文件格式列式存儲(chǔ)適用于存儲(chǔ)和分析大規(guī)模數(shù)據(jù)。查詢過(guò)程中訪問(wèn)少量字段時(shí)性能較好Parquet針對(duì)分析型系統(tǒng)的高性能文件格式列式存儲(chǔ)適用于存儲(chǔ)和分析大規(guī)模數(shù)據(jù)。執(zhí)行并行查詢、字段裁剪等操作時(shí)性能較好任務(wù)實(shí)施
任務(wù)分析
Hive的運(yùn)行離不開(kāi)Hadoop集群環(huán)境,因此本書在Hadoop完全分布式集群中采用遠(yuǎn)程模式部署Hive。采用遠(yuǎn)程模式部署Hive需要配置Hive的服務(wù)端和客戶端,然后驗(yàn)證Hive是否配置成功。
實(shí)施步驟采用遠(yuǎn)程模式部署Hive任務(wù)實(shí)施
實(shí)施步驟1.配置Hive的服務(wù)端步驟1啟動(dòng)Worker1主機(jī)的瀏覽器,訪問(wèn)Hive的官方網(wǎng)站(),在首頁(yè)中選擇“Release”/“Release”選項(xiàng);然后在打開(kāi)的下載頁(yè)面中單擊“Downloadareleasenow!”鏈接文字;接著在打開(kāi)的頁(yè)面中單擊“/hive/”鏈接文字;接著在打開(kāi)的版本頁(yè)面中單擊“hive-3.1.3/”鏈接文字;最后在打開(kāi)的下載頁(yè)面中單擊“apache-hive-3.1.3-bin.tar.gz”鏈接文字,下載Hive安裝文件。本書將Worker1主機(jī)作為Hive的服務(wù)端,服務(wù)端需要安裝Hive和MySQL,并配置MySQL保存Hive元數(shù)據(jù)。(1)安裝Hive下載Hive安裝文件任務(wù)實(shí)施步驟2[hadoop@Worker1~]$sudotar-zxf~/下載/apache-hive-3.1.3-bin.tar.gz-C/usr/local[hadoop@Worker1~]$sudomv/usr/local/apache-hive-3.1.3-bin//usr/local/hive[hadoop@Worker1~]$sudochown-Rhadoop/usr/local/hive啟動(dòng)Worker1主機(jī)的終端,執(zhí)行如下命令,將Hive安裝文件解壓到“/usr/local”目錄中;然后將“apache-hive-3.1.3-bin”目錄重命名為“hive”;最后將該目錄的所有權(quán)限賦予hadoop用戶,使hadoop用戶有權(quán)限訪問(wèn)和操作“hive”目錄中的文件。任務(wù)實(shí)施執(zhí)行如下命令,打開(kāi)“.bashrc”配置文件;然后在文件首行添加如下配置信息,將Hive的可執(zhí)行文件路徑添加到系統(tǒng)的PATH環(huán)境變量中,以便在任意路徑下使用Hive;最后保存并關(guān)閉配置文件。步驟3[hadoop@Worker1~]$sudovim~/.bashrc#配置信息exportHIVE_HOME=/usr/local/hiveexportPATH=$PATH:$HIVE_HOME/bin執(zhí)行如下命令,使配置信息生效。[hadoop@Worker1~]$source~/.bashrc步驟4任務(wù)實(shí)施執(zhí)行如下命令,復(fù)制Hive安裝目錄中自帶的“hive-env.sh.template”配置文件,并將其重命名為“hive-env.sh”。步驟5[hadoop@Worker1~]$cd/usr/local/hive[hadoop@Worker1hive]$sudocp./conf/hive-env.sh.template
./conf/hive-env.sh執(zhí)行如下命令,打開(kāi)“hive-env.sh”配置文件;然后在文件首行添加如下配置信息,以便Hive與Hadoop進(jìn)行交互;最后保存并關(guān)閉配置文件。步驟6[hadoop@Worker1hive]$sudovim./conf/hive-env.sh#配置信息exportHADOOP_HOME=/usr/local/hadoopexportHIVE_CONF_DIR=/usr/local/hive/conf任務(wù)實(shí)施(2)安裝MySQL步驟1啟動(dòng)Worker1主機(jī)的瀏覽器,訪問(wèn)“/archives/c-j”,在打開(kāi)的頁(yè)面中選擇產(chǎn)品版本、操作系統(tǒng)和操作系統(tǒng)版本;然后單擊“Download”按鈕,下載MySQL驅(qū)動(dòng)程序文件。小提示MySQL驅(qū)動(dòng)程序文件需要根據(jù)個(gè)人安裝的虛擬機(jī)鏡像文件進(jìn)行選擇。例如,本書安裝的是RedHat8.7.0版本,則選擇對(duì)應(yīng)的操作系統(tǒng)RedHatEnterpriseLinux/OracleLinux和版本RedHatEnterpriseLinux8/OracleLinux8。下載MySQL驅(qū)動(dòng)程序文件任務(wù)實(shí)施執(zhí)行如下命令,將下載的MySQL驅(qū)動(dòng)程序文件解壓并安裝到“~/下載”目錄中。步驟2[hadoop@Worker1hive]$cd~/下載[hadoop@Worker1下載]$sudorpm2cpio~/下載/mysql-connector-j-8.0.33-1.el8.noarch.rpm|cpio-idmv步驟3
執(zhí)行如下命令,安裝MySQL服務(wù)器端。安裝過(guò)程中根據(jù)提示信息輸入“y”。[hadoop@Worker1下載]$sudoyuminstallmysql-server小提示如果使用yum命令安裝MySQL服務(wù)器端時(shí)出現(xiàn)“沒(méi)有被啟用的倉(cāng)庫(kù)”錯(cuò)誤,讀者可以參考本書配套素材中的“前置環(huán)境的搭建”文檔掛載光盤鏡像即可。任務(wù)實(shí)施步驟4執(zhí)行如下命令,啟動(dòng)MySQL并設(shè)置開(kāi)機(jī)自動(dòng)啟動(dòng),確保系統(tǒng)重啟后,MySQL服務(wù)可以自動(dòng)啟動(dòng),從而保證MySQL可以正常存儲(chǔ)Hive元數(shù)據(jù)。設(shè)置過(guò)程中根據(jù)提示信息輸入Worker1主機(jī)的密碼。[hadoop@Worker1下載]$sudosystemctlstartmysqld #啟動(dòng)MySQL#設(shè)置開(kāi)機(jī)自動(dòng)啟動(dòng)[hadoop@Worker1下載]$sudosystemctlenablemysqld[hadoop@Worker1下載]$systemctldaemon-reload步驟5執(zhí)行如下命令,查看MySQL的狀態(tài)。若出現(xiàn)“active(running)”,則證明MySQL啟動(dòng)成功。[hadoop@Worker1下載]$systemctlstatusmysqld任務(wù)實(shí)施按“Ctrl+Shift+Z”組合鍵關(guān)閉狀態(tài)信息;然后執(zhí)行如下命令,打開(kāi)MySQL的日志文件,查看MySQL的用戶名和密碼。步驟6[hadoop@Worker1下載]$sudocat/var/log/mysql/mysqld.log日志文件一般存放在“/var/log”目錄中,在該目錄中可以找到MySQL的日志文件(mysqld.log)。MySQL的日志文件中包含MySQL的用戶名和密碼等信息,從圖2-7中可以看出MySQL的用戶名為“root”,主機(jī)名為“l(fā)ocalhost”,密碼為空。高手點(diǎn)拔查看MySQL的用戶名和密碼任務(wù)實(shí)施執(zhí)行如下命令,登錄MySQL,出現(xiàn)“mysql>”命令提示符。步驟7[hadoop@Worker1下載]$mysql-hlocalhost-uroot步驟8執(zhí)行如下語(yǔ)句,修改MySQL的登錄密碼;然后退出MySQL。mysql>ALTERUSER'root'@'localhost'IDENTIFIEDBY'123456';mysql>QUIT;登錄MySQL任務(wù)實(shí)施[hadoop@Worker1下載]$mysql-uroot-p#切換至數(shù)據(jù)庫(kù)mysql,該數(shù)據(jù)庫(kù)中包含MySQL的用戶及其權(quán)限信息mysql>USEmysql;#設(shè)置root用戶可以從任何主機(jī)連接到MySQL數(shù)據(jù)庫(kù)mysql>UPDATEuserSEThost="%"WHEREuser="root";mysql>FLUSHPRIVILEGES; #刷新MySQL的權(quán)限表,使權(quán)限更改立即生效mysql>EXIT; #退出MySQL步驟9執(zhí)行如下命令和語(yǔ)句,登錄MySQL;然后修改MySQL用戶root的權(quán)限,允許該用戶從任何主機(jī)上連接MySQL,以便Worker2主機(jī)遠(yuǎn)程登錄MySQL;最后退出MySQL。任務(wù)實(shí)施(3)配置MySQL保存Hive元數(shù)據(jù)。步驟1執(zhí)行如下命令,將解壓的MySQL驅(qū)動(dòng)程序文件復(fù)制到“/usr/local/hive/lib”目錄中。[hadoop@Worker1下載]$cp~/下載/usr/share/java/mysql-connector-j.jar/usr/local/hive/lib#創(chuàng)建并打開(kāi)配置文件[hadoop@Worker1下載]$
sudovim/usr/local/hive/conf/hive-site.xml#配置信息<?xmlversion="1.0"encoding="UTF-8"standalone="no"?><?xml-stylesheettype="text/xsl"href="configuration.xsl"?><configuration><property><!--配置JDBC連接地址,并創(chuàng)建名為hive的數(shù)據(jù)庫(kù),用于存儲(chǔ)元數(shù)據(jù)信息-->
<name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>步驟2執(zhí)行如下命令,創(chuàng)建并打開(kāi)“hive-site.xml”配置文件;然后在文件中添加如下配置信息,以便Hive與MySQL進(jìn)行交互;最后保存并關(guān)閉配置文件。任務(wù)實(shí)施</property>
<property> <!--配置JDBC驅(qū)動(dòng)--> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <!--配置連接MySQL的用戶名--> <name>javax.jdo.option.ConnectionUserName</name><value>root</value> </property> <property> <!--配置連接MySQL的密碼--> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property></configuration>任務(wù)實(shí)施[hadoop@Worker1下載]$schematool-initSchema-dbTypemysql步驟3執(zhí)行如下命令,初始化MySQL,保證Hive能夠?qū)⒃獢?shù)據(jù)存儲(chǔ)在MySQL中,并且能夠訪問(wèn)和管理這些元數(shù)據(jù)。若出現(xiàn)“schemaToolcompleted”,則證明初始化成功。2.配置Hive的客戶端步驟1在Worker2主機(jī)上安裝Hive。本書將Worker2主機(jī)作為Hive的客戶端,客戶端只需要安裝Hive。步驟2啟動(dòng)Worker2主機(jī)的終端,執(zhí)行如下命令,新建并打開(kāi)“hive-site.xml”配置文件;然后在文件中添加如下配置信息,配置Hive的元數(shù)據(jù)服務(wù);最后保存并關(guān)閉配置文件。[hadoop@Worker2~]$sudovim/usr/local/hive/conf/hive-site.xml#配置信息<?xmlversion="1.0"encoding="UTF-8"standalone="no"?>任務(wù)實(shí)施<?xml-stylesheettype="text/xsl"href="configuration.xsl"?><configuration> <property><!--指定Hive不開(kāi)啟本地模式,否則會(huì)默認(rèn)使用本地元數(shù)據(jù)服務(wù)-->
<name>hive.metastore.local</name>
<value>false</value> </property> <property>
<!--配置元數(shù)據(jù)服務(wù)地址,Worker1即為服務(wù)端的主機(jī)名-->
<name>hive.metastore.uris</name><value>thrift://Worker1:9083</value> </property></configuration>任務(wù)實(shí)施3.驗(yàn)證Hive是否部署成功驗(yàn)證Hive是否部署成功,首先需要在Worker1主機(jī)上啟動(dòng)HiveServer2服務(wù);然后在Worker2主機(jī)上啟動(dòng)Beeline工具遠(yuǎn)程連接Worker1主機(jī)的HiveServer2服務(wù)。[hadoop@Master~]$cd/usr/local/hadoop/etc/hadoop[hadoop@Masterhadoop]$geditcore-site.xml#配置信息<property> <name>xyuser.hadoop.hosts</name> <value>*</value></property><property> <name>xyuser.hadoop.groups</name> <value>*</value></property>步驟1在Master主機(jī)上執(zhí)行如下命令,打開(kāi)“core-site.xml”配置文件;然后在<configuration></configuration>標(biāo)簽中添加如下配置信息,設(shè)置所有用戶可以代理hadoop用戶,保證代理用戶能夠以hadoop用戶的身份執(zhí)行相關(guān)操作;最后保存并關(guān)閉配置文件。任務(wù)實(shí)施步驟2使用同樣方法,在Worker1和Worker2主機(jī)的“core-site.xml”配置文件中添加配置信息,設(shè)置所有用戶可以代理hadoop用戶。步驟3在Master主機(jī)上執(zhí)行如下命令,啟動(dòng)HDFS和YARN。后續(xù)操作中,Worker2主機(jī)需要遠(yuǎn)程訪問(wèn)Worker1主機(jī),因此要設(shè)置用戶的訪問(wèn)權(quán)限,允許Worker2主機(jī)訪問(wèn)Worker1主機(jī),并能夠以hadoop用戶的身份執(zhí)行相關(guān)操作。實(shí)際操作中,讀者只需要根據(jù)自己的用戶名修改xyuser.<用戶名>.hosts和xyuser.<用戶名>.groups中的<用戶名>。高手點(diǎn)拔[hadoop@Masterhadoop]$start-dfs.sh[hadoop@Masterhadoop]$start-yarn.sh小提示如果HDFS處于啟動(dòng)狀態(tài),則應(yīng)該先執(zhí)行“stop-dfs.sh”命令關(guān)閉HDFS,再重新啟動(dòng)HDFS和YARN。任務(wù)實(shí)施步驟4在Worker1主機(jī)上執(zhí)行如下命令,啟動(dòng)HiveServer2服務(wù)。[hadoop@Worker1hadoop]$hiveserver2按“Ctrl+Shift+Z”組合鍵可以關(guān)閉HiveServer2服務(wù)。高手點(diǎn)拔步驟5在Worker1主機(jī)上啟動(dòng)一個(gè)新的終端,執(zhí)行如下命令,查看進(jìn)程。若顯示的進(jìn)程中含有RunJar,則證明HiveServer2服務(wù)啟動(dòng)成功。
[hadoop@Worker1~]$jps啟動(dòng)的進(jìn)程任務(wù)實(shí)施步驟6在Worker2主機(jī)上執(zhí)行如下命令,啟動(dòng)Beeline工具遠(yuǎn)程連接Worker1主機(jī)的HiveServer2服務(wù)。連接HiveServer2服務(wù)時(shí),需要輸入Worker1主機(jī)hadoop用戶的登錄密碼,輸入密碼后出現(xiàn)“0:jdbc:hive2://Worker1:10000/>”提示符,則證明遠(yuǎn)程連接成功,。[hadoop@Worker2hadoop]$beeline--hiveconfhive.server2.logging.
operation.level=NONE-ujdbc:hive2://Worker1:10000-nhadoop-p遠(yuǎn)程連接HiveServer2服務(wù)成功的界面任務(wù)實(shí)施步驟6在Worker2主機(jī)上執(zhí)行如下命令,啟動(dòng)Beeline工具遠(yuǎn)程連接Worker1主機(jī)的HiveServer2服務(wù)。連接HiveServer2服務(wù)時(shí),需要輸入Worker1主機(jī)hadoop用戶的登錄密碼,輸入密碼后出現(xiàn)“0:jdbc:hive2://Worker1:10000/>”提示符,則證明遠(yuǎn)程連接成功,。啟動(dòng)Beeline工具的同時(shí)連接到指定的HiveServer2服務(wù),命令格式如下。beeline-ujdbc:hive2://<host>:<port>-n<username>-p<password>其中,<host>為HiveServer2服務(wù)所在主機(jī)的主機(jī)名或IP地址;<port>為HiveServer2服務(wù)的端口號(hào);-n<username>用于指定HiveServer2服務(wù)所在主機(jī)的用戶名;-p<password>用于指定用戶名對(duì)應(yīng)的密碼。此外,在啟動(dòng)Beeline工具時(shí)可以添加“--hiveconfhive.server2.logging.operation.level
=NONE”屬性,將日志級(jí)別設(shè)置為NONE,不顯示任何與操作相關(guān)的日志信息,以便用戶查看操作結(jié)果。高手點(diǎn)拔步驟7在Worker2主機(jī)上執(zhí)行如下命令,斷開(kāi)遠(yuǎn)程連接。0:jdbc:hive2://Worker1:10000/>!quit構(gòu)建網(wǎng)站流量數(shù)據(jù)倉(cāng)庫(kù)任務(wù)二現(xiàn)有用戶手機(jī)信息數(shù)據(jù)文件“phone.txt”和用戶上網(wǎng)日志記錄數(shù)據(jù)文件“http.log”。“phone.txt”數(shù)據(jù)文件包含手機(jī)號(hào)碼前綴(phone_no)、手機(jī)號(hào)碼段(phone_numpart)、省份(province)、城市(city)、運(yùn)營(yíng)商(operator)、郵政編碼(zipcode)、區(qū)號(hào)(areacode)和行政劃分代碼(administrativecode)8個(gè)字段的信息,。其中,各字段間的分隔符是由Tab鍵輸入的制表符?!癶ttp.log”數(shù)據(jù)文件中包含手機(jī)號(hào)碼段(phone_numpart)、請(qǐng)求網(wǎng)站的鏈接(web)、上行流量(upstream)和下行流量(downstream)4個(gè)字段的信息,。其中,各字段間的分隔符是由Tab鍵輸入的制表符。為了方便日后查詢和分析不同用戶和網(wǎng)站的流量數(shù)據(jù),需要將這些數(shù)據(jù)存儲(chǔ)到網(wǎng)站流量數(shù)據(jù)倉(cāng)庫(kù)中。為了合理構(gòu)建網(wǎng)站流量數(shù)據(jù)倉(cāng)庫(kù),我們需要先對(duì)數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行分層設(shè)計(jì),然后分別創(chuàng)建數(shù)據(jù)庫(kù)和表。構(gòu)建網(wǎng)站流量數(shù)據(jù)倉(cāng)庫(kù)之前,我們先來(lái)學(xué)習(xí)一下Hive中數(shù)據(jù)庫(kù)和表的基本操作。“phone.txt”數(shù)據(jù)文件的部分內(nèi)容“http.log”數(shù)據(jù)文件的部分內(nèi)容任務(wù)準(zhǔn)備問(wèn)題1:簡(jiǎn)述Hive數(shù)據(jù)定義的概念。全班學(xué)生以3~5人為一組進(jìn)行分組,各組選出組長(zhǎng)。組長(zhǎng)組織組員掃碼觀看“Hive數(shù)據(jù)定義概述”視頻,討論并回答下列問(wèn)題。問(wèn)題2:簡(jiǎn)述Hive中表的類型。Hive數(shù)據(jù)定義概述一、數(shù)據(jù)庫(kù)的基本操作創(chuàng)建數(shù)據(jù)庫(kù)顯示數(shù)據(jù)庫(kù)查看數(shù)據(jù)庫(kù)的基本信息切換數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)一、數(shù)據(jù)庫(kù)的基本操作使用CREATEDATABASE關(guān)鍵字可以創(chuàng)建數(shù)據(jù)庫(kù),其語(yǔ)法格式如下。CREATEDATABASE[IFNOTEXISTS]數(shù)據(jù)庫(kù)名[LOCATION'存儲(chǔ)路徑'];上述語(yǔ)法格式的詳細(xì)解釋如下。IFNOTEXISTS:可選項(xiàng),用于判斷創(chuàng)建的數(shù)據(jù)庫(kù)是否已經(jīng)存在。若數(shù)據(jù)庫(kù)不存在,則創(chuàng)建數(shù)據(jù)庫(kù);否則不執(zhí)行任何操作。LOCATION'存儲(chǔ)路徑':可選項(xiàng),用于指定數(shù)據(jù)庫(kù)在HDFS中的存儲(chǔ)位置。默認(rèn)存儲(chǔ)位置取決于Hive的“hive-site.xml”配置文件中hive.metastore.warehouse.dir參數(shù)指定的存儲(chǔ)位置。1、創(chuàng)建數(shù)據(jù)庫(kù)如果在“hive-site.xml”配置文件中沒(méi)有設(shè)置hive.metastore.warehouse.dir參數(shù)的值,則使用該參數(shù)的默認(rèn)值“/user/hive/warehouse”。高手點(diǎn)拔一、數(shù)據(jù)庫(kù)的基本操作使用SHOWDATABASES關(guān)鍵字可以顯示數(shù)據(jù)庫(kù),其語(yǔ)法格式如下。SHOWDATABASES[LIKE篩選條件]; #顯示所有數(shù)據(jù)庫(kù)/符合條件的數(shù)據(jù)庫(kù)“LIKE篩選條件”為可選項(xiàng),用于篩選符合條件的數(shù)據(jù)庫(kù);LIKE為模糊查詢的關(guān)鍵字。2、顯示數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的基本信息包含數(shù)據(jù)庫(kù)名稱、描述信息、存儲(chǔ)位置、所有者和權(quán)限。使用DESCRIBEDATABASE關(guān)鍵字可以查看數(shù)據(jù)庫(kù)的基本信息,其語(yǔ)法格式如下。DESCRIBEDATABASE數(shù)據(jù)庫(kù)名;3、查看數(shù)據(jù)庫(kù)的基本信息一、數(shù)據(jù)庫(kù)的基本操作在Hive中,默認(rèn)使用的數(shù)據(jù)庫(kù)為default。如果需要使用已創(chuàng)建的其他數(shù)據(jù)庫(kù),則需要手動(dòng)切換。使用USE關(guān)鍵字可以切換數(shù)據(jù)庫(kù),其語(yǔ)法格式如下。4、切換數(shù)據(jù)庫(kù)用戶可以執(zhí)行如下語(yǔ)句查詢當(dāng)前使用的數(shù)據(jù)庫(kù)。SELECTCURRENT_DATABASE();高手點(diǎn)拔USE數(shù)據(jù)庫(kù)名;一、數(shù)據(jù)庫(kù)的基本操作上述語(yǔ)法格式的詳細(xì)解釋如下。IFEXISTS:可選項(xiàng),用于判斷數(shù)據(jù)庫(kù)是否存在。若數(shù)據(jù)庫(kù)存在,則刪除數(shù)據(jù)庫(kù);否則不執(zhí)行任何操作。RESTRICT|CASCADE:可選項(xiàng),用于指定數(shù)據(jù)庫(kù)中存有表時(shí)是否可以刪除數(shù)據(jù)庫(kù)。其中,RESTRICT為默認(rèn)值,表示如果數(shù)據(jù)庫(kù)中存有表,則無(wú)法刪除數(shù)據(jù)庫(kù);CASCADE表示如果數(shù)據(jù)庫(kù)中存有表,則刪除數(shù)據(jù)庫(kù)并刪除數(shù)據(jù)庫(kù)中的表。使用DROPDATABASE關(guān)鍵字可以刪除指定數(shù)據(jù)庫(kù),其語(yǔ)法格式如下。DROPDATABASE[IFEXISTS]數(shù)據(jù)庫(kù)名[RESTRICT|CASCADE];5、刪除數(shù)據(jù)庫(kù)一、數(shù)據(jù)庫(kù)的基本操作例2-1步驟10:jdbc:hive2://Worker1:10000/>CREATEDATABASEhive_test;
操作數(shù)據(jù)庫(kù)hive_test。執(zhí)行如下語(yǔ)句,創(chuàng)建數(shù)據(jù)庫(kù)hive_test。小提示在創(chuàng)建數(shù)據(jù)庫(kù)之前,需要啟動(dòng)HDFS和YARN,并確保Worker2主機(jī)的Beeline工具成功連接到Worker1主機(jī)的HiveServer2服務(wù)。為了排版整潔,后續(xù)將提示符“0:jdbc:hive2://Worker1:10000/>”簡(jiǎn)寫為“…/>”。一、數(shù)據(jù)庫(kù)的基本操作步驟2…/>SHOWDATABASES;執(zhí)行如下語(yǔ)句,顯示數(shù)據(jù)庫(kù)。步驟3…/>USEhive_test;…/>SELECTCURRENT_DATABASE();執(zhí)行如下語(yǔ)句,切換數(shù)據(jù)庫(kù),并查詢當(dāng)前使用的數(shù)據(jù)庫(kù)。當(dāng)前使用的數(shù)據(jù)庫(kù)
顯示數(shù)據(jù)庫(kù)一、數(shù)據(jù)庫(kù)的基本操作步驟4…/>DESCRIBEDATABASEhive_test; 執(zhí)行如下語(yǔ)句,查看數(shù)據(jù)庫(kù)hive_test的基本信息。步驟5…/>DROPDATABASEIFEXISTShive_test;執(zhí)行如下語(yǔ)句,刪除數(shù)據(jù)庫(kù)hive_test。在Hive中,默認(rèn)情況下關(guān)鍵字不區(qū)分大小寫。高手點(diǎn)拔數(shù)據(jù)庫(kù)hive_test的基本信息二、表的基本操作創(chuàng)建表顯示表查看表信息修改表分區(qū)表的分區(qū)操作刪除表二、表的基本操作使用CREATETABLE關(guān)鍵字可以創(chuàng)建以下表,其語(yǔ)法格式如下。內(nèi)部表外部表分區(qū)表桶表CREATE[EXTERNAL]TABLE[IFNOTEXISTS][數(shù)據(jù)庫(kù)名.]表名(字段名1數(shù)據(jù)類型[COMMENT字段描述],…)[PARTITIONEDBY(字段名1數(shù)據(jù)類型,…)][CLUSTEREDBY(字段名1,
…)[SORTEDBY(字段名1[ASC|DESC],…)]INTO分桶數(shù)BUCKETS][ROWFORMATDELIMITED數(shù)據(jù)分隔符][STOREDAS存儲(chǔ)格式][LOCATION'存儲(chǔ)路徑'];1、創(chuàng)建表上述語(yǔ)法格式的詳細(xì)解釋如下。CREATE[EXTERNAL]TABLE:創(chuàng)建表的關(guān)鍵字。其中,EXTERNAL為可選關(guān)鍵字,表示創(chuàng)建的表為外部表。二、表的基本操作使用CREATETABLE關(guān)鍵字可以創(chuàng)建以下表,其語(yǔ)法格式如下。內(nèi)部表外部表分區(qū)表桶表CREATE[EXTERNAL]TABLE[IFNOTEXISTS][數(shù)據(jù)庫(kù)名.]表名(字段名1數(shù)據(jù)類型[COMMENT字段描述],…)[PARTITIONEDBY(字段名1數(shù)據(jù)類型,…)][CLUSTEREDBY(字段名1,
…)[SORTEDBY(字段名1[ASC|DESC],…)]INTO分桶數(shù)BUCKETS][ROWFORMATDELIMITED數(shù)據(jù)分隔符][STOREDAS存儲(chǔ)格式][LOCATION'存儲(chǔ)路徑'];1、創(chuàng)建表[數(shù)據(jù)庫(kù)名.]表名:用于指定表名和存放表的數(shù)據(jù)庫(kù)。若不指定數(shù)據(jù)庫(kù),則表默認(rèn)存放在當(dāng)前使用的數(shù)據(jù)庫(kù)中。PARTITIONEDBY(字段名1數(shù)據(jù)類型,…):可選項(xiàng),用于指定分區(qū)字段。二、表的基本操作使用CREATETABLE關(guān)鍵字可以創(chuàng)建以下表,其語(yǔ)法格式如下。內(nèi)部表外部表分區(qū)表桶表CREATE[EXTERNAL]TABLE[IFNOTEXISTS][數(shù)據(jù)庫(kù)名.]表名(字段名1數(shù)據(jù)類型[COMMENT字段描述],…)[PARTITIONEDBY(字段名1數(shù)據(jù)類型,…)][CLUSTEREDBY(字段名1,
…)[SORTEDBY(字段名1[ASC|DESC],…)]INTO分桶數(shù)BUCKETS][ROWFORMATDELIMITED數(shù)據(jù)分隔符][STOREDAS存儲(chǔ)格式][LOCATION'存儲(chǔ)路徑'];1、創(chuàng)建表CLUSTEREDBY(字段名1,
…)[SORTEDBY(字段名1[ASC|DESC],…)]INTO分桶數(shù)BUCKETS:可選項(xiàng),用于指定分桶字段、排序依據(jù)字段和分桶數(shù),表示根據(jù)分桶字段的哈希值對(duì)數(shù)據(jù)進(jìn)行分桶,并根據(jù)排序依據(jù)字段對(duì)每個(gè)桶內(nèi)的數(shù)據(jù)行進(jìn)行升序(ASC)或降序(DESC)排序。ROWFORMATDELIMITED數(shù)據(jù)分隔符:可選項(xiàng),用于指定表中數(shù)據(jù)的分隔符。二、表的基本操作使用CREATETABLE關(guān)鍵字可以創(chuàng)建以下表,其語(yǔ)法格式如下。內(nèi)部表外部表分區(qū)表桶表CREATE[EXTERNAL]TABLE[IFNOTEXISTS][數(shù)據(jù)庫(kù)名.]表名(字段名1數(shù)據(jù)類型[COMMENT字段描述],…)[PARTITIONEDBY(字段名1數(shù)據(jù)類型,…)][CLUSTEREDBY(字段名1,
…)[SORTEDBY(字段名1[ASC|DESC],…)]INTO分桶數(shù)BUCKETS][ROWFORMATDELIMITED數(shù)據(jù)分隔符][STOREDAS存儲(chǔ)格式][LOCATION'存儲(chǔ)路徑'];1、創(chuàng)建表數(shù)據(jù)分隔符主要有幾種?二、表的基本操作使用CREATETABLE關(guān)鍵字可以創(chuàng)建以下表,其語(yǔ)法格式如下。內(nèi)部表外部表分區(qū)表桶表CREATE[EXTERNAL]TABLE[IFNOTEXISTS][數(shù)據(jù)庫(kù)名.]表名(字段名1數(shù)據(jù)類型[COMMENT字段描述],…)[PARTITIONEDBY(字段名1數(shù)據(jù)類型,…)][CLUSTEREDBY(字段名1,
…)[SORTEDBY(字段名1[ASC|DESC],…)]INTO分桶數(shù)BUCKETS][ROWFORMATDELIMITED數(shù)據(jù)分隔符][STOREDAS存儲(chǔ)格式][LOCATION'存儲(chǔ)路徑'];1、創(chuàng)建表數(shù)據(jù)分隔符主要可以分為以下幾種。①FIELDSTERMINATEDBY分隔符:用于指定字段與字段之間的分隔符。②COLLECTIONITEMSTERMINATEDBY分隔符:用于指定復(fù)雜數(shù)據(jù)類型(ARRAY、MAP和STRUCT)字段中元素與元素之間的分隔符。高手點(diǎn)拔二、表的基本操作使用CREATETABLE關(guān)鍵字可以創(chuàng)建以下表,其語(yǔ)法格式如下。內(nèi)部表外部表分區(qū)表桶表CREATE[EXTERNAL]TABLE[IFNOTEXISTS][數(shù)據(jù)庫(kù)名.]表名(字段名1數(shù)據(jù)類型[COMMENT字段描述],…)[PARTITIONEDBY(字段名1數(shù)據(jù)類型,…)][CLUSTEREDBY(字段名1,
…)[SORTEDBY(字段名1[ASC|DESC],…)]INTO分桶數(shù)BUCKETS][ROWFORMATDELIMITED數(shù)據(jù)分隔符][STOREDAS存儲(chǔ)格式][LOCATION'存儲(chǔ)路徑'];1、創(chuàng)建表數(shù)據(jù)分隔符主要可以分為以下幾種。③MAPKEYSTERMINATEDBY分隔符:用于指定MAP類型字段中key與value之間的分隔符。④LINESTERMINATEDBY分隔符:用于指定行與行之間的分隔符。高手點(diǎn)拔二、表的基本操作使用CREATETABLE關(guān)鍵字可以創(chuàng)建以下表,其語(yǔ)法格式如下。內(nèi)部表外部表分區(qū)表桶表CREATE[EXTERNAL]TABLE[IFNOTEXISTS][數(shù)據(jù)庫(kù)名.]表名(字段名1數(shù)據(jù)類型[COMMENT字段描述],…)[PARTITIONEDBY(字段名1數(shù)據(jù)類型,…)][CLUSTEREDBY(字段名1,
…)[SORTEDBY(字段名1[ASC|DESC],…)]INTO分桶數(shù)BUCKETS][ROWFORMATDELIMITED數(shù)據(jù)分隔符][STOREDAS存儲(chǔ)格式][LOCATION'存儲(chǔ)路徑'];1、創(chuàng)建表STOREDAS存儲(chǔ)格式:可選項(xiàng),用于指定表的存儲(chǔ)格式。其中,存儲(chǔ)格式的默認(rèn)值為TextFile,其他可取值包括ORC、SequenceFile和Parquet等。LOCATION'存儲(chǔ)路徑':可選項(xiàng),用于指定外部表的數(shù)據(jù)文件在HDFS中的存儲(chǔ)位置。如果沒(méi)有使用LOCATION關(guān)鍵字指定存儲(chǔ)位置,則Hive將在HDFS的“/user/hive/warehouse”目錄中以外部表的表名創(chuàng)建一個(gè)目錄,并將該表的實(shí)際數(shù)據(jù)存放在該目錄中。二、表的基本操作創(chuàng)建內(nèi)部表內(nèi)部表是Hive的基本表。向內(nèi)部表中導(dǎo)入數(shù)據(jù)時(shí),該表的實(shí)際數(shù)據(jù)會(huì)從原來(lái)的HDFS目錄移動(dòng)到Hive管理的HDFS目錄中。Hive可以管理內(nèi)部表的元數(shù)據(jù)和實(shí)際數(shù)據(jù),因此刪除內(nèi)部表時(shí),會(huì)同時(shí)刪除表的元數(shù)據(jù)和實(shí)際數(shù)據(jù)。步驟1…/>CREATEDATABASEhive_database;…/>USEhive_database;執(zhí)行如下語(yǔ)句,創(chuàng)建數(shù)據(jù)庫(kù)hive_database;然后切換至該數(shù)據(jù)庫(kù)。例2-2在數(shù)據(jù)庫(kù)hive_database中創(chuàng)建內(nèi)部表internal_table。步驟2…/>CREATETABLEIFNOTEXISTSinternal_table>(idSTRING,nameSTRING,classSTRING) #表中的字段
>ROWFORMATDELIMITED>FIELDSTERMINATEDBY',' #定義字段與字段之間的分隔符為“,”
>LINESTERMINATEDBY'\n'; #定義行與行之間的分隔符為“\n”執(zhí)行如下語(yǔ)句,創(chuàng)建內(nèi)部表internal_table。二、表的基本操作創(chuàng)建外部表使用EXTERNAL關(guān)鍵字創(chuàng)建的表為外部表。向外部表中導(dǎo)入數(shù)據(jù)時(shí),實(shí)際數(shù)據(jù)不會(huì)從原來(lái)的HDFS目錄移動(dòng)到Hive管理的HDFS目錄中,而是保留在原來(lái)的HDFS目錄中,外部表會(huì)與實(shí)際數(shù)據(jù)建立映射關(guān)系。Hive只管理外部表的元數(shù)據(jù),因此刪除外部表時(shí),只會(huì)刪除表的元數(shù)據(jù),不會(huì)刪除表的實(shí)際數(shù)據(jù)?!?>CREATEEXTERNALTABLEIFNOTEXISTSexternal_table>(idINT,nameSTRING,classSTRING)>ROWFORMATDELIMITED>FIELDSTERMINATEDBY',' >LINESTERMINATEDBY'\n'>LOCATION'/user/hive_external/external_table';例2-3在數(shù)據(jù)庫(kù)hive_database中創(chuàng)建外部表external_table。二、表的基本操作創(chuàng)建分區(qū)表使用PARTITIONEDBY關(guān)鍵字創(chuàng)建的表為分區(qū)表該表對(duì)內(nèi)部表或外部表中的數(shù)據(jù)進(jìn)行了分區(qū)存儲(chǔ)?!?>CREATEEXTERNALTABLEIFNOTEXISTSpartition_table>(idINT,nameSTRING,classString)#分區(qū)字段
>PARTITIONEDBY(collegeSTRING) >ROWFORMATDELIMITED>FIELDSTERMINATEDBY','>LINESTERMINATEDBY'\n';例2-4在數(shù)據(jù)庫(kù)hive_database中創(chuàng)建分區(qū)表。二、表的基本操作創(chuàng)建桶表使用CLUSTEREDBY關(guān)鍵字創(chuàng)建的表為桶表該表對(duì)內(nèi)部表、外部表或分區(qū)表各分區(qū)中的數(shù)據(jù)進(jìn)行了分桶存儲(chǔ)?!?>CREATETABLEIFNOTEXISTSbucket_table(>student_idSTRING,student_nameSTRING,>collegeSTRING,classSTRING)#按照college字段進(jìn)行分桶,并指定桶的個(gè)數(shù)為3>CLUSTEREDBY(college)INTO3BUCKETS>ROWFORMATDELIMITED>FIELDSTERMINATEDBY','>LINESTERMINATEDBY'\n';例2-5在數(shù)據(jù)庫(kù)hive_database中創(chuàng)建桶表bucket_table。二、表的基本操作使用SHOWTABLES關(guān)鍵字可以顯示表,其語(yǔ)法格式如下。SHOWTABLES[LIKE篩選條件];使用DESCRIBE關(guān)鍵字可以查看表信息,其語(yǔ)法格式如下。#查看表的基本信息/詳細(xì)信息DESCRIBE[FORMATTED][數(shù)據(jù)庫(kù)名.]表名;FORMATTED為可選項(xiàng),用于查看表的詳細(xì)信息。2、顯示表3、查看表信息小試牛刀顯示數(shù)據(jù)庫(kù)hive_database中的所有表。查看數(shù)據(jù)庫(kù)hive_database中桶表bucket_table的基本信息和詳細(xì)信息。二、表的基本操作(1)重命名表:使用ALTERTABLE和RENAMETO關(guān)鍵字可以重命名表,其語(yǔ)法格式如下。ALTERTABLE[數(shù)據(jù)庫(kù)名.]表名RENAMETO新的表名;(2)修改字段:使用ALTERTABLE和CHANGE關(guān)鍵字可以修改字段,其語(yǔ)法格式如下。ALTERTABLE[數(shù)據(jù)庫(kù)名.]表名CHANGE舊的字段名新的字段名新字段的數(shù)據(jù)類型[FIRST|AFTER指定字段];FIRST表示將修改的字段放在第一列,前提是必須保證表中每個(gè)字段的數(shù)據(jù)類型相同AFTER表示將修改的字段放在指定字段之后,前提是必須保證指定字段及該字段之后所有字段的數(shù)據(jù)類型相同。4、修改表二、表的基本操作(3)添加字段:使用ALTERTABLE和ADDCOLUMNS關(guān)鍵字可以添加字段,其語(yǔ)法格式如下。ALTERTABLE[數(shù)據(jù)庫(kù)名.]表名ADDCOLUMNS(字段名1數(shù)據(jù)類型[COMMENT字段描述],…);(4)替換字段:使用ALTERTABLE和REPLACECOLUMNS關(guān)鍵字可以替換字段,其語(yǔ)法格式如下。ALTERTABLE[數(shù)據(jù)庫(kù)名.]表名REPLACECOLUMNS(字段名1數(shù)據(jù)類型,…);需要注意的是,替換字段時(shí),會(huì)替換掉表中的所有字段。小提示修改字段的語(yǔ)句只會(huì)修改Hive表的元數(shù)據(jù),不會(huì)修改表的實(shí)際數(shù)據(jù),所以修改字段的數(shù)據(jù)類型要與原字段的數(shù)據(jù)類型兼容。否則,Hive將無(wú)法完成字段的修改操作。二、表的基本操作步驟1…/>ALTERTABLEinternal_tableRENAMETOinternal_table1;執(zhí)行如下語(yǔ)句,將內(nèi)部表internal_table重命名為internal_table1。例2-6修改數(shù)據(jù)庫(kù)hive_database中的內(nèi)部表internal_table。步驟2…/>ALTERTABLEinternal_table1>CHANGEidstu_idSTRINGAFTERname;執(zhí)行如下語(yǔ)句,將內(nèi)部表internal_table1的id字段名修改為stu_id,并將stu_id字段移動(dòng)到name字段之后。步驟3…/>ALTERTABLEinternal_table1ADDCOLUMNS(ageINT);執(zhí)行如下語(yǔ)句,在內(nèi)部表internal_table1中添加age字段。二、表的基本操作步驟4…/>DESCRIBEinternal_table1;執(zhí)行如下語(yǔ)句,查看內(nèi)部表internal_table1的基本信息。從圖中可以看出,內(nèi)部表internal_table1中成功添加age字段,并且age字段在所有已有字段(name、stu_id和class)的后面。內(nèi)部表internal_table1的基本信息二、表的基本操作(1)添加分區(qū):是指在分區(qū)表中根據(jù)分區(qū)字段添加實(shí)際分區(qū)。使用ADDPARTITION關(guān)鍵字可以添加分區(qū),其語(yǔ)法格式如下。ALTERTABLE[數(shù)據(jù)庫(kù)名.]表名ADDPARTITION(分區(qū)字段1=分區(qū)字段的值1,…)[PARTITION(分區(qū)字段1=分區(qū)字段的值1,…)…][LOCATION'存儲(chǔ)路徑'];分區(qū)字段的值即實(shí)際分區(qū)名,分區(qū)名是數(shù)據(jù)存儲(chǔ)路徑的一部分,默認(rèn)情況下Hive不支持含有中文或特殊字符的分區(qū)名。因此,分區(qū)字段的值不能含有中文或特殊字符。高手點(diǎn)拔4、修改表二、表的基本操作(2)顯示分區(qū):使用SHOWPARTITIONS關(guān)鍵字可以顯示分區(qū),其語(yǔ)法格式如下。SHOWPARTITIONS[數(shù)據(jù)庫(kù)名.]表名[PARTITION(分區(qū)字段1=分區(qū)字段的值1,…)];#可選項(xiàng),用于顯示指定分區(qū)(3)查看分區(qū)信息:使用DESCRIBE關(guān)鍵字可以查看分區(qū)信息,其語(yǔ)法格式如下。DESCRIBE[FORMATTED][數(shù)據(jù)庫(kù)名.]表名PARTITION(分區(qū)字段1=分區(qū)字段的值1,…);(4)使用DROPPARTITION關(guān)鍵字可以刪除分區(qū),其語(yǔ)法格式如下。ALTERTABLE[數(shù)據(jù)庫(kù)名.]表名DROP[IFEXISTS]PARTITION(分區(qū)字段1=分區(qū)字段的值1,…);二、表的基本操作步驟1…/>ALTERTABLEpartition_table>ADDPARTITION(college='Arts')>PARTITION(college='English');執(zhí)行如下語(yǔ)句,在分區(qū)表partition_table中添加兩個(gè)分區(qū)。例2-7在數(shù)據(jù)庫(kù)hive_database的分區(qū)表partition_table中執(zhí)行不同的分區(qū)操作。步驟2…/>SHOWPARTITIONSpartition_table;執(zhí)行如下語(yǔ)句,顯示分區(qū)表partition_table的分區(qū),結(jié)果。分區(qū)表partition_table的分區(qū)二、表的基本操作步驟3…/>DESCRIBEpartition_tablePARTITION(college='Arts');執(zhí)行如下語(yǔ)句,查看分區(qū)表partition_table中college=Arts分區(qū)的基本信息。college=Arts分區(qū)的基本信息步驟4…/>ALTERTABLEpartition_table>DROPPARTITION(college='Arts');執(zhí)行如下語(yǔ)句,刪除分區(qū)表partition_table的college=Arts分區(qū)。二、表的基本操作使用DROPTABLE關(guān)鍵字可以刪除表,其語(yǔ)法格式如下。DROPTABLE[IFEXISTS][數(shù)據(jù)庫(kù)名.]表名;小試牛刀刪除數(shù)據(jù)庫(kù)hive_database中的桶表bucket_table4、分區(qū)表的分區(qū)操作任務(wù)實(shí)施
任務(wù)分析首先設(shè)計(jì)網(wǎng)站流量數(shù)據(jù)倉(cāng)庫(kù)的分層,確定不同分層中包含的數(shù)據(jù)庫(kù)、表和數(shù)據(jù)源,然后根據(jù)設(shè)計(jì)好的分層,分別創(chuàng)建數(shù)據(jù)庫(kù)和表。
實(shí)施步驟構(gòu)建網(wǎng)站流量數(shù)據(jù)倉(cāng)庫(kù)任務(wù)實(shí)施
實(shí)施步驟1.設(shè)計(jì)網(wǎng)站流量數(shù)據(jù)倉(cāng)庫(kù)的分層網(wǎng)站流量數(shù)據(jù)倉(cāng)庫(kù)的分層設(shè)計(jì)如表所示。分層數(shù)據(jù)庫(kù)表數(shù)據(jù)源源數(shù)據(jù)層web_ods_databasephone_ods_table用戶手機(jī)信息數(shù)據(jù)文件“phone.txt”weblog_ods_table用戶上網(wǎng)日志記錄數(shù)據(jù)文件“http.log”數(shù)據(jù)倉(cāng)庫(kù)層的明細(xì)層web_dwd_databaseweb_dwd_table合并表phone_ods_table和表weblog_ods_table后,查詢到的部分?jǐn)?shù)據(jù),表中字段包括phone_numpart、web、upstream、downstream、province、city和operator數(shù)據(jù)倉(cāng)庫(kù)層的業(yè)務(wù)層web_dws_databasestream_dws_table統(tǒng)計(jì)表web_dwd_table中不同手機(jī)號(hào)碼段、請(qǐng)求網(wǎng)站的鏈接、省份、運(yùn)營(yíng)商的總流量,表中字段包括total_stream、phone_numpart、web、province、operator和group_type。其中,group_type表示維度,當(dāng)group_type為1時(shí),表示手機(jī)號(hào)碼段維度;當(dāng)group_type為2時(shí),表示請(qǐng)求網(wǎng)站的鏈接維度;當(dāng)group_type為3時(shí),表示省份維度;當(dāng)group_type為4時(shí),表示運(yùn)營(yíng)商維度任務(wù)實(shí)施
實(shí)施步驟2.創(chuàng)建源數(shù)據(jù)層的數(shù)據(jù)庫(kù)和表步驟1在Worker1主機(jī)上啟動(dòng)HiveServer2服務(wù),并在Worker2主機(jī)上啟動(dòng)Beeline工具遠(yuǎn)程連接Worker1主機(jī)的HiveServer2服務(wù)?!?>CREATEDATABASEIFNOTEXISTSweb_ods_database;步驟2執(zhí)行如下語(yǔ)句,創(chuàng)建源數(shù)據(jù)層數(shù)據(jù)庫(kù)web_ods_database?!?>USEweb_ods_database;…/>CREATEEXTERNALTABLEIFNOTEXISTSphone_ods_table(>phone_noSTRING,phone_numpartSTRING,>provinceSTRING,citySTRING,>operatorSTRING,zipcodeSTRING,步驟3執(zhí)行如下語(yǔ)句,在數(shù)據(jù)庫(kù)web_ods_database中創(chuàng)建外部表phone_ods_table。任務(wù)實(shí)施2.創(chuàng)建源數(shù)據(jù)層的數(shù)據(jù)庫(kù)和表…/>USEweb_ods_database;…/>CREATEEXTERNALTABLEIFNOTEXISTSphone_ods_table(>phone_noSTRING,phone_numpartSTRING,>provinceSTRING,citySTRING,>operatorSTRING,zipcodeSTRING,>areacodeINT,administrativecodeSTRING)>ROWFORMATDELIMITED>FIELDSTERMINATEDBY'\t'>STOREDASTEXTFILE>LOCATION"/user/hive_data/weblog.db/phone_ods";步驟3執(zhí)行如下語(yǔ)句,在數(shù)據(jù)庫(kù)web_ods_database中創(chuàng)建外部表phone_ods_table。任務(wù)實(shí)施
實(shí)施步驟…/>CREATEEXTERNALTABLEIFNOTEXISTSweblog_ods_table(>phone_numpartSTRING,webSTRING,>upstreamINT,downstreamINT)>ROWFORMATDELIMITED>FIELDSTERMINATEDBY'\t'>STOREDASTEXTFILE>LOCATION"/user/hive_data/weblog.db/weblog_ods";步驟4執(zhí)行如下語(yǔ)句,在數(shù)據(jù)庫(kù)web_ods_database中創(chuàng)建外部表weblog_ods_table。任務(wù)實(shí)施
實(shí)施步驟3.創(chuàng)建明細(xì)層的數(shù)據(jù)庫(kù)和表步驟1執(zhí)行如下語(yǔ)句,創(chuàng)建明細(xì)層數(shù)據(jù)庫(kù)web_dwd_database。步驟2執(zhí)行如下語(yǔ)句,在數(shù)據(jù)庫(kù)web_dwd_database中創(chuàng)建明細(xì)表web_dwd_table?!?>USEweb_dwd_database;…/>CREATETABLEIFNOTEXISTSweb_dwd_table(>phone_numpartSTRING,webSTRING,>upstreamINT,downstreamINT,>provinceSTRING,citySTRING,operatorSTRING)>ROWFORMATDELIMITED>FIELDSTERMINATEDBY'\t'>STOREDASORC;…/>CREATEDATABASEIFNOTEXISTSweb_dwd_database;任務(wù)實(shí)施
實(shí)施步驟4.創(chuàng)建業(yè)務(wù)層的數(shù)據(jù)庫(kù)和表步驟1執(zhí)行如下語(yǔ)句,創(chuàng)建業(yè)務(wù)層數(shù)據(jù)庫(kù)web_dws_database。步驟2執(zhí)行如下語(yǔ)句,在數(shù)據(jù)庫(kù)web_dws_database中創(chuàng)建寬表stream_dws_table。…/>USEweb_dws_database;…/>CREATETABLEIFNOTEXISTSstream_dws_table(>total_streamINT,>phone_numpartSTRING,webSTRING,>province
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年1月南京市溧水區(qū)教育局所屬事業(yè)單位公開(kāi)招聘教師71人考試參考試題及答案解析
- 2026春季云南昆明市衛(wèi)生學(xué)校學(xué)期招聘18人考試參考試題及答案解析
- 2026民豐特種紙股份有限公司招聘(浙江)考試參考題庫(kù)及答案解析
- 2026國(guó)家統(tǒng)計(jì)局余姚調(diào)查隊(duì)招聘編外工作人員1人考試參考題庫(kù)及答案解析
- 2026中信銀行招聘3人考試參考題庫(kù)及答案解析
- 2026教育部海洋微生物資源庫(kù)(中國(guó)海洋大學(xué))工程技術(shù)人員招聘筆試模擬試題及答案解析
- 2026年上海科技大學(xué)附屬學(xué)校教師招聘考試備考試題及答案解析
- 2026年蚌埠懷遠(yuǎn)縣鄉(xiāng)鎮(zhèn)衛(wèi)生院公開(kāi)招聘工作人員14名考試備考題庫(kù)及答案解析
- 2026浙江臺(tái)州市計(jì)量技術(shù)研究院招聘編外人員1人考試備考題庫(kù)及答案解析
- 2026廣東中山一中教育集團(tuán)鐵城中學(xué)教師招聘考試參考試題及答案解析
- 2025天津市個(gè)人房屋租賃合同樣本
- 有機(jī)磷農(nóng)藥中毒患者的護(hù)理
- 電力合規(guī)管理辦法
- 鶴壁供熱管理辦法
- 01 華為采購(gòu)管理架構(gòu)(20P)
- 糖尿病逆轉(zhuǎn)與綜合管理案例分享
- 工行信息安全管理辦法
- 2025高中思想政治課標(biāo)測(cè)試卷(及答案)
- 化學(xué)●廣西卷丨2024年廣西普通高中學(xué)業(yè)水平選擇性考試高考化學(xué)真題試卷及答案
- 2024年全國(guó)大學(xué)生西門子杯工業(yè)自動(dòng)化挑戰(zhàn)賽-ITEM2-邏輯控制賽項(xiàng)-工程設(shè)拓夢(mèng)者隊(duì)計(jì)文件
- 軌跡大數(shù)據(jù)處理技術(shù)的關(guān)鍵研究進(jìn)展綜述
評(píng)論
0/150
提交評(píng)論