版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
廣電大數(shù)據(jù)用戶畫像
需求分析背景介紹新一代信息技術(shù)和互聯(lián)網(wǎng)的迅猛發(fā)展,為廣電行業(yè)帶來了前所未有的巨大挑戰(zhàn)和重大機遇。新媒體的飛速發(fā)展,對傳統(tǒng)媒體造成了巨大沖擊,廣電公司依靠稀缺資源形成的優(yōu)勢已經(jīng)逐漸失去。廣電公司具備了獲取用戶身份數(shù)據(jù)、實時收視數(shù)據(jù)的能力,可通過網(wǎng)絡(luò)終端設(shè)備和后臺系統(tǒng)采集用戶基本數(shù)據(jù)、用戶收視數(shù)據(jù)、用戶訂單數(shù)據(jù)、用戶賬單數(shù)據(jù)等。通過大數(shù)據(jù)分析,把握廣電用戶群體的特征和收視行為,了解用戶的實際特征和實際需求,并提供個性化、精準化和智能化的推薦服務(wù),以此挽留用戶、減少用戶的流失。需求分析與架構(gòu)認識Hive需求分析與架構(gòu)基于雙向廣電有線網(wǎng)絡(luò),可深入應(yīng)用大數(shù)據(jù)技術(shù),對用戶數(shù)據(jù)進行采集、存儲以此為基礎(chǔ),進行有效分析與處理實現(xiàn)廣電有線網(wǎng)絡(luò)用戶從看電視到用電視的轉(zhuǎn)變,推動廣電行業(yè)進一步發(fā)展,也可為社會信息化、政府信息化等提供全面支撐。對廣電公司的需求進行分析,并結(jié)合大數(shù)據(jù)技術(shù)為廣電公司用戶數(shù)據(jù)的存儲與分析提供解決方案,同時對大數(shù)據(jù)技術(shù)進行簡要介紹。業(yè)務(wù)需求分析需求分析與架構(gòu)主要處理流程大數(shù)據(jù)的處理過程可分為數(shù)據(jù)采集、數(shù)據(jù)預處理、數(shù)據(jù)存儲、數(shù)據(jù)分析、數(shù)據(jù)應(yīng)用大數(shù)據(jù)存儲技術(shù)架構(gòu)大數(shù)據(jù)存儲技術(shù)商用存儲GBase系列數(shù)據(jù)庫產(chǎn)品、AmazonS3和EMC系列產(chǎn)品開源OceanBase、Swift、Alluxio、HDFS、HBase和Hive常見的存儲產(chǎn)品的簡介及優(yōu)缺點對比存儲產(chǎn)品簡介優(yōu)點缺點GBase系列數(shù)據(jù)庫產(chǎn)品該系列數(shù)據(jù)庫產(chǎn)品包含分布式邏輯數(shù)據(jù)倉庫(GBase8a)、基于共享存儲的數(shù)據(jù)庫集群(GBase8s)、多模多態(tài)分布式數(shù)據(jù)庫(GBase8c)、云原生數(shù)據(jù)倉庫(GBaseGCDW)等具有高可用性和高可靠性。可擴展性好:支持Master-Slave模式擴展以及支持使用OnlineAdd節(jié)點等方式來增強性能。安全性強:可提供完善的數(shù)據(jù)庫安全方案,包括密文存儲、訪問權(quán)限控制、數(shù)據(jù)審計等。體積小,并且Ubuntu平臺可免費使用??梢灾苯釉贕Base上運行SQL語句而無須進行太多額外配置生態(tài)環(huán)境還較為不成熟,在某些場景下會受到功能缺失的限制OceanBaseOceanBase是阿里巴巴集團自主研發(fā)的一款分布式關(guān)系數(shù)據(jù)庫管理系統(tǒng),旨在滿足大規(guī)模應(yīng)用與服務(wù)的高性能等要求,支持從單臺機器到百臺機器甚至更多機器的水平擴展,具有海量數(shù)據(jù)存儲和快速查詢的能力高性能:支持自動故障轉(zhuǎn)移、水平和垂直擴展等特性,可以確保24/7無故障運行;采用多核架構(gòu)實現(xiàn)并行查詢,能夠快速讀取和處理海量數(shù)據(jù)。全球部署:支持本地化存儲和異地多活,可以滿足多終端、全網(wǎng)覆蓋等要求。開源社區(qū)活躍:擁有大量用戶社區(qū),支持對產(chǎn)品進行二次開發(fā)和個性化定制運維復雜:需要一定的技術(shù)支撐,涉及配置管理、監(jiān)控和調(diào)優(yōu)等方面,不太適合小規(guī)模企業(yè)使用。需要專門的技術(shù)人員:由于其復雜性較高,需要專業(yè)技術(shù)人員進行維護和開發(fā)。系統(tǒng)學習成本高:相較于傳統(tǒng)關(guān)系數(shù)據(jù)庫,OceanBase具有更多的新特性和命令,需要用戶進行學習和了解常見的存儲產(chǎn)品的簡介及優(yōu)缺點對比續(xù)上表存儲產(chǎn)品簡介優(yōu)點缺點AmazonS3簡稱S3,是Amazon公司于2006年針對開發(fā)者推出的云存儲服務(wù),可減輕開發(fā)人員壓力,使其專注于上層業(yè)務(wù);存儲可靠;按用量收費;使用方便是AmazonAWS云服務(wù)體系的一部分,兼容Amazon生態(tài)圈的其他服務(wù);重新定義了對象存儲;可靠性高,性能優(yōu)良,易于擴展,方便遷移非開源、收費較高;不支持隨機位置讀、寫操作,只能讀取、寫入或覆蓋整個文件EMC系列產(chǎn)品EMC公司于2008年推出了PB級對象存儲平臺Atmos;于2010年收購了Isilon,定位PB級文件存儲;于2014年推出了ECS,布局ZB級存儲。EMC系列產(chǎn)品均可橫向擴展。EMC公司市場拓荒早,產(chǎn)品種類全,高端用戶多高端產(chǎn)品與解決方案;可提供較好的數(shù)據(jù)保護;支持PB~ZB級各類數(shù)據(jù)存儲。兼容EMCVMware、Pivotal、RSA等多款產(chǎn)品;支持Hadoop;支持與S3數(shù)據(jù)的雙向遷移非開源,需購買價格昂貴的專用硬件常見的存儲產(chǎn)品的簡介及優(yōu)缺點對比續(xù)上表存儲產(chǎn)品簡介優(yōu)點缺點Swift于2010年加入OpenStack社區(qū),可為虛擬機及計算服務(wù)Nova提供鏡像存儲,是S3的開源實現(xiàn)屬于OpenStack生態(tài)圈組件,可兼容CloudStack,支持多租戶模式。技術(shù)成熟,成功案例多,被設(shè)計成一種比較通用的存儲產(chǎn)品,能夠可靠地存儲數(shù)量非常多的大小不一的文件未針對大型文件做優(yōu)化處理Alluxio是以內(nèi)存為中心的虛擬分布式存儲系統(tǒng),其核心思想是將存儲與計算分離通過數(shù)據(jù)緩存,提高存儲、計算的效率;將存儲與計算解耦,架構(gòu)清晰、簡潔該產(chǎn)品較新,部分功能有待完善;該產(chǎn)品對用戶技術(shù)積累和研發(fā)能力要求較高常見的存儲產(chǎn)品的簡介及優(yōu)缺點對比存儲產(chǎn)品簡介優(yōu)點缺點HDFS設(shè)計參考GoogleGFS,于2006年加入Apache社區(qū)下的Hadoop項目,是其核心組件之一擁有強大的數(shù)據(jù)生態(tài)圈,適合大型文件一次寫入、長期存儲、順序讀取、批處理的場景;成功案例多,優(yōu)化方案豐富;用戶規(guī)模龐大,是大數(shù)據(jù)文件系統(tǒng)事實標準,支持上萬個節(jié)點的ZB級海量數(shù)據(jù)存儲;具有高容錯性;支持多種數(shù)據(jù)編碼不支持并發(fā)寫入、文件隨機修改;不適合毫秒級低延遲數(shù)據(jù)訪問;不適合小型文件存儲HBase構(gòu)建在HDFS之上高性能的大數(shù)據(jù)列式存儲數(shù)據(jù)庫適合存儲海量稀疏數(shù)據(jù),可以通過版本檢索到歷史數(shù)據(jù),解決HDFS不支持數(shù)據(jù)隨機查找、不適合增量數(shù)據(jù)處理、不支持數(shù)據(jù)更新等問題。常用于存儲超大規(guī)模的實時隨機讀寫數(shù)據(jù),如互聯(lián)網(wǎng)搜索引擎數(shù)據(jù)僅能通過主鍵或主鍵范圍檢索數(shù)據(jù),不適合檢索條件較多的復雜查詢場景HiveHive是基于Hadoop生態(tài)圈的數(shù)據(jù)倉庫,用于進行數(shù)據(jù)提取、轉(zhuǎn)化和加載,是一種可以存儲、查詢和分析存儲在Hadoop中的大規(guī)模數(shù)據(jù)的開源產(chǎn)品封裝了調(diào)用接口,并提供了類SQL的查詢語言,減少了開發(fā)人員的學習成本;支持用戶自定義函數(shù)。適合處理大數(shù)據(jù);可擴展性強;容錯性強不支持記錄級別的增、刪、改操作,延遲較高,不適合實時分析;不支持事務(wù),不適合做聯(lián)機事務(wù)處理;自動生成的MapReduce作業(yè)通常情況下不夠智能大數(shù)據(jù)存儲技術(shù)架構(gòu)常見的開發(fā)語言R語言免費、開源、各種各樣的模塊十分齊全Python數(shù)據(jù)分析和交互、探索性計算以及數(shù)據(jù)可視化等方面都比較方便SQL入門較容易Java具有可移植性強的特點,可以跨平臺運行需求分析與架構(gòu)認識Hive認識HiveHive是基于Hadoop的數(shù)據(jù)倉庫優(yōu)點是學習成本低,可以通過類SQL語句實現(xiàn)快速MapReduce統(tǒng)計MapReduce的使用變得更加簡單。Hive十分適合用于對數(shù)據(jù)倉庫中的數(shù)據(jù)進行統(tǒng)計分析Hive簡介2007年,F(xiàn)acebook公司(現(xiàn)Meta公司)為了對每天產(chǎn)生的海量網(wǎng)絡(luò)平臺數(shù)據(jù)進行分析而開發(fā)了HiveHive就成為傳統(tǒng)數(shù)據(jù)架構(gòu)和HadoopMapReduce之間的“橋梁”。Hive的架構(gòu)Hadoop生態(tài)圈Sqoop:用于在HDFS和關(guān)系數(shù)據(jù)庫之間導入和導出數(shù)據(jù)。Pig:用于開發(fā)MapReduce作業(yè)的程序語言的工具,通過將PigLatin腳本編譯成MapReduce任務(wù)來實現(xiàn)數(shù)據(jù)處理和計算。Hive:用于開發(fā)SQL類型腳本進行MapReduce作業(yè)的工具,通過將HQL轉(zhuǎn)換為MapReduce任務(wù)來實現(xiàn)數(shù)據(jù)處理。認識HiveHive的架構(gòu)認識HiveHive主要組件訪問接口命令行接口(CommandLineInterface,CLI),HiveWeb接口(HiveWebInterface,HWI)。ThriftServer。元數(shù)據(jù)存儲服務(wù)Hive的元數(shù)據(jù)存儲在關(guān)系數(shù)據(jù)庫里,Hive支持的關(guān)系數(shù)據(jù)庫有Derby、MySQL等認識HiveHive主要組件DriverDriver的主要功能是將用戶編寫的HQL語句進行解析、編譯、優(yōu)化,生成邏輯執(zhí)行計劃,并提交給Hadoop集群進行處理組件說明解析器(Parser)將HQL轉(zhuǎn)換為抽象語法樹編譯器(Compiler)將語法樹編譯為邏輯執(zhí)行計劃優(yōu)化器(Optimizer)對邏輯執(zhí)行計劃進行優(yōu)化,形成更優(yōu)的邏輯執(zhí)行計劃執(zhí)行器(Executor)將邏輯執(zhí)行計劃切分成對應(yīng)引擎的可執(zhí)行物理計劃,調(diào)用底層執(zhí)行框架執(zhí)行認識HiveHive設(shè)計特性Hive的特點HQL與SQL有著相似的語法,大大提高了開發(fā)人員的開發(fā)效率。Hive支持運行在不同的框架上,包括YARN、Tez、Spark、Flink等。Hive支持HDFS與HBase上的即席查詢(Ad-Hoc)。Hive支持用戶自定義的函數(shù)、腳本等。認識HiveHive設(shè)計特性Hive優(yōu)點可擴展。Hive可以自由擴展集群的規(guī)模,一般情況下無須重啟服務(wù)??裳诱?。Hive支持用戶自定義函數(shù),用戶可根據(jù)自己的需求來編寫自定義函數(shù)。可容錯。Hive良好的容錯性使得當節(jié)點出現(xiàn)問題時HQL語句仍可完成執(zhí)行。Hive的適用場景Hive的最佳適用場景是大數(shù)據(jù)集的批處理作業(yè)認識HiveHive與傳統(tǒng)數(shù)據(jù)庫的區(qū)別項目Hive關(guān)系數(shù)據(jù)庫查詢語言HQLSQL數(shù)據(jù)存儲HDFS塊設(shè)備、本地文件系統(tǒng)執(zhí)行MapReduce執(zhí)行器執(zhí)行延遲高低處理數(shù)據(jù)規(guī)模大小事務(wù)0.14版本后加入支持索引0.8版本后加入索引復雜小結(jié)本章首先闡述了廣電大數(shù)據(jù)用戶畫像需求分析的背景,由此對當前市場上常見的幾種大數(shù)據(jù)存儲產(chǎn)品進行了介紹,接著從Hive的發(fā)展歷史、Hive的架構(gòu)、Hive的主要特點、Hive與傳統(tǒng)數(shù)據(jù)庫的區(qū)別等方面對Hive進行了深入講解。部署開發(fā)環(huán)境任務(wù)背景為實現(xiàn)國家現(xiàn)代化,在新時代、新階段企業(yè)必須堅持高質(zhì)量發(fā)展。隨著大數(shù)據(jù)技術(shù)的不斷演進,目前Hive已成為企業(yè)廣泛使用的數(shù)據(jù)倉庫,其底層實現(xiàn)是調(diào)用MapReduce程序,Hive調(diào)度資源時,使用的是Hadoop的YARN框架。Hive將結(jié)構(gòu)化的數(shù)據(jù)文件映射成一張?zhí)摫?,并提供類SQL(HQL)查詢功能。有了Hive后,程序員不用再編寫復雜的MapReduce程序,通過Hive即可使用類SQL語句實現(xiàn)數(shù)據(jù)的快速統(tǒng)計,進而提高大數(shù)據(jù)處理和分析效率。本章將介紹如何安裝部署Hadoop集群、如何安裝部署Hive、HiveCLI的使用方法,為后續(xù)實現(xiàn)廣電大數(shù)據(jù)存儲和處理搭建環(huán)境。安裝部署Hadoop集群安裝部署Hive使用HiveCLI任務(wù)描述通過Hadoop分布式框架可以輕松地通過將數(shù)千臺服務(wù)器聯(lián)合在一起對大數(shù)據(jù)進行存儲和計算,而且每一臺服務(wù)器都具有存儲和計算的能力。用戶可以在不了解Hadoop底層細節(jié)的情況下開發(fā)分布式程序,能夠十分方便地利用集群的強大能力進行程序運算,而且能夠解決高可用(分布式系統(tǒng)架構(gòu)設(shè)計中的一個常見指標,意指通過設(shè)計減少系統(tǒng)不能提供服務(wù)的時間,從而保持其服務(wù)的高度可用性)問題。本任務(wù)的內(nèi)容包括虛擬機VMwareWorkstation(簡稱VMware)、Hadoop集群的部署過程,以及遠程終端Xshell軟件的安裝和使用,為Hive的安裝部署提供一個基礎(chǔ)的集群環(huán)境。VMware虛擬機安裝和網(wǎng)絡(luò)設(shè)置Hadoop集群環(huán)境是由若干臺Linux主機組成的(為了更好地體現(xiàn)集群的特點和優(yōu)勢,建議部署至少3臺主機,主機的系統(tǒng)可采用Ubuntu或CentOS)。本書將在Windows環(huán)境下安裝虛擬機軟件VMwareWorkstation15.5Pro(Windows7環(huán)境下VMwareWorkstation最高支持15.x版本,如需升級16版本或更高版本,則需要在Windows8或以上版本的環(huán)境下),以便虛擬機的創(chuàng)建與配置。VMwareWorkstation是由VMware公司出品的一款桌面虛擬機軟件,可幫助用戶在單一的桌面上同時運行不同的操作系統(tǒng),具有應(yīng)用開發(fā)、測試、部署等諸多功能。VMware虛擬機安裝和網(wǎng)絡(luò)設(shè)置1.安裝VMware虛擬機讀者可從VMware官網(wǎng)自行下載VMwareWorkstation15.5Pro。VMwareWorkstation15.5Pro的安裝過程較為簡單,安裝時請依照向?qū)?,選擇安裝目錄,并單擊“下一步”按鈕即可順利完成安裝,過程不贅述,請讀者自行完成。VMware虛擬機安裝和網(wǎng)絡(luò)設(shè)置VMwareWorkstation15.5Pro的主界面如下圖。VMware虛擬機安裝和網(wǎng)絡(luò)設(shè)置2.設(shè)置VMware虛擬網(wǎng)絡(luò)安裝好VMware后,還需要進行VMware的虛擬網(wǎng)絡(luò)設(shè)置,以滿足4臺集群主機與宿主機、外網(wǎng)之間通信的要求(集群主機需要通過宿主機和外網(wǎng)保持連通以便下載最新的安裝包)。VMware虛擬機的聯(lián)網(wǎng)模式有3種:橋接(Bridged)模式、網(wǎng)絡(luò)地址轉(zhuǎn)換(NetworkAddressTranslation,NAT)模式、僅主機(Host-only)模式。通過NAT模式,宿主機可以為集群主機提供私有IP地址,并且只有宿主機可以訪問外網(wǎng),從而可以對虛擬機進行一定程度的隔離和保護,減少受到網(wǎng)絡(luò)攻擊的風險。VMware虛擬機安裝和網(wǎng)絡(luò)設(shè)置同時集群主機與宿主機共享同一IP地址,可以有效地節(jié)約可用IP地址,并且可以避免因為IP地址緊缺而產(chǎn)生的浪費,故本書采用NAT模式聯(lián)網(wǎng)。安裝好VMware后,系統(tǒng)會自動生成3塊虛擬網(wǎng)卡。VMnet0:用于虛擬網(wǎng)絡(luò)橋接模式下的虛擬交換機。VMnet1:用于虛擬網(wǎng)絡(luò)僅主機模式下的虛擬交換機。VMnet8:用于虛擬網(wǎng)絡(luò)NAT模式下的虛擬交換機。VMware虛擬機安裝和網(wǎng)絡(luò)設(shè)置使用NAT模式,就是讓虛擬系統(tǒng)借助網(wǎng)絡(luò)地址轉(zhuǎn)換功能,通過主機所在的網(wǎng)絡(luò)來訪問互聯(lián)網(wǎng)。也就是說,使用NAT模式可以實現(xiàn)在虛擬系統(tǒng)里訪問互聯(lián)網(wǎng),但前提是主機可以訪問互聯(lián)網(wǎng)。NAT模式下的虛擬系統(tǒng)的傳輸控制協(xié)議(TransmissionControlProtocol,TCP)或互聯(lián)網(wǎng)協(xié)議(InternetProtocol,IP)配置信息是由VMnet8(NAT)的動態(tài)主機配置協(xié)議(DynamicHostConfigurationProtocol,DHCP)服務(wù)器提供的,無法進行手動修改,因此虛擬系統(tǒng)無法和本局域網(wǎng)中的其他真實主機進行通信。VMware虛擬機安裝和網(wǎng)絡(luò)設(shè)置如果網(wǎng)絡(luò)IP地址資源緊缺,但是又希望虛擬機能夠聯(lián)網(wǎng),這時NAT模式是最好的選擇。NAT模式借助虛擬NAT設(shè)備和虛擬DHCP服務(wù)器,使得虛擬機可以聯(lián)網(wǎng)。虛擬網(wǎng)絡(luò)NAT模式的原理如下圖。VMware虛擬機安裝和網(wǎng)絡(luò)設(shè)置在NAT模式中,主機網(wǎng)卡直接與虛擬NAT設(shè)備相連,然后虛擬NAT設(shè)備與虛擬DHCP服務(wù)器一起連接在虛擬交換機(VMnet8)上,這樣即可實現(xiàn)虛擬機聯(lián)網(wǎng)。VMwareNetworkAdapterVMnet8是為了實現(xiàn)主機與虛擬機之間通信的虛擬網(wǎng)卡。VMware虛擬機安裝和網(wǎng)絡(luò)設(shè)置NAT模式的具體配置過程如下。打開虛擬網(wǎng)絡(luò)編輯器。在VMware主界面中,單擊“編輯”菜單,選擇“虛擬網(wǎng)絡(luò)編輯器”選項,如下圖。VMware虛擬機安裝和網(wǎng)絡(luò)設(shè)置編輯虛擬網(wǎng)絡(luò)編輯器。在彈出的“虛擬網(wǎng)絡(luò)編輯器”對話框中(部分功能的設(shè)置可能需要管理員權(quán)限,具體情況以個人Windows設(shè)置為準),先單擊選中“VMnet8”網(wǎng)絡(luò),在“VMnet信息”部分選擇“NAT模式(與虛擬機共享主機的IP地址)”單選項。勾選“將主機虛擬適配器連接到此網(wǎng)絡(luò)”和“使用本地DHCP服務(wù)將IP地址分配給虛擬機”復選框,并將“子網(wǎng)IP”設(shè)置為“”(后續(xù)虛擬機IP地址需要設(shè)置到此網(wǎng)段上,如master的IP地址可設(shè)置為30),將“子網(wǎng)掩碼”設(shè)置為“”,如右圖。VMware虛擬機安裝和網(wǎng)絡(luò)設(shè)置配置NAT網(wǎng)絡(luò)。在“虛擬網(wǎng)絡(luò)編輯器”對話框中單擊“NAT設(shè)置”按鈕,彈出“NAT設(shè)置”對話框,將“網(wǎng)關(guān)IP”設(shè)置為“”,如右圖。設(shè)置完成后單擊“確定”按鈕,退出當前對話框并返回“虛擬網(wǎng)絡(luò)編輯器”對話框。VMware虛擬機安裝和網(wǎng)絡(luò)設(shè)置設(shè)置DHCP。在“虛擬網(wǎng)絡(luò)編輯器”對話框中單擊“DHCP設(shè)置”按鈕,彈出“DHCP設(shè)置”對話框,將“起始IP地址”設(shè)置為“”,將“結(jié)束IP地址”設(shè)置為“54”,如右圖。設(shè)置完成后單擊“確定”按鈕,退出當前對話框,返回“虛擬網(wǎng)絡(luò)編輯器”對話框。在“虛擬網(wǎng)絡(luò)編輯器”對話框中單擊“確定”按鈕后,網(wǎng)絡(luò)的設(shè)置開始生效。部署CentOS由于Hadoop的主體是使用Java語言編寫而成的,運行在安裝了Java虛擬機(JavaVirtualMachine,JVM)的平臺,且部分代碼需要在UNIX或Linux環(huán)境下運行,所以不適合在非UNIX或Linux環(huán)境下運行,故本書部署的操作系統(tǒng)選用開源版的Linux系統(tǒng)——CentOS6.x系列。在部署前要下載好CentOS的安裝版本,CentOS目前主流的版本有6、7和8,三者的安裝方式和步驟大體相同,只是個別步驟有差異?,F(xiàn)以CentOS6.8為例,介紹主要的安裝部署方法。部署CentOS新建虛擬機。打開VMware,進入VMware主界面,選擇“創(chuàng)建新的虛擬機”選項,彈出“新建虛擬機向?qū)А睂υ捒?,選擇“自定義”(高級)選項,如下圖,單擊“下一步”按鈕。部署CentOS設(shè)置虛擬機硬件兼容性。在“硬件兼容性”下拉列表框中選擇“Workstation15.x”選項,如下圖,單擊“下一步”按鈕。部署CentOS選擇安裝客戶機操作系統(tǒng)的方法。選擇“稍后安裝操作系統(tǒng)(S)?!眴芜x項,如下圖,單擊“下一步”按鈕。部署CentOS選擇部署操作系統(tǒng)的類型和版本。選擇將要部署的操作系統(tǒng)為“Linux(L)”,版本為“CentOS664位”,如下圖,單擊“下一步”按鈕。部署CentOS設(shè)置虛擬機名稱和存儲位置。設(shè)置虛擬機名稱為“master”,存儲位置為“D:\Hive\VM\master”(位置可根據(jù)讀者個人計算機硬盤設(shè)置做相應(yīng)調(diào)整),如下圖,單擊“下一步”按鈕。部署CentOS設(shè)置虛擬機的處理器數(shù)量和內(nèi)核數(shù)量。設(shè)置虛擬機的“處理器數(shù)量”為“1”,設(shè)置“每個處理器的內(nèi)核數(shù)量”為“1”(數(shù)量可根據(jù)讀者個人計算機CPU配置做相應(yīng)調(diào)整,性能較好的計算機可設(shè)置內(nèi)核的數(shù)量為“2”),如下圖,單擊“下一步”按鈕。部署CentOS設(shè)置虛擬機的內(nèi)存。設(shè)置虛擬機的內(nèi)存為“2048MB”(大小可根據(jù)讀者個人計算機內(nèi)存配置做相應(yīng)調(diào)整,建議為1024MB或2048MB),如下圖,單擊“下一步”按鈕。部署CentOS設(shè)置虛擬機的網(wǎng)絡(luò)類型。設(shè)置虛擬機網(wǎng)絡(luò)連接為“使用網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)”,如下圖,單擊“下一步”按鈕。部署CentOS設(shè)置虛擬機的I/O控制器類型。設(shè)置虛擬機的I/O控制器類型為“LSILogic(L)”,如下圖,單擊“下一步”按鈕。部署CentOS設(shè)置虛擬機的磁盤類型。設(shè)置虛擬機的磁盤類型為“SCSI”,如下圖,單擊“下一步”按鈕。部署CentOS創(chuàng)建新虛擬磁盤。為虛擬機創(chuàng)建新虛擬磁盤,選擇“創(chuàng)建新虛擬磁盤”單選項,如下圖,單擊“下一步”按鈕。部署CentOS設(shè)置虛擬機的磁盤容量。設(shè)置虛擬機的磁盤容量(單位:GB)為“20.0”,并選擇“將虛擬磁盤存儲為單個文件”單選項,如下圖,單擊“下一步”按鈕。部署CentOS設(shè)置虛擬機的磁盤文件名。設(shè)置虛擬機的磁盤文件名為“master.vmdk”(系統(tǒng)默認將磁盤文件名設(shè)置為虛擬機名稱),如下圖,單擊“下一步”按鈕。部署CentOS核實虛擬機設(shè)置清單。完成虛擬機設(shè)置后,將彈出虛擬機設(shè)置清單以供核實,如下圖,核實無誤后單擊“完成”按鈕,完成虛擬機的創(chuàng)建。部署CentOS設(shè)置虛擬機的光驅(qū)。設(shè)置虛擬機的光驅(qū),單擊超鏈接“CD/DVD(IDE)”,如右圖。部署CentOS設(shè)置虛擬機的ISO映像文件。勾選“啟動時連接”復選框,單擊“瀏覽”按鈕選擇對應(yīng)的CentOS鏡像文件CentOS-6.8-x86_64-bin-DVD1.iso,再單擊“打開”按鈕,完成CentOS鏡像文件的選擇,如右圖。然后單擊“確定”按鈕。其中,CentOS-6.8-x86_64-bin-DVD1.iso是6.8版本的CentOS的標準安裝包,內(nèi)含CentOS6.8和部分必需的軟件包。部署CentOS啟動虛擬機。在VMware主界面左側(cè)導航欄選擇虛擬機“master”,在右側(cè)面板單擊“開啟此虛擬機”超鏈接,如下圖。部署CentOS開始安裝CentOS6。啟動虛擬機后,出現(xiàn)CentOS6.8安裝引導界面,如下圖,選擇“Installorupgradeanexistingsystem”。部署CentOS跳過測試安裝介質(zhì)。出現(xiàn)是否要測試安裝介質(zhì)的提示,如左圖,單擊“Skip”按鈕跳過此步驟;隨后會彈出安裝歡迎界面,如右圖,單擊“Next”按鈕,進入下一步安裝。部署CentOS選擇安裝提示語言與鍵盤布局語言。系統(tǒng)會詢問安裝時的提示語言類型,選擇系統(tǒng)語言“Chinese(Simplified)”,單擊“Next”按鈕,隨后進入選擇鍵盤語言提示界面,選擇“美國英語式”選項,單擊“下一步”按鈕,進入下一步驟。選擇基本存儲設(shè)備與清除數(shù)據(jù)。系統(tǒng)會詢問安裝的存儲設(shè)備類型,可選擇默認類型“基本存儲設(shè)備”,如下圖。部署CentOS單擊“下一步”按鈕,隨后進入是否清除數(shù)據(jù)提示界面,如下圖,單擊“是,忽略所有數(shù)據(jù)”按鈕,單擊“下一步”按鈕,進入下一步驟。部署CentOS設(shè)置主機名稱與選擇時區(qū)。設(shè)置主機名稱為“master”,如下圖。部署CentOS完成后單擊“下一步”按鈕,隨后進入選擇時區(qū)界面,選擇“亞洲/上?!边x項,如下圖,單擊“下一步”按鈕,進入下一步驟。部署CentOS設(shè)置根用戶密碼與選擇安裝類型。設(shè)置根密碼(root用戶密碼)為“123456”,并重復設(shè)置以進行確認,如左圖,完成后單擊“下一步”按鈕。在彈出的右圖的界面中單擊“無論如何都使用”按鈕。部署CentOS隨后系統(tǒng)會詢問采用何種磁盤分區(qū)類型,選擇“使用所有空間”單選項,如下圖,單擊“下一步”按鈕,進入下一步驟。部署CentOS將存儲配置寫入磁盤與選擇系統(tǒng)安裝方案。在系統(tǒng)確認是否將存儲配置寫入磁盤(如左圖)時,單擊“將修改寫入磁盤”按鈕;隨后系統(tǒng)會詢問采用何種安裝方案,選擇“Minimal”選項,如右圖,單擊“下一步”按鈕,進入下一步驟。部署CentOS查看系統(tǒng)安裝進度與完成安裝提示界面。開始安裝系統(tǒng),界面將顯示安裝進度,如左下圖。當安裝進度加載完成時,會提示已經(jīng)完成安裝,如右下圖,單擊“重新引導”按鈕,使用安裝的系統(tǒng)。部署CentOS登錄CentOS。進入登錄終端界面,輸入用戶名“root”與密碼“123456”按Enter鍵。系統(tǒng)顯示“[root@master~]#”表示登錄成功,如下圖。本書均采用以根用戶(root)的身份登錄CentOS,讀者若想以普通用戶的身份登錄CentOS,需先以超級根的身份登錄,然后使用“useradd”命令創(chuàng)建新的普通用戶,使用“passwd”命令為普通用戶設(shè)置密碼,最后使用“su”命令切換普通用戶,或下次采用已創(chuàng)建好的普通用戶和對應(yīng)的密碼登錄CentOS。Hadoop集群部署前準備集群是一組相互獨立的、通過高速網(wǎng)絡(luò)互聯(lián)的計算機。集群中每臺計算機經(jīng)過組合形成一個組,并以單一系統(tǒng)的模式加以管理。當用戶與集群相互作用時,集群像獨立的服務(wù)器。集群配置的優(yōu)點在于能提高性能、降低成本、提高可擴展性和增強可靠性。Hadoop集群部署前準備1.集群系統(tǒng)規(guī)劃上小節(jié)初步完成了虛擬機master的CentOS的部署,實際上,在部署Hadoop集群中,需要配置多臺主機,以形成集群系統(tǒng)。在本書中,將以4臺服務(wù)器、1臺Windows7客戶機為例,完成Hadoop集群的部署。Hadoop集群系統(tǒng)規(guī)劃如下表。主機名稱IP地址網(wǎng)關(guān)設(shè)置角色操作系統(tǒng)master30MasterCentOS6.8slave131SlaveCentOS6.8slave232SlaveCentOS6.8slave333SlaveCentOS6.8desktopDesktopWindows7Hadoop集群部署前準備2.集群網(wǎng)絡(luò)配置master網(wǎng)絡(luò)和IP地址配置的步驟如下。重啟網(wǎng)絡(luò)服務(wù)。執(zhí)行“servicenetworkrestart”命令重啟網(wǎng)絡(luò)服務(wù),如下圖,結(jié)果顯示重啟成功。Hadoop集群部署前準備修改ifcfg-eth0配置文件中的IP地址設(shè)置。執(zhí)行“vi/etc/sysconfig/network-scripts/ifcfg-eth0”命令進入ifcfg-eth0文件,按鍵盤的“I”鍵進入編輯狀態(tài)以修改文件。再次重啟網(wǎng)絡(luò)服務(wù)。執(zhí)行“servicenetworkrestart”命令重啟網(wǎng)絡(luò)服務(wù),使網(wǎng)絡(luò)新配置生效。DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticIPADDR=30NETMASK=GATEWAY=DNS1=Hadoop集群部署前準備3.安裝配置Xshell和XftpXshell是由NetSarang公司開發(fā)的功能強大的安全終端模擬軟件,支持SSH1、SSH2和Telnet協(xié)議。使用Xshell可通過互聯(lián)網(wǎng)安全連接到遠程主機,Xshell提供了很多功能,使得遠程操作Linux系統(tǒng)更為便捷。Xftp是由NetSarang公司開發(fā)的功能強大的具有SSH文件傳輸協(xié)議(SSHFileTransferProtocol,SFTP)、文件傳輸協(xié)議(FileTransferProtocol,F(xiàn)TP)的文件傳輸軟件。通過Xftp,MicrosoftWindows用戶能安全地在UNIX或Linux環(huán)境和Windows環(huán)境之間傳輸文件。為了方便后續(xù)的配置工作,建議讀者提前下載并安裝Xshell和Xftp。Hadoop集群部署前準備Xshell和Xftp安裝與連接虛擬機的操作過程如下。Xshell和Xftp的下載安裝。非商用版本的Xshell和Xftp的安裝文件可在NetSarang公司中文網(wǎng)站下載,如下圖。下載時,選擇“學校/家庭免費”,并填寫個人姓名和郵箱,通過郵箱獲得免費版下載鏈接。由于安裝過程有中文安裝向?qū)е敢逸^為簡單,在此不贅述,請讀者自行完成。Hadoop集群部署前準備Xshell和Xftp連接虛擬機。由于Xftp連接虛擬機的方式和Xshell的連接方式類似,故下面以Xshell為例說明。在連接虛擬機前,需將虛擬機的服務(wù)打開,并完成虛擬機的網(wǎng)絡(luò)配置,否則無法進行遠程連接。Xshell連接虛擬機的主要步驟如下。在Xshell主界面,單擊“文件”菜單,如下圖,然后選擇“新建”選項。Hadoop集群部署前準備進入“新建會話屬性”對話框,輸入名稱“master”,協(xié)議默認為安全外殼(SecureShell,SSH)協(xié)議,輸入主機地址“30”,如右圖。Hadoop集群部署前準備單擊對話框中左側(cè)“用戶身份驗證”進入“身份驗證”界面,輸入用戶名“root”,密碼“123456”,勾選“Password”復選框,如右圖,然后單擊“確定”按鈕保存,也可單擊“連接”按鈕,直接連接主機。Hadoop集群部署前準備當?shù)谝淮芜B接到主機時,會彈出“SSH安全警告”對話框,如右圖。Hadoop集群部署前準備單擊“接受并保存”按鈕,連接成功后的Xshell遠程登錄界面如下圖。至此,已經(jīng)完成Xshell與虛擬機的遠程連接,Xftp可參照Xshell連接虛擬機的過程進行配置。Hadoop集群部署在完成單臺主機的CentOS的安裝后,還需要為CentOS設(shè)置鏡像文件路徑和設(shè)置YUM安裝軟件源,以便后續(xù)在安裝新程序時,能夠較為快速地找到安裝文件并安裝。另外為了節(jié)省時間,本書采用克隆虛擬機的方式完成3臺Slave節(jié)點機器的配置。1.CentOS鏡像設(shè)置Hadoop集群部署為CentOS設(shè)置鏡像文件路徑的步驟如下。確認鏡像文件已添加。CentOS的鏡像文件指的就是安裝CentOS的ISO映像文件,可在虛擬機設(shè)置里查看該文件。單擊上圖界面中的“編輯虛擬機設(shè)置”超鏈接,在彈出的“虛擬機設(shè)置”對話框中單擊“CD/DVD(IDE)”超鏈接,如右圖。需要勾選“已連接”和“啟動時連接”復選框,并確認已經(jīng)指定相應(yīng)的ISO映像文件路徑。此后在安裝新程序時,會從ISO映像文件中優(yōu)先加載。Hadoop集群部署修改repo配置文件。將/etc/yum.repos.d/目錄下原有的repo配置文件(CentOS-Media.repo除外)的擴展名改為.bak,部分執(zhí)行結(jié)果如下圖。Hadoop集群部署配置CentOS-Media.repo文件。執(zhí)行命令“viCentOS-Media.repo”修改配置文件CentOS-Media.repo。掛載鏡像文件至目錄/media。執(zhí)行命令“mount/dev/dvd/media/”將鏡像文件掛載到/media,如下圖。Hadoop集群部署2.通過yum命令安裝常用軟件在CentOS中可使用yum命令安裝新軟件,虛擬機會先在鏡像文件中尋找安裝包,當找不到時,則在YUM安裝軟件源定義的線上資源下載。為了方便后續(xù)的克隆操作,需要為虛擬機安裝一些軟件。執(zhí)行命令“yum-yinstallntpopenssh-clientsopenssh-servervim”安裝常用軟件,如下圖。Hadoop集群部署3.安裝JDK開發(fā)包Hadoop集群需要使用JDK,本書采用JDK1.8(安裝包為jdk-8u221-linux-x64.rpm),讀者可自行到其官網(wǎng)下載。安裝JDK的過程如下。上傳并安裝。上傳JDK安裝包到虛擬機/opt目錄,進入/opt目錄,執(zhí)行命令“rpm-ivhjdk-8u221-linux-x64.rpm”安裝JDK。添加環(huán)境變量。為了讓系統(tǒng)可直接訪問JDK的安裝目錄,在/etc/profile文件中添加環(huán)境變量。添加完成并保存、退出后需執(zhí)行命令“source/etc/profile”,使配置馬上生效。Hadoop集群部署驗證。驗證JDK是否配置成功,執(zhí)行命令“java-version”,配置成功則會顯示所安裝的JDK版本,如下圖。Hadoop集群部署4.通過VMware克隆Slave節(jié)點可通過對配置好的虛擬機進行克隆操作生成Hadoop集群中的Slave節(jié)點。下面以克隆slave1虛擬機為例進行介紹,克隆虛擬機的具體步驟如下。在VMware主界面,選擇虛擬機“master”,單擊右鍵,選擇“管理”命令,再選擇“克隆”命令,如下圖(注:克隆虛擬機前需要關(guān)閉被克隆的主機)。Hadoop集群部署選擇克隆源為“虛擬機中的當前狀態(tài)”,如下圖,單擊“下一步”按鈕。Hadoop集群部署選擇克隆類型為“創(chuàng)建完整克隆”,如下圖,單擊“下一步”按鈕。Hadoop集群部署設(shè)置新虛擬機的名稱為“slave1”,將存儲位置設(shè)為“D:\Hive\VM\hadoop2”(讀者可自行設(shè)置),如下圖。然后單擊“完成”按鈕,完成slave1虛擬機的克隆,slave2、slave3虛擬機的克隆步驟可參考slave1的克隆。Hadoop集群部署5.修改Slave主機IP地址配置完成克隆虛擬機后,需要對Slave主機的IP地址配置進行修改。其中,slave1虛擬機的IP地址配置步驟如下。打開新虛擬機,執(zhí)行命令“ifconfig-a”,將查看到的eth1和HWaddr后面的內(nèi)容記錄下來,如下圖。Hadoop集群部署修改“/etc/sysconfig/network-scripts/ifcfg-eth0”,將其中的DEVICE、HWADDR中的值改成第(1)步查看到的內(nèi)容,并根據(jù)上表修改IPADDR后面的IP地址,如下圖。Hadoop集群部署修改“/etc/sysconfig/network”,修改主機名為“slave1”。執(zhí)行命令“servicenetworkrestart”使網(wǎng)絡(luò)配置立即生效。執(zhí)行“ipaddr”命令查看IP地址是否被修改,如下圖。Hadoop集群部署執(zhí)行命令“reboot”重啟虛擬機。使用Xshell工具連接新的虛擬機,操作過程請參考上小節(jié)中的內(nèi)容。后續(xù)操作默認在Xshell界面進行。至此slave1主機的IP地址配置已完成,slave2、slave3主機IP地址配置的步驟參考前述步驟。Hadoop集群部署6.設(shè)置IP映射在master和3臺slave機器中執(zhí)行“vi/etc/hosts”命令,編輯hosts文件配置IP地址映射,目的是讓系統(tǒng)在沒有域名系統(tǒng)(DomainNameSystem,DNS)服務(wù)的情況下,可通過主機名訪問對應(yīng)的機器節(jié)點。Hadoop集群部署7.配置SSH無密碼登錄Hadoop集群中,Hadoop要對Linux系統(tǒng)進行腳本控制,需要使用SSH無密碼登錄。SSH無密碼登錄的配置步驟如下。執(zhí)行“ssh-keygen”命令生成公鑰與私鑰對。輸入命令“ssh-keygen-trsa”,接著按3次Enter鍵,將生成私鑰id_rsa和公鑰id_rsa.pub兩個文件,參數(shù)“-t”用于指定創(chuàng)建的SSH密鑰采用RSA加密方式。將公鑰復制到各主機。執(zhí)行“ssh-copy-id-i/root/.ssh/id_rsa.pub主機名”命令將master生成的公鑰復制到各主機(包括master)中,復制公鑰到各主機的命令。Hadoop集群部署驗證是否成功設(shè)置SSH無密碼登錄。在master中,依次執(zhí)行“sshslave1”“sshslave2”“sshslave3”命令,可驗證是否能遠程進行SSH無密碼連接。當?shù)卿浧渌鳈C時不提示輸入密碼,則說明SSH無密碼登錄已設(shè)置成功,可用“exit”命令退出遠程登錄,如下圖。Hadoop集群部署8.配置時間同步服務(wù)Hadoop集群對時間要求很高,主節(jié)點與各個從節(jié)點的時間都必須同步,故為了實現(xiàn)集群間的時間同步,需要在每臺主機配置時間同步服務(wù),即網(wǎng)絡(luò)時間協(xié)議(NetworkTimeProtocol,NTP)服務(wù)。NTP服務(wù)的配置步驟如下。安裝NTP服務(wù)。直接使用YUM安裝NTP服務(wù),在各節(jié)點使用“yuminstall-yntp”命令即可。若出現(xiàn)了“Complete”信息,則說明安裝NTP服務(wù)成功。若安裝出現(xiàn)問題,則需要使用“mount/dev/sr0/media”命令重新掛載本地YUM源操作。對主機master修改時間同步設(shè)置??稍O(shè)置master節(jié)點為NTP服務(wù)主節(jié)點。執(zhí)行“vim/etc/ntp.conf”命令打開/etc/ntp.conf文件,注釋掉以server開頭的行。Hadoop集群部署在主機slaveX中配置NTP服務(wù)。分別在slave1、slave2、slave3中配置NTP服務(wù),同樣修改/etc/ntp.conf文件,注釋掉server開頭的行。關(guān)閉防火墻。由于防火墻的限制會影響NTP服務(wù)的運行,可執(zhí)行“serviceiptablesstop”“chkconfigiptablesoff”命令永久關(guān)閉防火墻,注意主節(jié)點和從節(jié)點同時關(guān)閉。(CentOS7.X關(guān)閉防火墻的命令為“systemctlstopfirewalld.service”“systemctldisablefirewalld.service”)Hadoop集群部署啟動NTP服務(wù)。啟動NTP服務(wù)的步驟如下。在master上執(zhí)行“servicentpdstart”“chkconfigntpdon”命令。在slaveX上執(zhí)行“ntpdatemaster”即可同步時間。在slaveX上分別執(zhí)行“servicentpdstart”“chkconfigntpdon”命令即可啟動并永久啟動NTP服務(wù)。Hadoop集群部署9.Hadoop安裝及配置Hadoop的版本較多,本書以Hadoop3.1.4為例,講解其主要的安裝及配置步驟,其他版本可參照進行。另外為節(jié)省安裝、配置時間,本書將先配置master主機,再通過遠程復制文件的scp命令配置其他Slave主機。上傳文件。通過遠程文件傳輸工具Xftp連接到master主機,上傳hadoop-3.1.4.tar.gz文件至/opt目錄下。(解壓hadoop-3.1.4.tar.gz文件。執(zhí)行“tar-zxfhadoop-3.1.4.tar.gz-C/usr/local/”命令,將hadoop-3.1.4.tar.gz文件解壓至/usr/local/目錄下。Hadoop集群部署配置Hadoop文件。Hadoop配置文件的修改、添加步驟如下。執(zhí)行“cd/usr/local/hadoop-3.1.4/etc/hadoop/”命令切換目錄。依次修改配置文件core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xml、yarn-site.xml、yarn-env.sh和workers。復制Hadoop安裝文件至集群Slave節(jié)點。通過scp命令將Hadoop安裝文件遠程分發(fā)至另外3臺Slave主機,配置Hadoop環(huán)境變量。執(zhí)行“vi/etc/profile”命令修改profile文件的配置。修改完成并保存退出后執(zhí)行“source/etc/profile”命令使環(huán)境變量生效。Hadoop集群部署格式化NameNode。進入Hadoop命令目錄“cd/usr/local/hadoop-3.1.4/bin”,再執(zhí)行格式化“./hdfsnamenode-format”命令,當出現(xiàn)“Storagedirectory/data/hadoop/hdfs/namehasbeensuccessfullyformatted”提示時,表示完成NameNode格式化工作,如下圖。Hadoop集群部署啟動Hadoop集群。在主節(jié)點和從節(jié)點中執(zhí)行“cd/usr/local/hadoop-3.1.4/sbin”命令,進入腳本目錄。啟動Hadoop集群。查看Java進程。Hadoop集群啟動后,在4個節(jié)點中執(zhí)行“jps”命令,可以查看到下表的主從節(jié)點進程列表。主機名稱Java進程masterNameNodeSecondaryNameNodeJobHistoryServerJpsResourceManagerslave1JpsDataNodeNodeManagerslave2slave3Hadoop集群部署在本地計算機添加IP地址和域名映射。為方便在本地(desktop)訪問Hadoop集群中的主機,需要在本地計算機的“C:\Windows\System32\drivers\etc\hosts”文件中添加IP地址和域名映射。使用瀏覽器查看服務(wù)情況。在desktop客戶端瀏覽器查看服務(wù)的地址如下。HDFS服務(wù)地址:http://master:9870。YARN資源服務(wù)地址:http://master:8088。Hadoop集群部署處理異常問題。當集群格式化或啟動出現(xiàn)問題時,可以按如下方法進行處理。若啟動后主節(jié)點Jps正常,子節(jié)點Jps中DataNode沒有啟動,則復制主節(jié)點的data/hadoop/hdfs/name/current/VERSION中的Cluster_ID,以替換其他子節(jié)點的data/hadoop/hdfs/data/current/VERSION中的Cluster_ID。若出現(xiàn)其他問題,則檢查相關(guān)配置文件??赏ㄟ^查看格式化NameNode的報錯信息、集群啟動日志文件等具體信息進行排查,其中集群啟動日志文件的路徑參見執(zhí)行啟動命令后的輸出信息提示。安裝部署Hadoop集群安裝部署Hive使用HiveCLI任務(wù)描述Hive可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為數(shù)據(jù)庫表,并可提供簡單的HQL查詢功能。Hive可將HQL語句轉(zhuǎn)換為MapReduce任務(wù)執(zhí)行。Hive需要將元數(shù)據(jù)保存到數(shù)據(jù)庫Derby或MySQL中,并配置相應(yīng)服務(wù),因此本任務(wù)主要介紹Hive元數(shù)據(jù)存儲,同時完成MySQL的安裝和配置、Hive的安裝和配置。安裝配置MySQL為實現(xiàn)多用戶連接,Hive需要將元數(shù)據(jù)存儲在關(guān)系數(shù)據(jù)庫中,故需要安裝和配置MySQL。MySQL安裝和配置的簡要步驟如下。查找系統(tǒng)適用的MySQL版本。執(zhí)行“yumsearchmysql”命令,搜索找到當前系統(tǒng)適用的版本為mysql-server.x86_64。安裝MySQL。執(zhí)行“mount/dev/dvd/media”命令綁定鏡像文件到目錄,再執(zhí)行“yuminstallmysql-server.x86_64-y”命令安裝MySQL。設(shè)置開機自動啟動MySQL服務(wù)。執(zhí)行“servicemysqldstart”“chkconfigmysqldon”命令,設(shè)置開機自動啟動MySQL服務(wù)。設(shè)置MySQL管理員賬號及密碼。首先啟動MySQL遠程終端,直接在終端輸入“mysql”即可,然后設(shè)置MySQL管理員賬號及密碼并刷新配置。安裝配置HiveHive的安裝和配置主要集中在master主機,如無特別說明,操作默認在master主機進行。安裝和配置Hive的過程如下。上傳安裝包并解壓。將安裝包apache-hive-3.1.2-bin.tar.gz通過Xftp上傳到master主機的/opt/目錄下,執(zhí)行“tar-zxf/opt/apache-hive-3.1.2-bin.tar.gz-C/usr/local”命令,解壓安裝包至/usr/local目錄下。重命名文件。執(zhí)行“mv/usr/local/apache-hive-3.1.2-bin/usr/local/hive-3.1.2”命令,將文件apache-hive-3.1.2-bin重命名為hive-3.1.2。在MySQL中新建hive數(shù)據(jù)庫。在MySQL中新建hive數(shù)據(jù)庫,然后退出MySQL。安裝配置Hive修改配置文件hive-site.xml。執(zhí)行“vi/usr/local/hive-3.1.2/conf/hive-site.xml”命令創(chuàng)建hive-site.xml文件。加載MySQL驅(qū)動包至Hive目錄。加載MySQL驅(qū)動包mysql-connector-java-5.1.30.jar到/usr/local/hive-3.1.2/lib目錄。解決JAR包版本沖突問題。刪除較低版本的guavaJAR包,并復制Hadoop目錄下較高版本的JAR包到Hive安裝目錄的lib目錄下。安裝配置Hive添加系統(tǒng)環(huán)境變量。執(zhí)行“vi/etc/profile”命令,添加Hive安裝目錄到環(huán)境變量。修改完成并保存退出后執(zhí)行“source/etc/profile”命令使系統(tǒng)環(huán)境變量生效。初始化元數(shù)據(jù)庫。進入Hive安裝目錄的bin子目錄,執(zhí)行“./schematool-dbTypemysql-initSchema”命令,執(zhí)行結(jié)果如下圖,表示元數(shù)據(jù)庫初始化成功。安裝配置Hive啟動HiveMetastore服務(wù)。在Hadoop集群已啟動的情況下,由于在hive-site.xml配置文件中指定了hive.metastore.uris的端口,故執(zhí)行“hive--servicemetastore&”命令即可啟動HiveMetastore服務(wù)。啟動HiveMetastore服務(wù)后,即可支持多個客戶端同時訪問元數(shù)據(jù),且多個客戶端不需要知道MySQL數(shù)據(jù)庫的用戶名和密碼。啟動HiveServer2服務(wù)??蓤?zhí)行“nohuphive--servicehiveserver2&”命令啟動HiveServer2服務(wù)。HiveServer2是一種能使客戶端執(zhí)行Hive查詢的服務(wù)。HiveServer2是HiveServer的改進版,HiveServer已經(jīng)被廢棄。HiveServer2可以支持多客戶端并發(fā)和身份認證,旨在為開放API客戶端(如JDBC和ODBC)提供更好的支持,后續(xù)章節(jié)可能會用到此服務(wù)。安裝部署Hadoop集群安裝部署Hive使用HiveCLI任務(wù)描述HiveCLI是客戶端與Hive進行交互的3種主要方式之一。在使用Hive的過程中,用戶可以不退出Hive,在HiveCLI里執(zhí)行LinuxShell命令和Hadoopdfs命令,以方便在實踐中簡單查詢。在LinuxShell界面里也可以執(zhí)行Hive的腳本文件完成建表、查詢等任務(wù)。本任務(wù)的內(nèi)容是學習如何啟動HiveCLI,如何在Hive中執(zhí)行BashShell命令、Hadoopdfs命令,以及如何在Shell中執(zhí)行Hive查詢。啟動HiveCLIHive可提供命令行界面,即CLI,執(zhí)行“hive--help”命令可列出Hive命令行選項的說明,如下圖。啟動HiveCLI啟動Hive和使用HiveCLI的說明如下。啟動Hive。要執(zhí)行Hive命令首先要啟動HiveMetastore服務(wù),而啟動HiveMetastore服務(wù)前須先啟動Hadoop集群,進入HiveCLI,如下圖。啟動HiveCLI查看后臺服務(wù)情況。執(zhí)行命令“jps”可查看后臺服務(wù)情況,master主機進程列表如左圖,slave1主機進程列表如右圖。在Hive中執(zhí)行BashShell和Hadoopdfs命令在HiveCLI中,用戶無須退出即可執(zhí)行BashShell命令和Hadoopdfs命令。在HiveCLI中執(zhí)行BaseShell的命令。在BashShell命令前加上感嘆號并且以分號結(jié)尾,例如,在HiveCLI中執(zhí)行的“pwd”和“l(fā)s/”命令分別為“!pwd;”和“!ls/;”,如下圖。注意“!”和“;”必須使用半角格式。在Hive中執(zhí)行BashShell和Hadoopdfs命令在HiveCLI中執(zhí)行Hadoopdfs命令。將Hadoop命令中的關(guān)鍵字“hadoop”去掉,然后以分號結(jié)尾,例如,查看HDFS根目錄文件情況,如下圖。在Shell中執(zhí)行Hive查詢在Linux的Shell中也可以執(zhí)行Hive查詢,主要通過“hive-e”“hive-f”命令實現(xiàn)。在Shell下執(zhí)行“hive-e”命令。Hive允許在不啟動HiveCLI的情況下,直接執(zhí)行HQL查詢命令。例如,查詢數(shù)據(jù)庫zjsm中media_index表的前3行數(shù)據(jù),執(zhí)行結(jié)果如下圖。在Shell中執(zhí)行Hive查詢通過-S選項開啟靜默模式,省略“OK”“Timetaken”等提示,直接將結(jié)果保存至指定文件中。修改代碼,添加參數(shù)“-S”,查詢數(shù)據(jù)庫zjsm中media_index表的前3行數(shù)據(jù)并將結(jié)果保存至/tmp/testquery,,執(zhí)行結(jié)果如下圖。在Shell中執(zhí)行Hive查詢在文件中執(zhí)行Hive查詢。在Hive中可以使用“-f文件名”方式執(zhí)行指定文件中的一個或多個查詢語句,一般將Hive查詢文件保存為具有.q或.hq1擴展名的文件。例如,將代碼中的查詢語句保存至/opt/testQuery.hql,并執(zhí)行該文件,執(zhí)行結(jié)果如下圖。小結(jié)本章首先闡述了將Hive作為廣電大數(shù)據(jù)項目的數(shù)據(jù)倉庫,由此對當前市場上常用虛擬機平臺工具VMwareWorkstation進行了介紹。接著對如何一步一步部署大數(shù)據(jù)基礎(chǔ)平臺進行了介紹,并從Hadoop集群的部署、MySQL數(shù)據(jù)庫的安裝和配置、Hive的安裝和配置及啟動、HiveCLI的使用方法等方面進行了詳細講解。廣電用戶數(shù)據(jù)存儲任務(wù)背景新媒體的飛速發(fā)展,對傳統(tǒng)媒體造成了巨大沖擊。日益復雜、激烈的競爭,使得廣電公司的用戶流失問題變得異常突出。廣電公司需要通過大數(shù)據(jù)分析技術(shù),把握用戶群體的特征和收視行為,了解用戶的實際特征和實際需求。在進行數(shù)據(jù)分析之前,需要對廣電業(yè)務(wù)數(shù)據(jù)進行存儲操作,以奠定基礎(chǔ)。本章將介紹如何將數(shù)據(jù)存儲在Hive中,并結(jié)合廣電業(yè)務(wù)實現(xiàn)創(chuàng)建廣電數(shù)據(jù)庫和業(yè)務(wù)數(shù)據(jù)表、將業(yè)務(wù)數(shù)據(jù)從CSV文件中導入Hive表。創(chuàng)建業(yè)務(wù)數(shù)據(jù)表將數(shù)據(jù)導入Hive表中任務(wù)描述只有在Hive中創(chuàng)建了相關(guān)的業(yè)務(wù)數(shù)據(jù)表,才能進行業(yè)務(wù)數(shù)據(jù)的導入和后續(xù)的分析工作。本任務(wù)主要介紹Hive數(shù)據(jù)庫的創(chuàng)建與管理、Hive的數(shù)據(jù)類型、Hive表的創(chuàng)建與管理,以及結(jié)合廣電業(yè)務(wù)數(shù)據(jù)類型,設(shè)計表的結(jié)構(gòu),并在Hive中創(chuàng)建相應(yīng)的業(yè)務(wù)數(shù)據(jù)表。操作Hive數(shù)據(jù)庫在Hive中數(shù)據(jù)庫本質(zhì)上是表的目錄或命名空間,可通過數(shù)據(jù)庫將表組織成邏輯組。這對于具有很多組和用戶的大集群來說,可以有效避免表命名沖突。HQL是Hive查詢語言,和普遍使用的SQL一樣,它不完全遵守任何一種ANSISQL標準的修訂版。Hive不支持行級插入操作、更新操作和刪除操作,也不支持事務(wù)?;贖adoop,Hive可以提供更高性能的擴展,以及一些個性化的擴展,甚至還增加了一些外部程序。Hive數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL)可用于創(chuàng)建、修改和刪除數(shù)據(jù)庫、表、視圖、函數(shù)和索引。對數(shù)據(jù)庫的操作主要包括數(shù)據(jù)庫的創(chuàng)建與管理,管理操作包括切換、修改、刪除等。操作Hive數(shù)據(jù)庫1.創(chuàng)建數(shù)據(jù)庫用戶可使用CREATE語句創(chuàng)建數(shù)據(jù)庫。CREATE(DATABASE|SCHEMA)[IFNOTEXISTS][database_name][COMMENTdatabase_comment][LOCATIONhdfs_path][WITHDBPROPERTIES(property_name=property_value,...)];操作Hive數(shù)據(jù)庫CREATE語句的部分關(guān)鍵字介紹如下表。關(guān)鍵字說明CREATE(DATABASE|SCHEMA)該關(guān)鍵字表示創(chuàng)建一個新數(shù)據(jù)庫,其中DATABASE和SCHEMA關(guān)鍵字的功能相同,按個人習慣選擇其中一個即可,本書統(tǒng)一使用DATABASEIFNOTEXISTS該關(guān)鍵字是可選的,使用該關(guān)鍵字可以避免因數(shù)據(jù)庫已存在而拋出異常的情況COMMENT該關(guān)鍵字是可選的,表示可以給數(shù)據(jù)庫加上描述,類似于注釋LOCATION該關(guān)鍵字是可選的,表示在創(chuàng)建數(shù)據(jù)庫時指定該數(shù)據(jù)庫映射到HDFS的文件路徑,數(shù)據(jù)庫所在的目錄位置為hive-site.xml文件屬性hive.metastore.warehouse.dir所指定的頂層目錄的下一級,默認是映射到/user/hive/warehouse目錄下WITHDBPROPERTIES該關(guān)鍵字是可選的,可用于設(shè)置數(shù)據(jù)庫的屬性,如添加創(chuàng)建人、創(chuàng)建時間等操作Hive數(shù)據(jù)庫例如,創(chuàng)建數(shù)據(jù)庫TestDB,同時使用IFNOTEXISTS關(guān)鍵字避免因數(shù)據(jù)庫已存在而拋出異常,在創(chuàng)建完成后使用“SHOWDATABASES;”命令查看Hive中所有數(shù)據(jù)庫,運行結(jié)果如下圖。其中,DEFAULT數(shù)據(jù)庫是默認的數(shù)據(jù)庫,且需要注意的是,在Hive環(huán)境中,HQL對大小寫不敏感,但為了美觀和方便閱讀,在本書中,HQL語句的關(guān)鍵字采用大寫的形式。操作Hive數(shù)據(jù)庫Hive會為每個數(shù)據(jù)庫創(chuàng)建一個目錄。數(shù)據(jù)庫中的表將會以該數(shù)據(jù)庫目錄的子目錄形式存儲。有一個例外就是DEFAULT數(shù)據(jù)庫中的表,DEFAULT數(shù)據(jù)庫沒有存儲目錄,因此DEFAULT數(shù)據(jù)庫中的表將存儲在/user/hive/warehouse目錄下。當創(chuàng)建數(shù)據(jù)庫TestDB時,Hive將會對應(yīng)地創(chuàng)建一個HDFS目錄/use/hive/warehouse/TestDB.db(數(shù)據(jù)庫文件的擴展名是.db)。在瀏覽器登錄“http://master:9870”,單擊“Utilities”,選擇“Browsethefilesystem”,查看“/use/hive/warehouse”,數(shù)據(jù)庫列表如下圖。操作Hive數(shù)據(jù)庫2.管理數(shù)據(jù)庫USE語句用于將某個數(shù)據(jù)庫設(shè)置為用戶當前的工作數(shù)據(jù)庫,與在文件系統(tǒng)中切換工作目錄類似,其語法介紹如下。USEdatabase_name;USEDEFAULT;操作Hive數(shù)據(jù)庫如果用戶沒有顯式指定數(shù)據(jù)庫,那么將會使用默認數(shù)據(jù)庫DEFAULT。在Hive中并沒有設(shè)置可以讓用戶查看當前所在的數(shù)據(jù)庫的語句,在不確認當前數(shù)據(jù)庫的情況下,可重復使用USE語句。同時可以通過設(shè)置hive.cli.print.current.db屬性值為true(Hive0.8.0以上版本支持設(shè)置),在提示符顯示當前所在的數(shù)據(jù)庫,如下圖。操作Hive數(shù)據(jù)庫用戶可以使用ALTER語句對數(shù)據(jù)庫的DBPROPERTIES設(shè)置鍵值對(Key-Value)等屬性值。ALTER(DATABASE|SCHEMA)database_nameSETDBPROPERTIES(property_name=property_value,...);--(Note:SCHEMAaddedinHive0.14.0)ALTER(DATABASE|SCHEMA)database_nameSETOWNER[USER|ROLE]user_or_role;--(Note:Hive0.13.0andlater;SCHEMAaddedinHive0.14.0)ALTER(DATABASE|SCHEMA)database_nameSETLOCATIONhdfs_path;--(Note:Hive2.2.1,2.4.0andlater)ALTER(DATABASE|SCHEMA)database_nameSETMANAGEDLOCATIONhdfs_path;--(Note:Hive4.0.0andlater)操作Hive數(shù)據(jù)庫需要注意的是其他元數(shù)據(jù)庫信息不可修改,如數(shù)據(jù)庫名和數(shù)據(jù)庫所在目錄。使用“ALTERDATABASE...SETLOCATION”不會將舊目錄的內(nèi)容移動到新的指定目錄下,僅會在增加新表時將新表存儲在新的指定目錄下。操作Hive數(shù)據(jù)庫用戶可使用DROP語句刪除數(shù)據(jù)庫。DROP(DATABASE|SCHEMA)[IFEXISTS]database_name[RESTRICT|CASCADE];DROP語句語法的部分關(guān)鍵字介紹如下表。關(guān)鍵字說明DROP(DATABASE|SCHEMA)表示刪除數(shù)據(jù)庫,DATABASE和SCHEMA的功能相同,本書統(tǒng)一使用DATABASEIFEXISTS可選,用于判斷數(shù)據(jù)庫是否存在RESTRICT|CASCADE可選,表示當數(shù)據(jù)庫中存在表時是否可以刪除數(shù)據(jù)庫,默認為RESTRICT,表示存在表時,不執(zhí)行刪除操作;CASCADE表示存在表時,仍執(zhí)行刪除操作了解Hive數(shù)據(jù)類型Hive數(shù)據(jù)類型主要分為基礎(chǔ)數(shù)據(jù)類型和復合數(shù)據(jù)類型。基礎(chǔ)數(shù)據(jù)類型有數(shù)值類型(整型、浮點型)、時間類型、字符串類型、其他類型(布爾類型、二進制)等;復合數(shù)據(jù)類型有數(shù)組類型、映射類型、結(jié)構(gòu)體類型和聯(lián)合體類型等。Hive數(shù)據(jù)類型說明如下表。分類類型大類類型小類說明舉例基礎(chǔ)數(shù)據(jù)類型整型TINYINT1字節(jié)有符號整數(shù)20SMALLINT2字節(jié)有符號整數(shù)20INT4字節(jié)有符號整數(shù)20BIGINT8字節(jié)有符號整數(shù)20布爾類型BOOLEAN布爾值true了解Hive數(shù)據(jù)類型分類類型大類類型小類說明舉例基礎(chǔ)數(shù)據(jù)類型浮點型FLOAT單精度浮點數(shù)3.14159DOUBLE雙精度浮點數(shù)3.14159DECIMAL高精度浮點數(shù),精度為38位DECIMAL(12,2)NUMERIC同DECIMAL,從Hive3.0開始提供NUMERIC(20,2)字符串類型STRING、CHAR、VARCHAR字符串'helloworld'二進制BINARY字節(jié)數(shù)組01時間類型TIMESTAMP時間戳1327882394INTERVAL表示時間間隔INTERVAL'1'DAYDATE以年/月/日形式描述的日期,格式為YYYY-MM-DD2023-10-26了解Hive數(shù)據(jù)類型續(xù)上表分類類型大類類型小類說明舉例復合數(shù)據(jù)類型數(shù)組類型ARRAY一組有序字段,字段的數(shù)據(jù)的類型必須相同user[1]映射類型MAP一組無序的鍵值對,鍵的類型必須是基礎(chǔ)數(shù)據(jù)類型,值可以是任何類型的。同一個映射的鍵的類型必須相同,值的類型也必須相同user['name']STRUCT一組命名的字段,字段類型可以不同user.age結(jié)構(gòu)體類型聯(lián)合體類型UNIONTYPE在有限取值范圍內(nèi)的一個值{1:{"col1":2,"col2":"b"}}了解Hive數(shù)據(jù)類型1.基礎(chǔ)數(shù)據(jù)類型Hive的基礎(chǔ)數(shù)據(jù)類型也稱為原始數(shù)據(jù)類型,Hive的基礎(chǔ)數(shù)據(jù)類型都是參照Java接口進行定義的,具體使用細節(jié)和Java中相應(yīng)類型基本一致,如STRING類型實現(xiàn)的是Java中的字符串(string),F(xiàn)LOAT類型實現(xiàn)的是Java定義的浮點數(shù)(float)。另外,值得注意的是,Hive中所有類型數(shù)據(jù)的定義名稱均為系統(tǒng)保留字,不可作為變量使用。了解Hive數(shù)據(jù)類型2.復合數(shù)據(jù)類型在關(guān)系數(shù)據(jù)庫中,字段的設(shè)計原則是通常不能再分解,且一般要滿足第一范式(一個關(guān)系模式中的所有屬性都是不可分的基礎(chǔ)數(shù)據(jù)項)要求,而Hive則有所不同,Hive的表字段不僅可以是基礎(chǔ)數(shù)據(jù)類型,還可以是復雜數(shù)據(jù)類型。Hive有4種常用的復雜數(shù)據(jù)類型,分別是數(shù)組(ARRAY)、映射(MAP)、結(jié)構(gòu)體(STRUCT)和聯(lián)合體(UNIONTYPE),相關(guān)說明如下。了解Hive數(shù)據(jù)類型2.復合數(shù)據(jù)類型ARRAYARRAY是具有相同類型變量的集合,集合內(nèi)的變量稱為數(shù)組元素,每個數(shù)組元素都有一個索引,索引從0開始。定義示例:ARRAY<STRING>。數(shù)據(jù)格式:'Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'。使用示例:a[0]='Monday',a[2]='Wednesday。其中,a表示表字段名,該字段的類型為數(shù)組,允許存儲的數(shù)據(jù)數(shù)據(jù)為STRING,起始索引為0。了解Hive數(shù)據(jù)類型MAPMAP是鍵值對的集合,其中鍵只能是基礎(chǔ)數(shù)據(jù)類型,值可以是任意類型。定義示例:MAP<STRING,STRING>。數(shù)據(jù)格式:{'B':'Banana','W':Watermelon}。使用示例:b['B']='Banana'。其中,b表示表字段名,該字段的類型為映射,允許存儲一個<STRING,STRING>類型的鍵值對,直接按鍵名訪問即可。了解Hive數(shù)據(jù)類型STRUCTSTRUCT封裝了一組有名字的字段(NamedField),其類型可以是任意的基礎(chǔ)數(shù)據(jù)類型,結(jié)構(gòu)體內(nèi)的元素使用“.”來訪問。定義示例:STRUCT<fruit:STRING,weight:INT>。數(shù)據(jù)格式:{'Banana',10}。使用示例:c.weight=10。其中,c表示表字段名,該字段的類型為STRUCT,包含兩個元素“fruit”和“weight”,元素的訪問方式與在Java中訪問對象屬性的方式一致。了解Hive數(shù)據(jù)類型UNIONTYPE在給定的任意時刻,UNIONTYPE可以用于保存指定數(shù)據(jù)類型中的任意一種,類似于Java中的泛型,在任意時刻只有其中的一個類型生效。定義示例:UNIONTYPE<data_type,data_type,...>。UNIONTYPE數(shù)據(jù)類型是在Hive0.7.0中引入的,但Hive對此類型的完全支持仍然不完整。在JOIN、WHERE和GROUPBY子句中引用UNIONTYPE字段的查詢將失敗,并且Hive沒有定義語法用于提取UNIONTYPE的標記或值字段,這意味著UNIONTYPE實際上僅用于傳遞。創(chuàng)建與管理Hive表根據(jù)存儲位置,Hive表可分為內(nèi)部表(也稱為管理表)和外部表;根據(jù)表的分類方式,Hive表可分為分區(qū)表和分桶表;根據(jù)表的存活時間,Hive表可分為臨時表和永久表(如內(nèi)部表)。與Hive數(shù)據(jù)庫的操作類似,可通過DDL實現(xiàn)Hive表的創(chuàng)建、修改、刪除等操作。創(chuàng)建與管理Hive表1.創(chuàng)建表用戶可使用CREATE語句創(chuàng)建表。CREATE[TEMPORARY][EXTERNAL]TABLE[IFNOTEXISTS][db_name.]table_name[(col_namedata_type[column_constraint_specification][COMMENTcol_comment],...[constraint_specification])][COMMENTtable_comment][PARTITIONEDBY(col_namedata_type[COMMENTcol_comment],...)][CLUSTEREDBY(col_name,col_name,...)[SORTEDBY(col_name[ASC|DESC],...)]INTOnum_bucketsBUCKETS][ROWFORMATrow_format][STOREDASfile_format][LOCATIONhdfs_path]創(chuàng)建與管理Hive表CREATE語句的主要關(guān)鍵字說明如下表。關(guān)鍵字說明CREATETABLE用于創(chuàng)建指定名字的表。如果相同名字的表已經(jīng)存在,那么拋出異常,用戶可以用IFNOTEXISTS選項忽略該異常TEMPORARY用于創(chuàng)建臨時表。臨時表是Hive表的一種特殊形式,臨時表只對當前會話可見,被存儲在用戶的臨時目錄,并在會話結(jié)束時被刪除EXTERNAL用于創(chuàng)建外部表,在創(chuàng)建表的同時指定一個指向?qū)嶋H數(shù)據(jù)的路徑(LOCATION)。Hive在創(chuàng)建內(nèi)部表時,會將數(shù)據(jù)移動到Hive指向的路徑;若創(chuàng)建外部表,則僅記錄數(shù)據(jù)所在的路徑,不對數(shù)據(jù)的位置做任何改變PARTITIONEDBY用于創(chuàng)建分區(qū)表,使用該關(guān)鍵字時需要加上分區(qū)字段的名稱。一個表可以擁有一個或多個分區(qū),并根據(jù)分區(qū)字段中的每個值創(chuàng)建一個單獨的數(shù)據(jù)目錄。分區(qū)以字段的形式存在于表中,通過DESCRIBE語句可以查看字段,但是該字段不存放實際的數(shù)據(jù)內(nèi)容,僅僅是分區(qū)的表示創(chuàng)建與管理Hive表關(guān)鍵字說明CLUSTEREDBY用于創(chuàng)建桶表,使用該關(guān)鍵字時需要加上字段的名稱。對于每一個內(nèi)部表、外部表或分區(qū)表,Hive均可以進一步將其組織成桶,即桶是更細粒度的數(shù)據(jù)范圍劃分ROWFORMAT用于設(shè)置創(chuàng)建的表在加載數(shù)據(jù)時支持的列分隔符。Hive默認的分隔符是\001,屬于不可見字符STOREDAS如果文件數(shù)據(jù)是純文本,那么用戶可以使用STOREDASTEXTFILE語句。如果數(shù)據(jù)需要壓縮,那么用戶可以使用STOREDASSEQUENCEFILE語句LOCATION用于指定加載數(shù)據(jù)路徑(指定在HDFS上的位置)。針對外部表,創(chuàng)建時需要指定存儲路徑,不指定則使用默認路徑。對內(nèi)部表不用指定存儲路徑,默認存儲路徑為/user/hive/warehouse創(chuàng)建與管理Hive表Hive的5種數(shù)據(jù)表,即內(nèi)部表、外部表、分區(qū)表、桶表和臨時表的創(chuàng)建說明如下。(1)創(chuàng)建內(nèi)部表內(nèi)部表是Hive的默認表,表中的數(shù)據(jù)默
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年湘教版選擇性必修3物理下冊階段測試試卷
- 二零二五年度等額本息個人信用卡透支還款合同樣本3篇
- 2025年度農(nóng)業(yè)科技產(chǎn)品推廣居間服務(wù)合同4篇
- 2024新教材高中化學 第八章 化學與可持續(xù)發(fā)展 第一節(jié) 第二課時 煤、石油和天然氣的綜合利用說課稿 新人教版第二冊
- 二零二五年度企業(yè)培訓費用逾期款項短信催收服務(wù)合同4篇
- 二零二五年度鋁灰處理廢棄物處理設(shè)施投資合同4篇
- 2025年度智能門禁系統(tǒng)與智能鎖一體化合同4篇
- 2025年校園教室室內(nèi)燈具更換服務(wù)合同范本3篇
- 2025年度測繪行業(yè)節(jié)能減排合作協(xié)議2篇
- 2025年度場地專員勞動合同范本編制與執(zhí)行指導4篇
- 金蓉顆粒-臨床用藥解讀
- 社區(qū)健康服務(wù)與管理教案
- 2023-2024年家政服務(wù)員職業(yè)技能培訓考試題庫(含答案)
- 2023年(中級)電工職業(yè)技能鑒定考試題庫(必刷500題)
- 藏歷新年文化活動的工作方案
- 果酒釀造完整
- 第4章-理想氣體的熱力過程
- 生涯發(fā)展展示
- 法治副校長專題培訓課件
- 手術(shù)室應(yīng)對突發(fā)事件、批量傷員應(yīng)急預案及處理流程
- 動機-行為背后的原因課件
評論
0/150
提交評論