Hive數(shù)據(jù)倉庫應(yīng)用教程高職全套教學(xué)課件_第1頁
Hive數(shù)據(jù)倉庫應(yīng)用教程高職全套教學(xué)課件_第2頁
Hive數(shù)據(jù)倉庫應(yīng)用教程高職全套教學(xué)課件_第3頁
Hive數(shù)據(jù)倉庫應(yīng)用教程高職全套教學(xué)課件_第4頁
Hive數(shù)據(jù)倉庫應(yīng)用教程高職全套教學(xué)課件_第5頁
已閱讀5頁,還剩555頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目一認(rèn)識(shí)Hive《Hive數(shù)據(jù)倉庫應(yīng)用教程》項(xiàng)目1認(rèn)識(shí)Hive.pptx項(xiàng)目2Hive環(huán)境搭建.pptx項(xiàng)目3Hive基本語法.pptx項(xiàng)目4Hive數(shù)據(jù)定義.pptx項(xiàng)目5數(shù)據(jù)的導(dǎo)入與導(dǎo)出.pptx項(xiàng)目6Hive數(shù)據(jù)查詢.pptx項(xiàng)目7Hive函數(shù).pptx項(xiàng)目8Hive優(yōu)化.pptx項(xiàng)目9綜合案例.pptx全套可編輯PPT課件目錄/CONTENTS任務(wù)1-1認(rèn)識(shí)數(shù)據(jù)倉庫行業(yè)PPT模板/hangye/任務(wù)1-2認(rèn)識(shí)Hive數(shù)據(jù)倉庫123項(xiàng)目小結(jié)163認(rèn)識(shí)數(shù)據(jù)倉庫任務(wù)1-1《Hive數(shù)據(jù)倉庫應(yīng)用教程》1.1.1任務(wù)描述本任務(wù)將帶領(lǐng)大家了解數(shù)據(jù)倉庫的概念,包括數(shù)據(jù)倉庫的特點(diǎn)、數(shù)據(jù)模型以及體系結(jié)構(gòu)。通過與傳統(tǒng)數(shù)據(jù)庫進(jìn)行對(duì)比,讓大家了解數(shù)據(jù)倉庫相較于傳統(tǒng)數(shù)據(jù)庫的優(yōu)勢。1.1.2任務(wù)準(zhǔn)備知識(shí)1.數(shù)據(jù)庫概述(1)什么是數(shù)據(jù)庫?(2)數(shù)據(jù)庫的組成(3)數(shù)據(jù)庫的作用結(jié)構(gòu)化的數(shù)據(jù)集合存儲(chǔ)、檢索、查詢、管理數(shù)據(jù)的系統(tǒng)支持多種數(shù)據(jù)類型:文本、數(shù)字、圖片等數(shù)據(jù)庫模型:關(guān)系型、非關(guān)系型等數(shù)據(jù)庫架構(gòu):單層、兩層、三層架構(gòu)數(shù)據(jù)和數(shù)據(jù)庫模式數(shù)據(jù)組織與管理提供信息存儲(chǔ)和檢索的高效方式支持應(yīng)用程序和用戶決策1.1.2任務(wù)準(zhǔn)備知識(shí)2.數(shù)據(jù)庫管理系統(tǒng)(DBMS)(1)DBMS的定義(2)DBMS的功能(3)DBMS的重要性軟件系統(tǒng),用于創(chuàng)建和管理數(shù)據(jù)庫提供數(shù)據(jù)的安全性、完整性、備份與恢復(fù)數(shù)據(jù)定義、更新、管理數(shù)據(jù)安全管理和訪問控制性能監(jiān)控和優(yōu)化保證數(shù)據(jù)一致性和完整性支持多用戶環(huán)境和并發(fā)控制提供數(shù)據(jù)獨(dú)立性和抽象化1.1.2任務(wù)準(zhǔn)備知識(shí)3.傳統(tǒng)數(shù)據(jù)庫的局限性(1)面向業(yè)務(wù)過程的設(shè)計(jì)(2)分散的數(shù)據(jù)源問題(3)缺乏時(shí)間變化維度以日常業(yè)務(wù)操作為中心,不利于全局?jǐn)?shù)據(jù)分析數(shù)據(jù)結(jié)構(gòu)圍繞業(yè)務(wù)過程,限制數(shù)據(jù)的寬泛應(yīng)用多個(gè)應(yīng)用程序有各自的數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)孤立數(shù)據(jù)集成、標(biāo)準(zhǔn)化和一致性維護(hù)困難傳統(tǒng)數(shù)據(jù)庫關(guān)注當(dāng)前狀態(tài),不記錄歷史變化歷史數(shù)據(jù)分析和趨勢預(yù)測能力不足1.1.2任務(wù)準(zhǔn)備知識(shí)3.傳統(tǒng)數(shù)據(jù)庫的局限性(4)性能受限于復(fù)雜查詢:傳統(tǒng)數(shù)據(jù)庫設(shè)計(jì)優(yōu)化事務(wù)處理,不適合復(fù)雜分析(5)缺少元數(shù)據(jù)管理:傳統(tǒng)數(shù)據(jù)庫不提供元數(shù)據(jù)管理工具,影響數(shù)據(jù)理解和使用。(6)決策支持不足:傳統(tǒng)數(shù)據(jù)庫不適合需復(fù)雜數(shù)據(jù)分析和挖掘的決策支持和商業(yè)智能。1.1.3任務(wù)實(shí)施1.?dāng)?shù)據(jù)倉庫的概念數(shù)據(jù)倉庫是一種專為分析和決策支持設(shè)計(jì)的集中化數(shù)據(jù)存儲(chǔ)環(huán)境。它不同于傳統(tǒng)數(shù)據(jù)庫,因?yàn)樗鼘W⒂跀?shù)據(jù)的整合、歷史存儲(chǔ)和復(fù)雜查詢性能。數(shù)據(jù)倉庫整合來自多個(gè)業(yè)務(wù)系統(tǒng)的數(shù)據(jù),使用特定的數(shù)據(jù)模型如星型或雪花模型,并采用列式存儲(chǔ)等技術(shù)優(yōu)化分析性能。它還配備了嚴(yán)格的數(shù)據(jù)治理和安全措施以保證數(shù)據(jù)準(zhǔn)確和合規(guī)。對(duì)用戶而言,數(shù)據(jù)倉庫提供了一個(gè)統(tǒng)一的視圖,支持高級(jí)數(shù)據(jù)探索和業(yè)務(wù)趨勢預(yù)測的分析工具。1.1.3任務(wù)實(shí)施2.?dāng)?shù)據(jù)倉庫的特點(diǎn)(1)面向主題:數(shù)據(jù)倉庫圍繞企業(yè)的關(guān)鍵主題(如客戶、銷售、庫存、財(cái)務(wù)等)來組織數(shù)據(jù),以便于進(jìn)行跨領(lǐng)域的分析。(2)集成:它整合了來自企業(yè)內(nèi)多個(gè)分散的操作型數(shù)據(jù)庫的數(shù)據(jù),提供了一個(gè)清潔、一致的全局視圖。(3)數(shù)據(jù)穩(wěn)定性:數(shù)據(jù)倉庫中的數(shù)據(jù)相對(duì)穩(wěn)定,更多用于查詢和分析,而不像操作型數(shù)據(jù)庫那樣頻繁更新。(4)歷史變化:數(shù)據(jù)倉庫存儲(chǔ)數(shù)據(jù)的歷史狀態(tài),使得分析師可以執(zhí)行趨勢分析和預(yù)測分析。(5)高性能查詢:通過使用特定的存儲(chǔ)技術(shù)和查詢優(yōu)化,數(shù)據(jù)倉庫能夠高效處理大量數(shù)據(jù)的復(fù)雜查詢。1.1.3任務(wù)實(shí)施3.?dāng)?shù)據(jù)倉庫的數(shù)據(jù)模型數(shù)據(jù)倉庫的數(shù)據(jù)模型是按層次組織的,它定義了數(shù)據(jù)如何被組織、存儲(chǔ)和分析,主要分為三個(gè)層次:1.數(shù)據(jù)物理層:這是與數(shù)據(jù)的物理存儲(chǔ)和檢索機(jī)制直接相關(guān)的層級(jí)。它關(guān)注數(shù)據(jù)的物理存儲(chǔ)結(jié)構(gòu)、編碼方式和存儲(chǔ)位置。2.概念數(shù)據(jù)層:這一層面向整體邏輯結(jié)構(gòu)和關(guān)系,提供一個(gè)全局和抽象的視圖,描述數(shù)據(jù)實(shí)體、屬性和它們之間的關(guān)系。3.邏輯數(shù)據(jù)層:是用戶交互的層級(jí),基于概念層設(shè)計(jì),更聚焦于用戶的數(shù)據(jù)需求。它通過視圖、報(bào)表等形式,為用戶提供定制的數(shù)據(jù)展示和分析工具。1.1.3任務(wù)實(shí)施4.?dāng)?shù)據(jù)倉庫的體系結(jié)構(gòu)數(shù)據(jù)倉庫的體系結(jié)構(gòu)是支撐其高效運(yùn)行和滿足各種數(shù)據(jù)需求的關(guān)鍵。一個(gè)典型的數(shù)據(jù)倉庫體系結(jié)構(gòu)通常分為三個(gè)主要層次:源數(shù)據(jù)層、數(shù)據(jù)倉庫層和數(shù)據(jù)應(yīng)用層。認(rèn)識(shí)Hive數(shù)據(jù)倉庫任務(wù)1-2《Hive數(shù)據(jù)倉庫應(yīng)用教程》1.1.1任務(wù)描述在當(dāng)前的任務(wù)中,我們將深入探討Hive,這是一個(gè)基于Hadoop的數(shù)據(jù)倉庫工具。我們將詳細(xì)介紹Hive的架構(gòu)、基本數(shù)據(jù)類型及其如何融入整個(gè)大數(shù)據(jù)生態(tài)系統(tǒng)。通過本次任務(wù),讀者將更好地理解Hive的功能、優(yōu)點(diǎn)以及它在大規(guī)模數(shù)據(jù)處理和分析中的角色。1.1.2任務(wù)準(zhǔn)備知識(shí)1.OLTP(聯(lián)機(jī)事務(wù)處理)OLTP是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的主要應(yīng)用,如MySQL、Oracle和SQLServer。它主要處理基本的日常事務(wù),如銀行交易、訂單處理等。OLTP系統(tǒng)的特點(diǎn)是高并發(fā)、小數(shù)據(jù)量的事務(wù),要求快速的讀寫響應(yīng)。2.OLAP(聯(lián)機(jī)分析處理)與OLTP不同,OLAP專注于數(shù)據(jù)倉庫系統(tǒng),支持復(fù)雜的分析操作,側(cè)重于決策支持。它處理的數(shù)據(jù)量通常很大,但查詢的并發(fā)性相對(duì)較低。OLAP系統(tǒng)通常為用戶提供直觀、易懂的查詢結(jié)果,幫助決策者進(jìn)行趨勢分析、數(shù)據(jù)挖掘等操作。了解這兩者的區(qū)別對(duì)于理解Hive在大數(shù)據(jù)生態(tài)系統(tǒng)中的位置非常重要。Hive主要作為一個(gè)OLAP工具,允許用戶在Hadoop上進(jìn)行復(fù)雜的數(shù)據(jù)分析。1.1.3任務(wù)實(shí)施1.Hive概述Hive是一個(gè)為處理大規(guī)模數(shù)據(jù)集而構(gòu)建的數(shù)據(jù)倉庫工具,它專門為Hadoop生態(tài)系統(tǒng)開發(fā)。利用Hadoop的HDFS進(jìn)行數(shù)據(jù)存儲(chǔ),Hive允許分析和處理海量數(shù)據(jù),同時(shí)保持了高度的可擴(kuò)展性和容錯(cuò)能力。Hive支持表、列和數(shù)據(jù)類型的定義,但主要面向的是批量處理,而不是實(shí)時(shí)讀寫。它通過HiveQL——一種類SQL查詢語言,允許用戶執(zhí)行查詢操作,這些查詢被轉(zhuǎn)換成MapReduce作業(yè)以在Hadoop集群上運(yùn)行。Hive的用戶自定義函數(shù)(UDF)功能增加了靈活性,使得用戶可以根據(jù)需要進(jìn)行專門的數(shù)據(jù)分析??偟膩碚f,Hive為在Hadoop上的大數(shù)據(jù)分析提供了一個(gè)強(qiáng)大、靈活且可擴(kuò)展的數(shù)據(jù)倉庫解決方案。1.1.3任務(wù)實(shí)施2.Hive架構(gòu)Hive作為一個(gè)構(gòu)建在Hadoop上的數(shù)據(jù)倉庫工具,它的架構(gòu)體現(xiàn)了如何處理、存儲(chǔ)和查詢大規(guī)模數(shù)據(jù)集。以下是Hive架構(gòu)的主要組件及其功能的詳細(xì)描述。1.1.3任務(wù)實(shí)施3.Hive數(shù)據(jù)類型Hive支持多種數(shù)據(jù)類型,以滿足各種數(shù)據(jù)存儲(chǔ)和查詢需求。這些數(shù)據(jù)類型可以分為兩大類:基本數(shù)據(jù)類型和集合數(shù)據(jù)類型。Hive數(shù)據(jù)類型Java數(shù)據(jù)類型長度例子TINYINTbyte1byte有符號(hào)整數(shù)20SMALINTshort2byte有符號(hào)整數(shù)20INTint4byte有符號(hào)整數(shù)20BIGINTlong8byte有符號(hào)整數(shù)20BOOLEANboolean布爾類型,true或者falseTRUEFALSEFLOATfloat單精度浮點(diǎn)數(shù)3.14159DOUBLEdouble雙精度浮點(diǎn)數(shù)3.14159STRINGstring字符系列。可以指定字符集。可以使用單引號(hào)或者雙引號(hào)?!畁owisthetime’“forallgoodmen”TIMESTAMP

時(shí)間類型2022-10-25BINARY

字節(jié)數(shù)組基本數(shù)據(jù)類型1.1.3任務(wù)實(shí)施數(shù)據(jù)類型描述語法示例STRUCT和c語言中的struct類似,都可以通過“點(diǎn)”符號(hào)訪問元素內(nèi)容。例如,如果某個(gè)列的數(shù)據(jù)類型是STRUCT{firstSTRING,lastSTRING},那么第1個(gè)元素可以通過字段.first來引用。struct()MAPMAP是一組鍵-值對(duì)元組集合,使用數(shù)組表示法可以訪問數(shù)據(jù)。例如,如果某個(gè)列的數(shù)據(jù)類型是MAP,其中鍵->值對(duì)是’first’->’John’和’last’->’Doe’,那么可以通過字段名[‘last’]獲取最后一個(gè)元素map()ARRAY數(shù)組是一組具有相同類型和名稱的變量的集合。這些變量稱為數(shù)組的元素,每個(gè)數(shù)組元素都有一個(gè)編號(hào),編號(hào)從零開始。例如,數(shù)組值為[‘John’,‘Doe’],那么第2個(gè)元素可以通過數(shù)組名[1]進(jìn)行引用。Array()集合數(shù)據(jù)類型項(xiàng)目小結(jié)《Hive數(shù)據(jù)倉庫應(yīng)用教程》項(xiàng)目小結(jié)我們?cè)陧?xiàng)目中首先學(xué)習(xí)了數(shù)據(jù)庫、數(shù)據(jù)倉庫的概念,其中重點(diǎn)介紹了數(shù)據(jù)倉庫的特點(diǎn)和數(shù)據(jù)倉庫的數(shù)據(jù)模型以及數(shù)據(jù)倉庫的體系結(jié)構(gòu),其次進(jìn)一步學(xué)習(xí)了Hive數(shù)據(jù)倉庫的基本概念,詳細(xì)介紹了Hive的架構(gòu)和Hive的數(shù)據(jù)類型。在本項(xiàng)目中,不僅理解和掌握數(shù)據(jù)倉庫的基本概念和特點(diǎn),同時(shí)也認(rèn)識(shí)了Hive的基本概念和架構(gòu),是后續(xù)應(yīng)用Hive解決實(shí)際問題的重要基礎(chǔ)。課后練習(xí)1.簡述數(shù)據(jù)倉庫特點(diǎn)?2.簡述Hive架構(gòu)主要組件和功能?感謝您的觀看《Hive數(shù)據(jù)倉庫應(yīng)用教程》項(xiàng)目二Hive環(huán)境搭建《Hive數(shù)據(jù)倉庫應(yīng)用教程》目錄/CONTENTS任務(wù)2-1Linux環(huán)境搭建行業(yè)PPT模板/hangye/任務(wù)2-2Hadoop環(huán)境搭建123任務(wù)2-3Hive環(huán)境搭建Linux環(huán)境搭建任務(wù)2-1《Hive數(shù)據(jù)倉庫應(yīng)用教程》2.1.1任務(wù)描述本任務(wù)將學(xué)會(huì)如何使用虛擬機(jī)工具軟件VMwareWorkstation來創(chuàng)建、克隆和啟動(dòng)Linux系統(tǒng),同時(shí)在虛擬機(jī)中對(duì)Linux系統(tǒng)的網(wǎng)絡(luò)、主機(jī)名等進(jìn)行設(shè)置,為后續(xù)Hadoop和Hive的部署打下基礎(chǔ)。2.1.2任務(wù)準(zhǔn)備知識(shí)LinuxLinux全稱GNU/Linux,是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。伴隨著互聯(lián)網(wǎng)的發(fā)展,Linux得到了來自全世界軟件愛好者、組織、公司的支持。它除了在服務(wù)器方面保持著強(qiáng)勁的發(fā)展勢頭以外,在個(gè)人電腦、嵌入式系統(tǒng)上都有著長足的進(jìn)步。2.VMwareWorkstationVMwareWorkstation是一款功能強(qiáng)大的桌面虛擬計(jì)算機(jī)軟件,提供用戶可在單一的桌面上同時(shí)運(yùn)行不同的操作系統(tǒng),和進(jìn)行開發(fā)、測試、部署新的應(yīng)用程序的最佳解決方案。2.1.3任務(wù)實(shí)施1.虛擬機(jī)的安裝與創(chuàng)建步驟1:單擊圖2-2中的【創(chuàng)建新的虛擬機(jī)】選項(xiàng),打開【新建虛擬機(jī)向?qū)А繉?duì)話框,選擇【自定義(高級(jí))】選項(xiàng),然后單擊【下一步】按鈕,如圖2-3所示。圖2-2圖2-32.1.3任務(wù)實(shí)施1.虛擬機(jī)的安裝與創(chuàng)建步驟2:選擇【稍后安裝操作系統(tǒng)】,然后單擊【下一步】按鈕,如圖2-4所示。步驟3:選擇Linux,版本下拉選擇【CentOS764位】,然后單擊【下一步】按鈕,如圖2-5所示圖2-4圖2-52.1.3任務(wù)實(shí)施1.虛擬機(jī)的安裝與創(chuàng)建步驟4:填寫虛擬機(jī)名node1,選擇虛擬機(jī)文件的位置,然后單擊【下一步】按鈕,如圖2-6所示。步驟5:選擇處理器數(shù)量為1,每個(gè)處理的內(nèi)核數(shù)量為2,然后單擊【下一步】按鈕,如圖2-7所示。圖2-6圖2-72.1.3任務(wù)實(shí)施1.虛擬機(jī)的安裝與創(chuàng)建步驟6:根據(jù)自身電腦硬件配置情況,設(shè)置內(nèi)存為2048MB,也即是2GB,然后單擊【下一步】按鈕,如圖2-8所示步驟7:選擇【使用網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)】選項(xiàng),然后單擊【下一步】按鈕,如圖2-9所示。圖2-8圖2-92.1.3任務(wù)實(shí)施1.虛擬機(jī)的安裝與創(chuàng)建步驟8:選擇默認(rèn)的【LSILogic(L)】選項(xiàng),然后單擊【下一步】按鈕,如圖2-10所示。步驟9:此處選擇默認(rèn)的【SCSI(S)】選項(xiàng),然后單擊【下一步】按鈕,如圖2-11示。圖2-10圖2-112.1.3任務(wù)實(shí)施1.虛擬機(jī)的安裝與創(chuàng)建步驟10:選擇默認(rèn)的【創(chuàng)建新虛擬磁盤】選項(xiàng),然后單擊【下一步】按鈕,如圖2-12所示。。步驟11:設(shè)置最大磁盤大小為20GB,然后單擊【下一步】按鈕,如圖2-13所示。圖2-12圖2-132.1.3任務(wù)實(shí)施1.虛擬機(jī)的安裝與創(chuàng)建步驟12:設(shè)置磁盤文件名為node1.vmdk,然后單擊【下一步】按鈕,如圖2-14所示。步驟13:打開【已準(zhǔn)備好創(chuàng)建虛擬機(jī)】對(duì)話框,確認(rèn)無誤后單擊【完成】按鈕,如圖2-15所示。圖2-14圖2-152.1.3任務(wù)實(shí)施1.虛擬機(jī)的安裝與創(chuàng)建步驟14:最終完成新建虛擬機(jī)的創(chuàng)建,并在VMWare主頁右側(cè)打開node1選項(xiàng)卡,其中顯示node1虛擬機(jī)的配置情況,同時(shí)在左側(cè)【我的計(jì)算機(jī)】下出現(xiàn)node1菜單選項(xiàng),如圖2-16所示。圖2-162.1.3任務(wù)實(shí)施2.Linux安裝步驟1:在上圖2-16中點(diǎn)擊【編輯選項(xiàng)卡設(shè)置】,選擇本機(jī)Linux的鏡像文件,單擊【確定】按鈕,如圖2-17所示。步驟2:VMWare重新回到了如圖2-16的界面,此時(shí)選擇【開啟此虛擬機(jī)】,進(jìn)入安裝界面,選擇【InstallCentOS7】,按鍵盤回車鍵,開始在虛擬機(jī)中安裝Linux,如圖2-18所示。圖2-17圖2-182.1.3任務(wù)實(shí)施2.Linux安裝步驟3:選擇語言為默認(rèn)的English(UnitedStates),然后點(diǎn)擊繼續(xù)【Continue】按鈕,如圖2-19所示步驟4:設(shè)置時(shí)間與時(shí)區(qū),點(diǎn)擊【DATE&TIME】,如圖2-20所示。。圖2-19圖2-202.1.3任務(wù)實(shí)施2.Linux安裝接步驟4,打開時(shí)間與時(shí)區(qū)界面【DATE&TIME】,選擇區(qū)域?yàn)閬喼蕖続sia】,城市為上?!維hanghai】,同時(shí)可以設(shè)置時(shí)間與日期,完成設(shè)置后點(diǎn)擊完成按鈕【Done】,如圖2-21。步驟5:回到如圖2-20的安裝概覽界面,選擇并打開【SOFTWARESELECTION】界面,選擇默認(rèn)的最小化安裝【MinimalInstall】,完成設(shè)置后點(diǎn)擊完成按鈕【Done】,如圖2-22所示。圖2-21圖2-222.1.3任務(wù)實(shí)施2.Linux安裝步驟6:回到如圖2-20的安裝概覽界面,選擇并打開【INSTALLDESTINATION】界面,選擇默認(rèn)的自動(dòng)配置分區(qū)【Automaticallyconfigurepartitioning】,然后點(diǎn)擊【Done】,如圖2-23所示。步驟7:回到如圖2-20的安裝概覽界面,選擇并打開【NETWORK&HOSTNAME】界面,開啟網(wǎng)絡(luò)為【ON】狀態(tài),設(shè)置主機(jī)名為【node1】,點(diǎn)擊【Apply】按鈕,完成設(shè)置后點(diǎn)擊完成按鈕【Done】,如圖2-24所示。圖2-23圖2-242.1.3任務(wù)實(shí)施2.Linux安裝步驟8:完成配置后點(diǎn)擊開始安裝按鈕【BeginInstallation】,如圖2-25所示。步驟9:安裝過程中設(shè)置root密碼,點(diǎn)擊【ROOTPASSWORD】,如圖2-26所示。圖2-25圖2-262.1.3任務(wù)實(shí)施2.Linux安裝接步驟9,設(shè)置密碼123456,以及相同的確認(rèn)密碼,設(shè)置后點(diǎn)擊【Done】,如圖2-27所示。步驟10:安裝完成后在【CONFIGURATION】界面中點(diǎn)擊【Reboot】按鈕,將重啟Linux系統(tǒng),如圖2-28所示圖2-27圖2-282.1.3任務(wù)實(shí)施2.Linux安裝步驟11:重啟Linux系統(tǒng)后輸入用戶名root和密碼123456,出現(xiàn)Linux的提示符[root@node1~]#,如圖2-29所示,安裝Linux成功。圖2-292.1.3任務(wù)實(shí)施3.Linux克隆步驟1:在如圖選中的node1,快捷鍵【Ctrl+E】關(guān)閉虛擬機(jī),點(diǎn)擊【關(guān)機(jī)】在如圖2-30所示,步驟2:右鍵node1虛擬機(jī),彈出快捷菜單,選擇【管理】

【克隆】菜單,在如圖2-31所示,圖2-30圖2-312.1.3任務(wù)實(shí)施3.Linux克隆接步驟2,

彈出克隆虛擬機(jī)向?qū)Ы缑?,如圖2-32所示,點(diǎn)擊【下一頁】按鈕。步驟3:步驟3:在克隆源頁面選擇【虛擬機(jī)中的當(dāng)前狀態(tài)(C)】,如圖2-33所示圖2-32圖2-332.1.3任務(wù)實(shí)施3.Linux克隆步驟4:在克隆類型頁面選擇【創(chuàng)建完整克隆(F)】,然后點(diǎn)擊【下一頁】按鈕,如圖2-34所示。步驟5:填寫虛擬機(jī)名稱為【node2】,位置填寫【D:\node2】,點(diǎn)擊【完成】按鈕,如圖3-35。圖2-34圖2-352.1.3任務(wù)實(shí)施3.Linux克隆步驟6:用同樣的方法,重復(fù)上述步驟,即可完成node3虛擬機(jī)的創(chuàng)建,最終三臺(tái)虛擬機(jī)創(chuàng)建完成的情況如圖3-36所示。圖2-362.1.3任務(wù)實(shí)施4.Linux配置步驟1:修改主機(jī)名,啟動(dòng)名為node2的虛擬機(jī),輸入用戶名root和密碼123456登錄系統(tǒng),在Linux提示符輸入修改主機(jī)名的命令,然后在重啟虛擬機(jī),以便設(shè)置的新主機(jī)名node2生效,具體命令如圖2-37所示。[root@node1~]#hostnamectlset-hostnamenode2[root@node1~]#reboot圖2-372.1.3任務(wù)實(shí)施4.Linux配置接步驟1,重啟node2虛擬機(jī)的主機(jī)名被修改成了node2,如圖2-38所示,用同樣的方法也把node3虛擬機(jī)的主機(jī)名改成node3.圖2-382.1.3任務(wù)實(shí)施4.Linux配置步驟2:修改網(wǎng)絡(luò)配置,啟動(dòng)node2虛擬機(jī),輸入查看網(wǎng)絡(luò)配置文件目錄的命令,具體如下[root@node2~]#ls/etc/sysconfig/network-scripts/在此目錄下可以看到網(wǎng)絡(luò)配置文件ifcfg-ens33,如圖2-39所示圖2-392.1.3任務(wù)實(shí)施4.Linux配置使用vi編輯命令修改網(wǎng)絡(luò)配置文件,具體命令如下,如圖2-40所示。[root@node2~]#vi/etc/sysconfig/network-scripts/ifcfg-ens33圖2-402.1.3任務(wù)實(shí)施4.Linux配置使用vi編輯命令修改網(wǎng)絡(luò)配置文件,修改完保存配置并退出vi編輯器,網(wǎng)絡(luò)配置如圖2-41所示。圖2-412.1.3任務(wù)實(shí)施4.Linux配置由于node2是完全克隆node1、網(wǎng)絡(luò)配置中的UUID也完全相同,UUID是虛擬機(jī)的唯一標(biāo)識(shí)碼,通過命令來重新生成UUID,具體命令如下:[root@node2~]#sed-i'/UUID=/c\UUID='`uuidgen`''/etc/sysconfig/network-scripts/ifcfg-ens33注意區(qū)分上述命令中的單引號(hào)“'”與反引號(hào)“`'”。完成上述node2的網(wǎng)絡(luò)設(shè)置與UUID的重生成后一定要執(zhí)行servicenetworkrestart命令,使其生效。使用同樣的方法設(shè)置node1的ip為28,node3的ip為30,其他網(wǎng)絡(luò)配置相同,同時(shí)也將node3的UUID重生成。2.1.3任務(wù)實(shí)施5.Xshell連接Linux虛擬機(jī)步驟1:打開Xshell工作窗口,點(diǎn)擊【文件】

【新建會(huì)話屬性】菜單,打開如圖【新建會(huì)話屬性】窗口,在名稱處輸入【node1】,主機(jī)輸入【28】,然后點(diǎn)擊【確定】按鈕,如圖所示。步驟2:新建連接后,打開【會(huì)話】窗口,選中node1,點(diǎn)擊【連接】按鈕,如圖43所示。圖2-42圖2-432.1.3任務(wù)實(shí)施5.Xshell連接Linux虛擬機(jī)步驟3:在打開【SSH用戶名】窗口中輸入用戶名root,勾選【記住用戶名】然后點(diǎn)擊【確定】按鈕。如圖2-44所示步驟4:在打開【SSH用戶身份驗(yàn)證】窗口中輸入密碼123456,勾選【記住密碼】,如圖45所示圖2-44圖2-452.1.3任務(wù)實(shí)施5.Xshell連接Linux虛擬機(jī)用同樣的方法新建node2、node3連接,最終Xshell連接三臺(tái)虛擬機(jī)的效果如圖2-46、圖2-47、圖2-48所示,后面就可以通過Xshell來連接虛擬機(jī)完成Hadoop、Hive等相關(guān)操作。圖2-46圖2-47圖2-48Hadoop環(huán)境搭建任務(wù)2-2《Hive數(shù)據(jù)倉庫應(yīng)用教程》2.2.1任務(wù)描述Hive數(shù)據(jù)倉庫底層的數(shù)據(jù)存儲(chǔ)依賴的是Hadoop平臺(tái)的分布式文件系統(tǒng)(HDFS)。因此在搭建Hive之前需要先部署Hadoop環(huán)境,本任務(wù)將學(xué)會(huì)如何搭建全分布式Hadoop環(huán)境,為后續(xù)搭建Hive數(shù)據(jù)倉庫打好基礎(chǔ)。2.2.2任務(wù)準(zhǔn)備知識(shí)Hadoop搭建有三種模式,分別為單機(jī)模式、偽分布模式、全分布模式。單機(jī)(本地)模式:這種模式在一臺(tái)單機(jī)上運(yùn)行,沒有分布式文件系統(tǒng),而是直接讀寫本地操作系統(tǒng)的文件系統(tǒng)。偽分布式模式:也是在一臺(tái)單機(jī)上運(yùn)行,但用不同的Java進(jìn)程模仿分布式運(yùn)行中的各類結(jié)點(diǎn)全分布式模式:全分布模式通常被用于生產(chǎn)環(huán)境,使用n臺(tái)主機(jī)組成一個(gè)Hadoop集群,Hadoop守護(hù)進(jìn)程運(yùn)行在每臺(tái)主機(jī)之上2.2.3任務(wù)實(shí)施1.準(zhǔn)備工作步驟1:配置主機(jī)名與IP的映射,修改node1的/etc/hosts文件,命令如下:[root@node1~]#vi/etc/hosts在文件末尾添加如圖2-49內(nèi)容,然后保存退出。node2、node3都做同樣的修改。圖2-492.2.3任務(wù)實(shí)施1.準(zhǔn)備工作步驟2:SSH免密登錄,在完全分布式模式下,集群內(nèi)任意一臺(tái)主機(jī)可免密登錄集群內(nèi)所有主機(jī),即實(shí)現(xiàn)了兩兩免密登錄。以node1免密登錄集群內(nèi)其他所有主機(jī)為例進(jìn)行操作。1.在node1生成密鑰對(duì),使用“ssh-keygen-trsa”命令生成密鑰對(duì),其中rsa表示加密算法,鍵入上面一條命令后連續(xù)敲擊四次回車鍵,如圖2-50所示:在/root/.ssh目錄下生成公鑰(id_rsa.pub)和私鑰(id_rsa),可通過命令“l(fā)s/root/.ssh”查看,如圖2-51所示。圖2-50圖2-512.2.3任務(wù)實(shí)施1.準(zhǔn)備工作接步驟2,2.將node1公鑰id_rsa.pub復(fù)制到node1、node2和node3主機(jī)上,使用“ssh-copy-id”命令來復(fù)制公鑰,命令如下,[root@node1~]#ssh-copy-idnode1[root@node1~]#ssh-copy-idnode2[root@node1~]#ssh-copy-idnode3執(zhí)行命令過程中會(huì)提示輸入密碼,此處密碼都為123456。3.驗(yàn)證免密登錄,在nodel主機(jī)輸入“sshnode2”、“sshnode2”命令驗(yàn)證,驗(yàn)證結(jié)果如圖2-52所示。圖2-522.1.3任務(wù)實(shí)施2.安裝JDK步驟1:解壓JDK,在node1使用mkdir命令創(chuàng)建/tools目錄,使用Xftp新建連接node1的會(huì)話,如圖2-53所示。將本機(jī)事先從Oracal官網(wǎng)下載的jdk-8u221-linux-x64.tar上傳到node1的tools目錄下,如圖2-54所示:圖2-53圖2-542.1.3任務(wù)實(shí)施2.安裝JDK將當(dāng)前目錄切換到/tools目錄,可以通過ls命令查看通過Xftp上傳的到/tool目錄下的jdk安裝包,然后使用tar命令將jdk安裝包解壓到tools文件內(nèi),如圖2-55所示:使用mv命令將jdk1.8.0_221安裝目錄重命名,以便后面進(jìn)行配置的時(shí)候更加簡潔,重命名如圖2-56所示圖2-55圖2-562.1.3任務(wù)實(shí)施2.安裝JDK步驟2:配置環(huán)境變量,使用vi/etc/profile命令編輯系統(tǒng)的環(huán)境變量文件,在文件尾部添加如下內(nèi)容,如圖2-57所示。exportJAVA_HOME=/tools/jdkexportPATH=$PATH:$JAVA_HOME/binexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar圖2-57圖2-58配置環(huán)境變量后記住一定要使用source/etc/profile命令使得配置生效,然后使用java-version命令驗(yàn)證JDK環(huán)境是否配置成功,如圖2-58所示2.1.3任務(wù)實(shí)施2.安裝JDK步驟3:遠(yuǎn)程拷貝JDK與配置文件,使用scp命令將node1的JDK安裝包與配置文件遠(yuǎn)程拷貝到node2與node3虛擬機(jī)里,拷貝前在node2、node3虛擬機(jī)的根目錄下新建tools目錄,命令如下:[root@node1/]#scp-r/tools/jdk/root@node2:/tools[root@node1/]#scp-r/tools/jdk/root@node3:/tools遠(yuǎn)程拷貝配置文件的命令如下:[root@node1/]#scp/etc/profileroot@node2:/etc/profile[root@node1/]#scp/etc/profileroot@node3:/etc/profile配置文件拷貝后一定要使用source/etc/profile命令使配置在node2、node3虛擬機(jī)生效,同時(shí)再使用java-version命令驗(yàn)證一下JDK是否安裝成功。2.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟1:將事先下載的Hadoop安裝包hadoop-2.7.4.tar.gz使用Xftp工具上傳到node1的tools目錄下,如圖2-59所示.在node1中將當(dāng)前目錄切換到/tools目錄,可以通過ls命令查看通過Xftp上傳的到/tool目錄下的Hadoop安裝包,然后使用tar命令將Hadoop安裝包解壓到tools文件夾內(nèi),如圖2-60所示:圖2-59圖2-602.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)接步驟1,使用mv命令將hadoop-2.7.4安裝目錄重命名為hadoop,以便后面進(jìn)行配置的時(shí)候更加簡潔,重命名如圖2-61所示步驟2:配置Hadoop用vi/etc/profile命令編輯系統(tǒng)的環(huán)境變量文件,在文件尾部添加如下內(nèi)容,如圖2-62所示。exportHADOOP_HOME=/tools/hadoopexportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin圖2-61圖2-622.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)接步驟2,配置環(huán)境變量后記住一定要使用source/etc/profile命令使得配置生效,同時(shí)使用hadoopversion命名驗(yàn)證Hadoop環(huán)境是否配置成功,如圖2-63所示圖2-632.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟3:配置Hadoop集群1.編輯hadoop-env.sh文件用Xshell連接node1,hadoop-env.sh在hadoop安裝目錄的etc/hadoop目錄下,用vi命令編輯hadoop-env.sh,指定Hadoop運(yùn)行的Java環(huán)境變量,將JAVA_HOME設(shè)置為node1中JDK的安裝路徑,如圖2-64所示。圖2-642.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟3:配置Hadoop集群2.編輯yarn-env.sh文件yarn-env.sh在hadoop安裝目錄的etc/hadoop目錄下,用vi命令編輯yarn-env.sh,指定Yarn運(yùn)行的Java環(huán)境變量,將JAVA_HOME設(shè)置為node1中JDK的安裝路徑,如圖2-65所示圖2-652.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟3:配置Hadoop集群3.編輯core-site.xml文件core-site.xml在hadoop安裝目錄的etc/hadoop目錄下,是Hadoop的核心配置文件,用vi命令編輯core-site.xml,指定namenode的地址在node1上,同時(shí)設(shè)置Hadoop的臨時(shí)目錄(事先使用mkdir命令在hadoop目錄下新建tmp目錄),在<configuration>標(biāo)簽內(nèi)添加內(nèi)容如下,完成配置后如圖2-66所示。<property><name>fs.defaultFS</name><value>hdfs://node1:9000</value></property><property><name>hadoop.tmp.dir</name><value>/tools/hadoop/tmp</value></property>圖2-662.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟3:配置Hadoop集群4.編輯hdfs-site.xml文件hdfs-site.xml在hadoop安裝目錄的etc/hadoop目錄下,是HDFS的核心配置文件,用vi命令編輯hdfs-site.xml,指定HDFS的數(shù)量,同時(shí)設(shè)置secondarynamenode所在主機(jī)的和端口,在<configuration>標(biāo)簽內(nèi)添加內(nèi)容如下,完成配置后如圖2-67所示。

<property><name>dfs.replication</name><value>3</value></property><property><name>node.secondary.http-address</name><value>node2:50090</value></property>圖2-672.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟3:配置Hadoop集群5.編輯mapred-site.xml文件在hadoop安裝目錄的etc/hadoop目錄下只有mapred-site.xml.template文件,使用cpmapred-site.xml.templatemapred-site.xml命令拷貝模板來新建mapred-site.xml文件,用vi命令編輯mapred-site.xml,指定MapReduce運(yùn)行時(shí)的框架,這里指定在YARN上,默認(rèn)在local,在<configuration>標(biāo)簽內(nèi)添加內(nèi)容如下,完成配置后如圖6-68所示:<property><name></name><value>yarn</value></property>圖2-682.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟3:配置Hadoop集群6.編輯yarn-site.xml文件yarn-site.xml在hadoop安裝目錄的etc/hadoop目錄下,用vi命令編輯yarn-site.xml,指定YARN集群的管理者(ResourceManager)的地址,在<configuration>標(biāo)簽內(nèi)添加內(nèi)容如下,完成配置后如圖2-69所示:<property><name>yarn.resourcemanager.hostname</name><value>node1</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>圖2-692.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟3:配置Hadoop集群7.編輯slaves文件slaves在hadoop安裝目錄的etc/hadoop目錄下,用vi命令編輯slaves,將文件中的localhost刪除,添加主節(jié)點(diǎn)和子節(jié)點(diǎn)的主機(jī)名稱,此處主節(jié)點(diǎn)為node1,子節(jié)點(diǎn)為node2和node3,完成配置后如圖2-70所示圖2-702.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟3:配置Hadoop集群8.遠(yuǎn)程拷貝Hadoop安裝包與配置文件使用scp命令將node1的Hadoop安裝包與配置文件遠(yuǎn)程拷貝到node2與node3虛擬機(jī)里,遠(yuǎn)程拷貝Hadoop安裝包的命令如下。[root@node1/]#scp-r/tools/hadoop/root@node2:/tools[root@node1/]#scp-r/tools/hadoop/root@node3:/tools遠(yuǎn)程拷貝配置文件的命令如下:[root@node1/]#scp/etc/profileroot@node2:/etc/profile[root@node1/]#scp/etc/profileroot@node3:/etc/profile配置文件拷貝后一定要使用source/etc/profile命令使配置在node2、node3虛擬機(jī)生效。2.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟4:主節(jié)點(diǎn)文件系統(tǒng)格式化,在node1上執(zhí)行hdfsnamenode–format命令,對(duì)主節(jié)點(diǎn)上的文件系統(tǒng)進(jìn)行格式化,此命令只在初次啟動(dòng)Hadoop的時(shí)候執(zhí)行,出現(xiàn)successfullyformatted信息則表明格式化成功,如圖2-71所示。圖2-712.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟5:配置Hadoop集群使用start-dfs.sh命令啟動(dòng)Hadoop集群的HDFS,node1和node2的NameNode,以及node1、node2和node3的DataNode都會(huì)被啟動(dòng)。使用start-yarn.sh命令啟動(dòng)Hadoop集群的Yarn,node1的ResourceManager和node1、node2和node3的NodeManager都會(huì)被啟動(dòng)。兩個(gè)命令及其執(zhí)行結(jié)果如圖2-72所示圖2-722.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟6:使用jps命令查看進(jìn)程在node1、node2和node3上分別執(zhí)行jps命令,查看完全分布模式Hadoop集群是否啟動(dòng)成功效果如圖2-73、圖2-74、圖2-75所示。圖2-73圖2-74圖2-752.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟7:關(guān)閉防火墻默認(rèn)情況下CentOS7是開啟防火墻的,在node1、node2和node3上分別執(zhí)行關(guān)閉防火墻服務(wù)和禁止防火墻開機(jī)啟動(dòng)命令,如下所示[root@node1/]#systemctlstopfirewalld[root@node1/]#systemctldisablefirewalld步驟8:在Windows系統(tǒng)下,訪問28:50070,查看HDFS集群狀態(tài),如圖2-76所示圖2-762.1.3任務(wù)實(shí)施3.部署Hadoop(完全分布模式)步驟9:在Windows系統(tǒng)下,訪問28:8088,查看Yarn集群狀態(tài),如圖2-77所示圖2-77搭建Hive環(huán)境任務(wù)2-3《Hive數(shù)據(jù)倉庫應(yīng)用教程》2.3.1任務(wù)描述Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具,用來進(jìn)行數(shù)據(jù)的提取、轉(zhuǎn)化和加載,這是一種可以存儲(chǔ)、查詢和分析存儲(chǔ)在Hadoop中的大規(guī)模數(shù)據(jù)的機(jī)制。Hive數(shù)據(jù)倉庫工具能將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供SQL查詢功能,能將SQL語句轉(zhuǎn)變成MapReduce任務(wù)來執(zhí)行。Hive十分適合對(duì)數(shù)據(jù)倉庫進(jìn)行統(tǒng)計(jì)分析,本任務(wù)將學(xué)會(huì)Hive的三種部署模式的搭建過程,為后續(xù)Hive數(shù)據(jù)倉庫操作打好基礎(chǔ)。2.3.2任務(wù)準(zhǔn)備知識(shí)Hive部署模式有內(nèi)嵌模式、本地模式、遠(yuǎn)程模式等3種,客戶端連接MetaStore元數(shù)據(jù)服務(wù),MetaStore再去連接MySQL數(shù)據(jù)庫進(jìn)行元數(shù)據(jù)存取。1.內(nèi)嵌模式:使用內(nèi)置的Derby數(shù)據(jù)庫來存儲(chǔ)元數(shù)據(jù),是默認(rèn)的方式,解壓hive安裝包,執(zhí)行bin/hive啟動(dòng)即可使用,但是一次只能一個(gè)客戶端連接,不支持多會(huì)話連接,元數(shù)據(jù)無法共享,一般適用于測試環(huán)境。2.本地模式:采用獨(dú)立的數(shù)據(jù)庫來存儲(chǔ)元數(shù)據(jù),支持MySQL、Postgres、Oracle等數(shù)據(jù)庫。MetaStore服務(wù)和Hive在同一個(gè)進(jìn)程中啟動(dòng),無需單獨(dú)啟動(dòng)MetaStore服務(wù),支持本地多會(huì)話連接。3.遠(yuǎn)程模式:遠(yuǎn)程模式的MetaStore服務(wù)和Hive運(yùn)行在不同的進(jìn)程里,Hive客戶端通過遠(yuǎn)程連接MetaStore服務(wù)獲取元數(shù)據(jù),遠(yuǎn)程模式同樣使用獨(dú)立數(shù)據(jù)庫來存儲(chǔ)元數(shù)據(jù),并且支持遠(yuǎn)程多會(huì)話連接。2.2.3任務(wù)實(shí)施1.內(nèi)嵌模式的部署步驟1:步驟一:將本機(jī)事先下載的Hive安裝包apache-hive-2.3.9-bin.tar.gz使用Xftp工具上傳到node1的tools目錄下,如圖2-78所示,在node1中將當(dāng)前目錄切換到/tools目錄,使用tar命令將Hive安裝包解壓到tools文件夾內(nèi),如圖2-79所示:圖2-78圖2-79使用mv命令將apache-hive-2.3.9-bin安裝目錄重命名為hive,以便后面進(jìn)行配置的時(shí)候更加簡潔,重命名如圖2-80所示圖2-802.1.3任務(wù)實(shí)施1.內(nèi)嵌模式的部署步驟2:啟動(dòng)Hadoop,使用前述的start-dfs.sh和start-yarn.sh命令啟動(dòng)Hadoop。步驟3:初始化Hive,啟動(dòng)Hive之前需要初始化Hive內(nèi)嵌的Derby數(shù)據(jù)庫,具體命令如下,運(yùn)行結(jié)果顯示schmaToolcompleted表明初始化成功,如圖2-81所示[root@node1hive]#bin/schematool-initSchema-dbTypederby圖2-812.1.3任務(wù)實(shí)施1.內(nèi)嵌模式的部署步驟4:啟動(dòng)Hive,使用bin/hive命令在初始化的目錄啟動(dòng)hive,運(yùn)行成功后則顯示hive提示符,同時(shí)可以使用showdatabases命令查看hive數(shù)據(jù)庫,如果能查看到默認(rèn)的hive數(shù)據(jù)庫default,表明內(nèi)嵌模式的Hive部署成功,如圖2-82所示圖2-822.1.3任務(wù)實(shí)施2.本地模式的部署步驟1:安裝MySQL1.下載wget命令[root@node2/]#yum-yinstallwget2.在tools下創(chuàng)建mysql文件夾,同時(shí)切換到mysql目錄下[root@node2/]#mkdir-p/tools/mysql[root@node2/]#cd/tools/mysql3.下載官方mysql-rpm包[root@node2mysql]#wget-i-c/get/mysql57-community-release-el7-10.noarch.rpm4.安裝下載好的rpm包[root@node2mysql]#yum-yinstallmysql57-community-release-el7-10.noarch.rpm5.安裝mysql-server[root@node2mysql]#yum-yinstallmysql-community-server6.MySQLGPG密鑰已過期導(dǎo)致的安裝失敗,運(yùn)行以下命令,以2022年為例[root@node2mysql]rpm--importhttps:///RPM-GPG-KEY-mysql-20222.1.3任務(wù)實(shí)施2.本地模式的部署步驟1:安裝MySQL7.再次安裝mysql-server,安裝成功則顯示“Complete!”,如圖2-83所示[root@node2mysql]#yum-yinstallmysql-community-server圖2-832.1.3任務(wù)實(shí)施2.本地模式的部署步驟1:安裝MySQL8.啟動(dòng)mysql,并查看狀態(tài),啟動(dòng)成功則顯示“active(running)”,如圖2-84所示[root@node2mysql]systemctlstartmysqld.service[root@node2mysql]servicemysqldstatus9.查看MySQL初始密碼,如圖2-85所示[root@node2mysql]grep'password'/var/log/mysqld.log圖2-84圖2-852.1.3任務(wù)實(shí)施2.本地模式的部署步驟1:安裝MySQL10.通過初始密碼登錄mysql,提示輸入的密碼為前面查看到的初始密碼,如圖2-86所示[root@node2mysql]mysql-uroot–p11.初始密碼復(fù)雜沒有規(guī)律,不便記憶,登錄后可以修改密碼,此處把密碼修改成了Hive@2022,如圖2-87所示[root@node2mysql]ALTERUSERUSER()IDENTIFIEDBY'Hive@2022';[root@node2mysql]FLUSHPRIVILEGES;圖2-86圖2-872.1.3任務(wù)實(shí)施2.本地模式的部署步驟2:上傳并安裝Hive到node2的tools目錄下,過程參看嵌入模式的步驟一步驟3:配置Hive,進(jìn)入hive安裝目錄的conf目錄下,根據(jù)配置模板文件新建hive-env.sh[root@node2mysql]cdconf[root@node2conf]cphive-env.sh.templatehive-env.sh用vi命令編輯hive-env.sh,添加以下配置項(xiàng),配置完結(jié)果如圖2-88所示exportHADOOP_HOME=/tools/hadoopexportHIVE_CONF_DIR=/tools/hive/confexportHIVE_AUX_JARS_PATH=/tools/hive/libexportJAVA_HOME=/tools/jdk圖2-882.1.3任務(wù)實(shí)施2.本地模式的部署步驟4:配置Hive,/tools/hive目錄下新建warehouse目錄和tmp目錄,然后在/tools/hive/conf目錄下用vi新建hive-site.xml并配置相關(guān)信息[root@node2hive]cdconf[root@node2conf]vihive-site.xml<?xmlversion="1.0"encoding="UTF-8"standalone="no"?><?xml-stylesheettype="text/xsl"href="configuration.xsl"?><configuration><!--配置Hive數(shù)據(jù)存儲(chǔ)在HDFS上的目錄--><property><name>hive.metastore.warehouse.dir</name><value>/tools/hive/warehouse</value></property>

<!--配置Hive在HDFS上的臨時(shí)目錄--><property><name>hive.exec.scratchdir</name><value>/tools/hive/tmp</value></property>

<!--配置Hive開啟本地模式-><property><name>hive.metastore.local</name><value>true</value></property>

<!--配置MySQL的連接字符串--><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&usessL=false</value></property>

<!--配置MySQL的連接驅(qū)動(dòng)--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property>

<!--配置登錄MySQL的用戶--><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property>

<!--配置登錄MySQL的密碼--><property><name>javax.jdo.option.ConnectionPassword</name><value>Hive@2022</value></property>

<!--配置在cli中是顯示表的列名--><property><name>hive.cli.print.header</name><value>true</value></property>

<!--配置在cli中是顯示當(dāng)前數(shù)據(jù)庫名--><property><name>hive.cli.print.current.db</name><value>true</value></property>

<!--配置beeline訪問連接被拒絕問題-><property><name>hive.server2.enable.doAs</name><value>false</value></property></configuration>2.1.3任務(wù)實(shí)施2.本地模式的部署步驟5:用Xftp將JDBC連接MySQL的驅(qū)動(dòng)包mysql-connector-java-5.1.49從本地上傳到node2虛擬機(jī)/tools/hive/lib目錄下面,如圖2-89所示步驟6:配置hive環(huán)境變量,使用vi/etc/profile命令編輯系統(tǒng)的環(huán)境變量文件,在文件尾部添加如下內(nèi)容,如圖2-90exportHIVE_HOME=/tools/hiveexportPATH=$PATH:$HIVE_HOME/bin圖2-89圖2-90配置環(huán)境變量后記住一定要使用source/etc/profile命令使得配置生效2.1.3任務(wù)實(shí)施2.本地模式的部署步驟7:初始化mysql,運(yùn)行以下命令,看到“schemaToolcompleted”,則表明初始化成功,如圖2-91所示[root@node2hive]#schematool-initSchema-dbTypemysql步驟8:輸入hive命令,顯示hive>提示符則說明Hive本地模式部署以及配置成功,如圖2-92所示圖2-91圖2-922.1.3任務(wù)實(shí)施3.遠(yuǎn)程模式的部署步驟1:node2啟動(dòng)HiveServer2服務(wù)在node2虛擬機(jī)上運(yùn)行hiveserver2命令,啟動(dòng)HiveServer2服務(wù),HiveServer2啟動(dòng)成功后如圖2-93所示。步驟2:上傳并安裝Hive到node3的tools目錄下,參看嵌入模式的步驟1圖2-932.1.3任務(wù)實(shí)施3.遠(yuǎn)程模式的部署步驟3:配置Hive,/tools/hive目錄下新建warehouse目錄和tmp目錄,然后在/tools/hive/conf目錄下用vi新建hive-site.xml并配置相關(guān)信息[root@node3hive]cdconf[root@node3conf]vihive-site.xml<?xmlversion="1.0"encoding="UTF-8"standalone="no"?><?xml-stylesheettype="text/xsl"href="configuration.xsl"?><configuration><!--配置Hive數(shù)據(jù)存儲(chǔ)在HDFS上的目錄--><property><name>hive.metastore.warehouse.dir</name><value>/hive/warehouse</value></property>

<!--配置Hive在HDFS上的臨時(shí)目錄--><property><name>hive.exec.scratchdir</name><value>/tools/hive/tmp</value></property>

<!--配置Hive開啟本地模式-><property><name>hive.metastore.local</name><value>false</value></property>

<property><name>hive.metastore.uris</name><value>thrift://node2:9083</value></property></configuration>2.1.3任務(wù)實(shí)施3.遠(yuǎn)程模式的部署步驟4:配置node3的hive環(huán)境變量,使用vi/etc/profile命令編輯系統(tǒng)的環(huán)境變量文件,在文件尾部添加如下內(nèi)容,如圖2-94所示。exportHIVE_HOME=/tools/hiveexportPATH=$PATH:$HIVE_HOME/bin圖2-94配置環(huán)境變量后記住一定要使用source/etc/profile命令使得配置生效2.1.3任務(wù)實(shí)施3.遠(yuǎn)程模式的部署步驟5:node3啟動(dòng)Hive客戶端,在node3虛擬機(jī)上運(yùn)行Hive的客戶端工具beeline來遠(yuǎn)程連接node服務(wù)端,命令如下:[root@node3~]#beeline-ujdbc:hive2://node2:10000-nroot–p上述命令beeline表示客戶端連接命令;-u為beeline命令參數(shù),表示連接的HiveServer2的服務(wù)端地址;-n表示服務(wù)端用戶名;-p為服務(wù)端用戶密碼。連接成功后如圖2-95所示。圖2-952.1.3任務(wù)實(shí)施3.遠(yuǎn)程模式的部署步驟6:驗(yàn)證Hive遠(yuǎn)程連接在node3虛擬機(jī)的beeline客戶端工具中執(zhí)行showdatabases命令,查看服務(wù)端數(shù)據(jù)庫列表,如果能夠顯示node2中Hive數(shù)據(jù)庫列表則表示遠(yuǎn)程連接成功,如圖2-96所示。圖2-96項(xiàng)目總結(jié)我們?cè)陧?xiàng)目中首先學(xué)習(xí)了虛擬機(jī)軟件的安裝、創(chuàng)建,在虛擬機(jī)中安裝和克隆Linux系統(tǒng),以及進(jìn)行網(wǎng)絡(luò)配置的詳細(xì)步驟,其次介紹了Hadoop環(huán)境的搭建過程,包括如何配置主機(jī)名與IP的映射,SSH免密登錄,JDK的安裝,Hadoop的完全分布式部署的步驟,最后詳細(xì)介紹了Hive內(nèi)嵌模式、本地模式、遠(yuǎn)程模式這三種模式的搭建過程。在本項(xiàng)目中,不僅掌握虛擬機(jī)安裝Linux的過程,同時(shí)掌握了Hadoop完全分布式部署步驟,以及Hive三種模式的安裝與部署。感謝您的觀看《Hive數(shù)據(jù)倉庫應(yīng)用教程》項(xiàng)目三Hive基本語法《Hive數(shù)據(jù)倉庫應(yīng)用教程》目錄/CONTENTS任務(wù)3-1認(rèn)識(shí)數(shù)據(jù)類型行業(yè)PPT模板/hangye/任務(wù)3-2認(rèn)識(shí)運(yùn)算符1234任務(wù)3-3認(rèn)識(shí)Hive命令任務(wù)3-4存儲(chǔ)數(shù)據(jù)認(rèn)識(shí)數(shù)據(jù)類型任務(wù)3-1《Hive數(shù)據(jù)倉庫應(yīng)用教程》3.1.1任務(wù)描述在當(dāng)前的任務(wù)中,我們將深入探討Hive基本數(shù)據(jù)類型、復(fù)雜數(shù)據(jù)類型及數(shù)據(jù)類型之間的轉(zhuǎn)換。數(shù)據(jù)表的設(shè)計(jì)與實(shí)現(xiàn)將直接影響數(shù)據(jù)庫的運(yùn)行效率。通過本次任務(wù),讀者將更好地理解Hive數(shù)據(jù)類型為認(rèn)識(shí)和理解數(shù)據(jù)表結(jié)構(gòu)打下基礎(chǔ)。3.1.2任務(wù)準(zhǔn)備知識(shí)1.Hive數(shù)據(jù)類型的概念(1)數(shù)據(jù)類型是如何在文本文件中進(jìn)行表示的(2)考慮文本存儲(chǔ)中為了解決各種性能問題2.Hive支持的數(shù)據(jù)類型(1)基本數(shù)據(jù)類型(數(shù)值型、字符串型、布爾型、日期時(shí)間型)(2)復(fù)雜數(shù)據(jù)類型(數(shù)組(Array)、映射(Map)和結(jié)構(gòu)體(Struct)類型)3.1.3任務(wù)實(shí)施1.Hive基本數(shù)據(jù)類型基本數(shù)據(jù)類型基本數(shù)據(jù)類型TINYINTSTRINGSMALLINTVARCHARINTCHARBIGINTBOOLEANFLOATDATEDOUBLETIMESTAMPDECIMALBINARYNUMERIC3.1.3任務(wù)實(shí)施2.Hive復(fù)雜數(shù)據(jù)類型包括:數(shù)組Array、映射Map、結(jié)構(gòu)體StructArray類型聲明格式為Array<data_type>,表示相同數(shù)據(jù)類型的數(shù)據(jù)所構(gòu)成的集合。Array元素的訪問通過從0下標(biāo)開始。Map類型通過Map<key,value>鍵值對(duì)來聲明,key只能是基本數(shù)據(jù)類型,value可以是任意數(shù)據(jù)類型。Map數(shù)據(jù)元素的訪問使用[],例Map[‘Tom’]。Struct類型包含不同數(shù)據(jù)類型的元素,其類型可以是任意的基本數(shù)據(jù)類型。Struct類型更靈活,可以存儲(chǔ)多種數(shù)據(jù)類型的數(shù)據(jù),Struct元素的訪問使用點(diǎn)運(yùn)算符。3.1.3任務(wù)實(shí)施2.Hive復(fù)雜數(shù)據(jù)類型包括:數(shù)組Array、映射Map、結(jié)構(gòu)體Struct這里有一個(gè)用于演示如何使用這些數(shù)據(jù)類型的表結(jié)構(gòu)聲明語句,這是一張?zhí)摌?gòu)的表:CREATETABLEcomplex(nameSTRING,friendsARRAY<STRING>,ChildrenMAP<STRING,INT>,AddressSTRUCT<street:STRING,city:STRING>);其中,name是一個(gè)簡單的字符串﹔friends使用的是數(shù)組類型,children使用的是map類型,包括孩子的姓名和年齡分別使用了字符串和整型。address字段使用的是struct類型,包括street和city都使用字符串類型。3.1.3任務(wù)實(shí)施3.Hive類型轉(zhuǎn)換(1)隱式類型轉(zhuǎn)換所有整數(shù)類型、FLOAT和STRING類型都可以隱式地轉(zhuǎn)換成DOUBLE。

TINYINT、SMALLINT、INT都可以轉(zhuǎn)換為FLOAT。BOOLEAN類型不可以轉(zhuǎn)換為任何其它的類型。TimeStamp類型和Date類型可以隱式地轉(zhuǎn)換成文本類型(2)強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換的語法格式:CAST(exprAS<type>)例如CAST(1'ASINT)將把字符串'1'轉(zhuǎn)換成整數(shù)1;如果強(qiáng)制類型轉(zhuǎn)換失敗,如執(zhí)行CAST('80'ASINT),表達(dá)式返回空值NULL。Hive可以在TimeStamp類型與Date類型和字符串類型之間進(jìn)行強(qiáng)制轉(zhuǎn)換。認(rèn)識(shí)運(yùn)算符任務(wù)3-2《Hive數(shù)據(jù)倉庫應(yīng)用教程》3.2.1任務(wù)描述

在Hive的基本操作中,經(jīng)常需要查詢出數(shù)據(jù)表中滿足條件的數(shù)據(jù),往往條件不是單一的,需要配合相應(yīng)的運(yùn)算符來進(jìn)行實(shí)現(xiàn)。本任務(wù)將學(xué)會(huì)Hive的不同運(yùn)算符,包括關(guān)系運(yùn)算符、算術(shù)運(yùn)算符、邏輯運(yùn)算符、復(fù)雜運(yùn)算符等。為實(shí)現(xiàn)數(shù)據(jù)表的查詢打下基礎(chǔ)。3.2.2任務(wù)準(zhǔn)備知識(shí)

Hive運(yùn)算符與其他高級(jí)語言中運(yùn)算符類似,由變量、常量等連接表達(dá)式中的各個(gè)操作數(shù),其作用是指明對(duì)操作數(shù)進(jìn)行運(yùn)算。Hive中常見的運(yùn)算符有關(guān)系運(yùn)算符、算術(shù)運(yùn)算符、邏輯運(yùn)算符、復(fù)雜運(yùn)算符。3.2.3任務(wù)實(shí)施1.關(guān)系運(yùn)算符關(guān)系運(yùn)算符又稱比較運(yùn)算符,用于比較兩個(gè)表達(dá)式的值,其運(yùn)算結(jié)果為邏輯值,可以為True、False或NULL。(1)=運(yùn)算符=運(yùn)算符用于比較表達(dá)式的兩邊是否相等,也可以對(duì)字符串進(jìn)行比較:select3.14=3.142,2.12=2.120,'a'='a','apple'='pear';3.2.3任務(wù)實(shí)施1.關(guān)系運(yùn)算符(2)<>運(yùn)算符與=運(yùn)算符相反的是!=運(yùn)算符,它用來檢測表達(dá)式的兩邊是否相等,如果不相等返回真值,相等則返回假值。示例如下:select3<>3,5<>6,'5a'<>'5c';3.2.3任務(wù)實(shí)施1.關(guān)系運(yùn)算符(3)>、>=、<、<=運(yùn)算符與=運(yùn)算符相反的是!=運(yùn)算符,它用來檢測表達(dá)式的兩邊是否相等,如果不相等返回真值,相等則返回假值。示例如下:select3<>3,5<>6,'5a'<>'5c';3.2.3任務(wù)實(shí)施1.關(guān)系運(yùn)算符(4)[not]null運(yùn)算符判斷表達(dá)式的結(jié)果是否為null,為null則為真,否則相反,如果是notnull則情況正好和null相反。舉例如下:select1fromdualwhere'hello'isnull;3.2.3任務(wù)實(shí)施1.關(guān)系運(yùn)算符(5)[not]like運(yùn)算符like運(yùn)算符是字符串模式匹配,可以包含字符或數(shù)字:%代表零或多個(gè)字符,_代表一個(gè)字符。若與其匹配,則返回true,否則返回false。舉例:select1fromdualwhere'hello'like'he%';3.2.3任務(wù)實(shí)施1.關(guān)系運(yùn)算符(6)rlike運(yùn)算符確定字符串是否匹配正則表達(dá)式,是REGEXP_LIKE的同義詞。例如:判斷起始為h,結(jié)尾為o的字符串匹配:select1fromdualwhere'hello'rlike'^h.*o$';3.2.3任務(wù)實(shí)施2.算術(shù)運(yùn)算符算術(shù)運(yùn)算符是Hive中最基本的運(yùn)算符,用于各類數(shù)值運(yùn)算,返回?cái)?shù)值類型。運(yùn)算符支持?jǐn)?shù)據(jù)類型示例示例描述+所有數(shù)字?jǐn)?shù)據(jù)類型A+BA和B相加-所有數(shù)字?jǐn)?shù)據(jù)類型A-BA減去B*所有數(shù)字?jǐn)?shù)據(jù)類型A*BA和B相乘/所有數(shù)字?jǐn)?shù)據(jù)類型A/BA除以B,返回商%所有數(shù)字?jǐn)?shù)據(jù)類型A%BA對(duì)B取余,返回余數(shù)3.2.3任務(wù)實(shí)施3.邏輯運(yùn)算符邏輯運(yùn)算符用于對(duì)某個(gè)條件進(jìn)行測試,運(yùn)算結(jié)果為TRUE或FALSE。邏輯運(yùn)算符支持?jǐn)?shù)據(jù)類型示例示例描述ANDBoolean數(shù)據(jù)類型A邏輯與,表達(dá)式A與表達(dá)式B必須都為true,表達(dá)式結(jié)果才為trueORBoolean數(shù)據(jù)類型A邏輯或,表達(dá)式A或表達(dá)式B至少一個(gè)為true,表達(dá)式結(jié)果才為trueNOTBoolean數(shù)據(jù)類型NOT邏輯非3.2.3任務(wù)實(shí)施3.邏輯運(yùn)算符(1)and運(yùn)算符and運(yùn)算符用于測

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論