




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
了解Hive的系統(tǒng)架構(gòu)理解Hive與傳統(tǒng)數(shù)據(jù)庫的區(qū)別理解Hadoop、Hive中各常用配置屬性的含義能闡述清Hive元數(shù)據(jù)的概念能熟練安裝、配置Hadoop集群能熟練安裝、配置Hive能熟練安裝MySQL,并存儲(chǔ)Hvie元數(shù)據(jù)能熟練運(yùn)用HiveCLI進(jìn)行常用操作大數(shù)據(jù)倉庫Hive運(yùn)行在大數(shù)據(jù)平臺(tái)Hadoop集群之上,即必須先部署好Hadoop集群,而后在Hadoop集群中安裝Hive系統(tǒng)。為了讓學(xué)習(xí)者擺脫相對(duì)復(fù)雜的完全分布式Hadoop集群,而只著重于Hive技術(shù)本身,任務(wù)將基于更加輕便快捷的單節(jié)點(diǎn)偽分布式Hadoop集群之上部署Hive數(shù)據(jù)倉庫工具。本任務(wù)將要完成單節(jié)點(diǎn)偽分布式Hadoop集群部署、安裝配置Hive系統(tǒng)、配置MySQL存儲(chǔ)Hive元數(shù)據(jù)等學(xué)習(xí)目標(biāo)。任務(wù)1部署Hive系統(tǒng)1.1.1Hive的系統(tǒng)架構(gòu)任務(wù)1部署Hive系統(tǒng)1、什么是Hive研發(fā)
Hadoop集群數(shù)據(jù)倉庫
貢獻(xiàn)
開源項(xiàng)目1.1.1Hive的系統(tǒng)架構(gòu)任務(wù)1部署Hive系統(tǒng)2、Hive架構(gòu)Hive數(shù)據(jù)倉庫提供了一系列的工具,能夠?qū)Υ鎯?chǔ)在HDFS中的數(shù)據(jù)進(jìn)行數(shù)據(jù)提取、轉(zhuǎn)化和加載(ETL)。
Hive是一種可以存儲(chǔ)、查詢和分析存儲(chǔ)在Hadoop中的大規(guī)模數(shù)據(jù)的工具。
1.1.1Hive的系統(tǒng)架構(gòu)任務(wù)1部署Hive系統(tǒng)2、Hive架構(gòu)熟悉MapReduce的開發(fā)者數(shù)據(jù)倉庫
HiveQL查詢分析數(shù)據(jù)類SQL查詢語言自定義mapper和reducer查詢分析數(shù)據(jù)1.1.1Hive的系統(tǒng)架構(gòu)任務(wù)1部署Hive系統(tǒng)2、Hive架構(gòu)Hive架構(gòu)組成主要包含4個(gè)部分,分別是用戶接口、跨語言服務(wù)、驅(qū)動(dòng)程序以及元數(shù)據(jù)存儲(chǔ)系統(tǒng),如右圖所示。1.1.1Hive的系統(tǒng)架構(gòu)任務(wù)1部署Hive系統(tǒng)用戶接口:主要指的是CLI、JDBC/ODBC和WebUI。其中,CLI是指Hive自帶的命令行工具;JDBC/ODBC是指客戶端工具,如Beeline遠(yuǎn)程客戶端工具,Java語言編寫的應(yīng)用程序等;WebUI是指通過瀏覽器訪問Hive。驅(qū)動(dòng)程序:主要包含編譯器(Compiler)、優(yōu)化器(Optimizer)、執(zhí)行器(Executor),它們用于完成HiveQL查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計(jì)劃的生成,生成的查詢計(jì)劃存儲(chǔ)在HDFS中,并在隨后由MapReduce調(diào)用執(zhí)行??缯Z言服務(wù):Thrift是Facebook開發(fā)的一個(gè)軟件框架,可以用來進(jìn)行可擴(kuò)展且跨語言的服務(wù),Hive集成了該服務(wù),能夠讓不同的編程語言調(diào)用Hive的接口。元數(shù)據(jù)存儲(chǔ)系統(tǒng)(Metastore);Hive中的元數(shù)據(jù)通常包含表名、列、分區(qū)以及表數(shù)據(jù)所在目錄的位置信息等相關(guān)屬性,Metastore默認(rèn)存在自帶的Derby數(shù)據(jù)庫中。由于Derby數(shù)據(jù)庫不適合多用戶操作,開且數(shù)據(jù)存儲(chǔ)目錄不固定,不方便管理,所以,通常將元數(shù)據(jù)存儲(chǔ)在MySQL數(shù)據(jù)庫。Driver驅(qū)動(dòng)程序(編譯器/優(yōu)化器/執(zhí)行器)ThriftServer跨語言服務(wù)HiveCLICLIJDBC/ODBCWebUI用戶接口Metastore元數(shù)據(jù)儲(chǔ)存系統(tǒng)DataNode+TaskTrackerJobTrackerNameNodeHadoop1.1.2Hvie的工作原理任務(wù)1部署Hive系統(tǒng)HIVEUI1.executQueryDRIVER7.fetchResultEXECUTIONENGINECOMPILERMETASTORE2.getPlan5.sendplan8.sendResults6.executePlan6.1:metaDataOpsforDDLs3.getMetData4.sendMetaData6.1:executeJob6.2:jobDoneJOBTRACKERMAPOPERATORTREESERDEDESERIALIZEREDUCEOPERATORTREESERDEERIALIZE6.3:dfsoperations9:fetchResultsNAMENODEDATANODESREADS/WRITESTOHDFSMAP/REDUCETASKSTASKTRACKERS(MAP)TASKTRACKERS(MAP)MAP/REDUCEHDFSHADOOP1.1.2Hvie的工作原理(1)executeQuery:用戶通過Hive界面(CLI/WebUI)將查詢語句發(fā)送到Driver(驅(qū)動(dòng)有JDBC、ODBC等)來執(zhí)行;(2)getPlan:Driver根據(jù)查詢編譯器解析query語句,驗(yàn)證query語句的語法、查詢計(jì)劃、查詢條件;(3)getMetaData:編譯器將元數(shù)據(jù)請(qǐng)求發(fā)送給Metastore;(4)sendMetaData:Metastore將元數(shù)據(jù)作為響應(yīng)發(fā)送給編譯器;(5)sendPlan:編譯器檢查要求和重新發(fā)送Driver的計(jì)劃。至此,查詢的解析和編譯完成;任務(wù)1部署Hive系統(tǒng)1.1.2Hvie的工作原理(6)executePlan:Driver將執(zhí)行計(jì)劃(executePlan)發(fā)送給執(zhí)行引擎(EXECUTIONENGINE)。執(zhí)行引擎執(zhí)行計(jì)劃的過程:首先根據(jù)執(zhí)行計(jì)劃向MetaStore請(qǐng)求并獲取元數(shù)據(jù)信息;然后向Hadoop的MapReduce主服務(wù)(JobTracker)提交任務(wù),任務(wù)在執(zhí)行過程中會(huì)直接通過Hadoop的HDFS主服務(wù)(Nodenameger)進(jìn)行文件操作,包括數(shù)據(jù)文件和臨時(shí)文件的操作。(7)fetchResults:執(zhí)行引擎接收來自數(shù)據(jù)節(jié)點(diǎn)(datanode)的結(jié)果(8)sendResults:執(zhí)行引擎發(fā)送這些合成值到Driver(9)sendResults:Driver將結(jié)果發(fā)送到hive接口任務(wù)1部署Hive系統(tǒng)1.1.3Hive與傳統(tǒng)數(shù)據(jù)庫區(qū)別任務(wù)1部署Hive系統(tǒng)對(duì)比項(xiàng)HiveMySQL查詢語言HiveQLSQL數(shù)據(jù)存儲(chǔ)位置HDFS塊設(shè)備、本地文件系統(tǒng)數(shù)據(jù)格式用戶定義系統(tǒng)決定數(shù)據(jù)更新InsertOVERWRITE\INTOTABLE(不建議更新)UPDATE/INSERT/DELETE支持索引不支持支持執(zhí)行多數(shù)查詢由MapReduce執(zhí)行執(zhí)行引擎執(zhí)行執(zhí)行延遲高低可擴(kuò)展性高低數(shù)據(jù)規(guī)模大小1.1.3Hive與傳統(tǒng)數(shù)據(jù)庫區(qū)別總結(jié):Hive不適合用于聯(lián)機(jī)事務(wù)處理(OLTP),也不提供實(shí)時(shí)查詢功能。它最適合應(yīng)用在基于大量不可變數(shù)據(jù)的批處理作業(yè)。其主要具有以下優(yōu)缺點(diǎn):Hive的優(yōu)點(diǎn)簡(jiǎn)單容易上手:提供了類SQL查詢語言HQL可擴(kuò)展:為超大數(shù)據(jù)集設(shè)計(jì)了計(jì)算/擴(kuò)展能力(MapReduce作為計(jì)算引擎,HDFS作為存儲(chǔ)系統(tǒng)),一般情況下不需要重啟服務(wù)Hive就可以自由的擴(kuò)展集群的規(guī)模。提供統(tǒng)一的元數(shù)據(jù)管理延展性:Hive支持用戶自定義函數(shù),用戶可以根據(jù)自己的需求來實(shí)現(xiàn)自己的函數(shù)容錯(cuò):良好的容錯(cuò)性,節(jié)點(diǎn)出現(xiàn)問題SQL仍可完成執(zhí)行任務(wù)1部署Hive系統(tǒng)1.1.3Hive與傳統(tǒng)數(shù)據(jù)庫區(qū)別Hive的缺點(diǎn)(1)Hive的HQL表達(dá)能力有限。迭代式算法無法表達(dá),如pagerank;數(shù)據(jù)挖掘方面不擅長(zhǎng),如kmeans。(2)Hive的效率比較低。Hive自動(dòng)生成的mapreduce作業(yè),通常情況下不夠智能化;Hive調(diào)優(yōu)比較困難,粒度較粗;Hive可控性較差。任務(wù)1部署Hive系統(tǒng)本任務(wù)實(shí)施將依次完成安裝虛擬機(jī)并配置基礎(chǔ)環(huán)境、安裝JDK、安裝配置Hadoop集群、安裝和配置Hive系統(tǒng)、部署MySQL、配置MySQL存儲(chǔ)Hive元數(shù)據(jù)等操作,最終實(shí)現(xiàn)Hive成功運(yùn)行在Hadoop集群之上。任務(wù)1部署Hive系統(tǒng)1.1.4檢查及配置Hadoop集群安裝虛擬機(jī)并配置基礎(chǔ)環(huán)境任務(wù)1部署Hive系統(tǒng)1、創(chuàng)建Hive虛擬機(jī)根據(jù)任務(wù)描述,在VM中創(chuàng)建一臺(tái)硬件資源如下所示的Hive虛擬機(jī),并掛載上CentOS-7-x86_64-DVD-1810.iso鏡像,虛擬機(jī)配置情況如右圖所示:圖1-1虛擬機(jī)硬件配置1.1.4檢查及配置Hadoop集群安裝虛擬機(jī)并配置基礎(chǔ)環(huán)境任務(wù)1部署Hive系統(tǒng)2、安裝CentOS操作系統(tǒng)安裝CentOS操作系統(tǒng)詳細(xì)步驟如下所示。第1步,成功引導(dǎo)操作系統(tǒng)后,會(huì)出現(xiàn)下面的界面,選擇“InstallCentOS7”按Enter鍵后開始安裝。圖1-2成功引導(dǎo)操作系統(tǒng)1.1.4檢查及配置Hadoop集群任務(wù)1部署Hive系統(tǒng)2、安裝CentOS操作系統(tǒng)安裝CentOS操作系統(tǒng)詳細(xì)步驟如下所示。第2步,進(jìn)入語言選擇界面,可根據(jù)用戶習(xí)慣進(jìn)行語言選擇,本書中使用“簡(jiǎn)體中文”,如下圖1-3、圖1-4所示:圖1-3語言選擇界面圖1-4選擇“簡(jiǎn)體中文”1.1.4檢查及配置Hadoop集群2、安裝CentOS操作系統(tǒng)任務(wù)1創(chuàng)建數(shù)據(jù)倉庫第3步,選擇圖1-5中的“系統(tǒng)—安裝位置”,進(jìn)入磁盤分區(qū)界面,如下所示:圖1-5安裝信息摘要界面1.1.4檢查及配置Hadoop集群2、安裝CentOS操作系統(tǒng)任務(wù)1部署Hive系統(tǒng)第4步,選擇上圖中的“其他存儲(chǔ)選項(xiàng)—分區(qū)—我要配置分區(qū)”,點(diǎn)左上角的“完成”后,進(jìn)入手動(dòng)分區(qū)界面,點(diǎn)擊“點(diǎn)這里自動(dòng)創(chuàng)建他們”后,并調(diào)整分區(qū)如右圖所示:圖1-6分區(qū)范例圖1.1.4檢查及配置Hadoop集群2、安裝CentOS操作系統(tǒng)任務(wù)1部署Hive系統(tǒng)第5步,點(diǎn)擊上圖中右上角的“完成”按鈕,進(jìn)入右圖所示的界面:圖1-7接受分區(qū)更改1.1.4檢查及配置Hadoop集群2、安裝CentOS操作系統(tǒng)任務(wù)1部署Hive系統(tǒng)第6步,點(diǎn)擊上圖中的“接受更改”按鈕后開始安裝,如右圖所示:圖1-8系統(tǒng)安裝界面1.1.4檢查及配置Hadoop集群2、安裝CentOS操作系統(tǒng)任務(wù)1部署Hive系統(tǒng)第7步,點(diǎn)擊上圖中的“用戶設(shè)置—ROOT密碼”,設(shè)root用戶密碼,本書中為了方便起見,設(shè)置密碼為000000,但在實(shí)際工作場(chǎng)景中應(yīng)當(dāng)設(shè)置更為復(fù)雜安全的密碼,如右圖所示:圖1-9設(shè)置root密碼1.1.4檢查及配置Hadoop集群2、安裝CentOS操作系統(tǒng)任務(wù)1部署Hive系統(tǒng)安裝完成后,出現(xiàn)下面的界面,如圖1-10所示:圖1-10安裝完成界面1.1.4檢查及配置Hadoop集群2、安裝CentOS操作系統(tǒng)任務(wù)1部署Hive系統(tǒng)第8步,點(diǎn)擊上圖中的“重啟”按鈕,即可進(jìn)入系統(tǒng)登錄界面,如圖1-11所示:圖1-11系統(tǒng)登錄界面1.1.4檢查及配置Hadoop集群3、配置HIVE虛擬機(jī)的網(wǎng)絡(luò)任務(wù)1部署Hive系統(tǒng)使用用戶名:root,密碼:000000,登錄進(jìn)操作系統(tǒng),并設(shè)置好IP地址,命令及結(jié)果如右所示:[root@localhost~]#vi/etc/sysconfig/network-scripts/ifcfg-ens33TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=24492794-6d70-41f9-9a5b-18567d3c1b83DEVICE=ens33ONBOOT=yes#yes表示開機(jī)自生效IPADDR=0PREFIX=24GATEWAY=1.1.4檢查及配置Hadoop集群4、配置虛擬機(jī)基礎(chǔ)環(huán)境信息任務(wù)1部署Hive系統(tǒng)安裝前需要做好基礎(chǔ)環(huán)境配置工作,主要有設(shè)置主機(jī)名、配置hosts映射文件、創(chuàng)建普通用戶hadoop、設(shè)置集群間免密登錄共4項(xiàng)內(nèi)容。1.1.4檢查及配置Hadoop集群4、配置虛擬機(jī)基礎(chǔ)環(huán)境信息任務(wù)1部署Hive系統(tǒng)(1)設(shè)置虛擬機(jī)的主機(jī)名為hive,執(zhí)行以下命令:[root@localhost~]#hostnamectlset-hostnamehive[root@hive~]#vi/etc/hosts0hive(2)配置/etc/hosts映射文件,執(zhí)行以下命令:在hosts文件中添加以下內(nèi)容:1.1.4檢查及配置Hadoop集群4、配置虛擬機(jī)基礎(chǔ)環(huán)境信息任務(wù)1部署Hive系統(tǒng)[root@hive~]#useradd-mhadoop-s/bin/bash[root@hive~]#passwdhadoop更改用戶hadoop的密碼。新的密碼:無效的密碼:密碼是一個(gè)回文重新輸入新的密碼:passwd:所有的身份驗(yàn)證令牌已經(jīng)成功更新。(3)創(chuàng)建普通用戶hadoop,并設(shè)置密碼,依次執(zhí)行以下命令:為了授權(quán)普通用戶hadoop能使用sudo以系統(tǒng)管理者的身份執(zhí)行命令,需要將hadoop用戶添加進(jìn)sudoers中,需要在/etc/sudoers文件中的約第100行下添加如下信息:[root@hive~]#vi/etc/sudoershadoopALL=(ALL)ALL#此行為需添加內(nèi)容1.1.4檢查及配置Hadoop集群4、配置虛擬機(jī)基礎(chǔ)環(huán)境信息任務(wù)1部署Hive系統(tǒng)(4)設(shè)置集群間SSH免密登錄。切換至新創(chuàng)建的普通用戶hadoop,并實(shí)現(xiàn)集群間免密。[root@hive~]#suhadoop1.1.4檢查及配置Hadoop集群4、配置虛擬機(jī)基礎(chǔ)環(huán)境信息任務(wù)1部署Hive系統(tǒng)要實(shí)現(xiàn)集群間免密,共分3步完成。[hadoop@hive~]$ssh-keygen-trsaGeneratingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/home/hadoop/.ssh/id_rsa):Enterpassphrase(emptyfornopassphrase):Entersamepassphraseagain:Youridentificationhasbeensavedin/home/hadoop/.ssh/id_rsa.Yourpublickeyhasbeensavedin/home/hadoop/.ssh/id_rsa.pub.Thekeyfingerprintis:72:40:28:36:20:d2:72:46:1f:cf:c9:d7:3b:7e:30:6chadoop@hiveThekey'srandomartimageis:+--[RSA2048]+|++....||+B..*..||=o.*..||o..||.SE||oo+||..||.|||++[hadoop@hive.ssh]$ll/home/hadoop/.ssh-rw.1hadoophadoop16752月2802:43id_rsa-rw-r--r--.1hadoophadoop3932月2802:43id_rsa.pub第1步,生成密鑰。切換到hadoop用戶家目錄/home/hadoop/下,通過執(zhí)行ssh-keygen-trsa命令,連續(xù)按3次回車后將在家目錄下生成.ssh目錄,并保存著生成公私密鑰對(duì),命令執(zhí)行如右邊所示:其中id_rsa為私鑰文件,id_rsa.pub為公鑰文件。1.1.4檢查及配置Hadoop集群4、配置虛擬機(jī)基礎(chǔ)環(huán)境信息任務(wù)1部署Hive系統(tǒng)要實(shí)現(xiàn)集群間免密,共分3步完成。[hadoop@hive.ssh]$ssh-copy-idhive第2步,分發(fā)密鑰。通過ssh-copy-id命令將公鑰復(fù)制到服務(wù)器hive中,如下所示:第3步,驗(yàn)證集群間免密登錄。通過ssh登錄到hive時(shí),不再需要輸入密碼,如下所示:[hadoop@hiveroot]$sshhiveLastlogin:FriFeb2803:33:042020[hadoop@hive~]$exit登出Connectiontohiveclosed.1.1.4檢查及配置Hadoop集群
安裝JDK任務(wù)1部署Hive系統(tǒng)由于Hadoop由Java語言開發(fā),Hadoop集群的使用依賴于Java環(huán)境,因此在安裝Hadoop集群前,需要先安裝配置好JDK。使用SecureCRT工具連接虛擬機(jī),用戶名為hadoop,密碼為000000,如右圖所示:圖1-12SecureCRT工具連接虛擬機(jī)1.1.4檢查及配置Hadoop集群
安裝JDK任務(wù)1部署Hive系統(tǒng)1、安裝JDK第1步,下載JDK1.8。第2步,在家目錄下創(chuàng)建software和server兩個(gè)目錄。[hadoop@hive~]$mkdirsoftwareserver第3步,使用secureFX工具將下載的JDK文件jdk-8u11-linux-x64.tar.gz上傳至hive虛擬機(jī)中的/home/hadoop/software目錄下,如右圖1-13所示:圖1-13JDK文件上傳至服務(wù)器1.1.4檢查及配置Hadoop集群
安裝JDK任務(wù)1部署Hive系統(tǒng)1、安裝JDK第4步,使用tar命令解壓jdk到server目錄下。[hadoop@hivesoftware]$tar-zxvfjdk-8u11-linux-x64.tar.gz-C~/server/[hadoop@hiveserver]$ll~/server/drwxr-xr-x.8hadoophadoop2556月172014jdk1.8.0_111.1.4檢查及配置Hadoop集群
安裝JDK任務(wù)1部署Hive系統(tǒng)2、配置Java環(huán)境變量第1步,在/etc/profile文件中配置添加JAVA_HOME和PATH環(huán)境變量:[hadoop@hive~]$sudovi/etc/profileexportJAVA_HOME=/home/hadoop/server/jdk1.8.0_11exportPATH=$PATH:$JAVA_HOME/bin第2步,使環(huán)境變量配置臨時(shí)生效[hadoop@hive~]$source/etc/profile1.1.4檢查及配置Hadoop集群
安裝JDK任務(wù)1部署Hive系統(tǒng)3、檢驗(yàn)JDK是否安裝成功通過查詢Java版本信息,以驗(yàn)證JDK安裝配置是否成功。[hadoop@hive~]$java-versionjavaversion"1.8.0_11"Java(TM)SERuntimeEnvironment(build1.8.0_11-b12)JavaHotSpot(TM)64-BitServerVM(build25.11-b03,mixedmode)1.1.4檢查及配置Hadoop集群任務(wù)1部署Hive系統(tǒng)1、安裝Hadoop第1步,下載hadoop-2.9.2。第2步,使用secureFX工具將下載的Hadoop文件hadoop-2.9.2.tar.gz上傳至hive服務(wù)器的hadoop用戶家目錄下的software中。[hadoop@hive~]$ll/home/hadoop/software/|grephadoop--rw-r--r--.1rootroot3664474491月72019hadoop-2.9.2.tar.gz第3步,使用tar命令解壓hadoop-2.9.2.tar.gzt至家目錄下server中:[hadoop@hive~]$tar-zxvfsoftware/hadoop-2.9.2.tar.gz-Cserver/
安裝配置Hadoop集群1.1.4檢查及配置Hadoop集群任務(wù)1部署Hive系統(tǒng)1、安裝Hadoop第4步,在/etc/profile文件中設(shè)置Hadoop環(huán)境變量并生效。[hadoop@hive~]$sudovi/etc/profileexportHADOOP_HOME=/home/hadoop/server/hadoop-2.9.2exportPATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin [hadoop@hive~]$source/etc/profile第5步,驗(yàn)證hadoop。執(zhí)行以下命令在安裝配置成功時(shí)會(huì)顯示Hadoop版本信息,如未能顯示版本信息說明Hadoop安裝不正確。[hadoop@hive~]$hadoopversionHadoop2.9.2Subversion/repos/asf/hadoop.git-r826afbeae31ca687bc2f8471dc841b66ed2c6704Compiledbyajisakaon2018-11-13T12:42ZCompiledwithprotoc2.5.0Fromsourcewithchecksum3a9939967262218aa556c684d107985Thiscommandwasrunusing/usr/local/hadoop/share/hadoop/common/hadoop-common-2.9.2.jar
安裝配置Hadoop集群1.1.4檢查及配置Hadoop集群任務(wù)1部署Hive系統(tǒng)2、配置偽分布式Hadoop在本任務(wù)中將配置Hadoop為偽分布式模式開展Hive學(xué)習(xí)。Hadoop所有配置文件在“$HADOOP_HOME/etc/hadoop”目錄中,搭建偽分布式Hadoop集群,需要修改目錄中的hadoop-env.sh、core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml、slaves共6個(gè)配置文件的部分信息,詳細(xì)配置信息修改如下述。
安裝配置Hadoop集群1.1.4檢查及配置Hadoop集群任務(wù)1部署Hive系統(tǒng)2、配置偽分布式Hadoop第1步,配置hadoop-env.sh文件。將此文件中約25行位置的JAVA_HOME值設(shè)置為java的真實(shí)安裝位置。[hadoop@hivehadoop]$vihadoop-env.shexportJAVA_HOME=/home/hadoop/server/jdk1.8.0_11第2步,配置core-site.xml文件。在<configuration>,</configuration>標(biāo)簽之間添加以下屬性。fs.defaultFS參數(shù)表示默認(rèn)文件系統(tǒng)名稱,通常指定namenode的URI地址,包括主機(jī)名和端口。hadoop.tmp.dir參數(shù)指定Hadoop運(yùn)行時(shí)產(chǎn)生文件的存儲(chǔ)目錄。<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hive:9000</value> </property><property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoopdata/tmp</value></property></configuration>
安裝配置Hadoop集群1.1.4檢查及配置Hadoop集群任務(wù)1部署Hive系統(tǒng)2、配置偽分布式Hadoop第3步,配置hdfs-site.xml文件。使用vi命令打開hdfs-site.xml文件,并在此文件中的<configuration></configuration>標(biāo)簽之間添加以下屬性。注意:在右邊文件中所有的屬性值是用戶定義的,可以根據(jù)自己的Hadoop基礎(chǔ)架構(gòu)進(jìn)行更改。[hadoop@hivehadoop]$vihdfs-site.xml<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>.dir</name> <value>/home/hadoop/hadoopdata/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>/home/hadoop/hadoopdata/datanode</value> </property></configuration>
安裝配置Hadoop集群1.1.4檢查及配置Hadoop集群任務(wù)1部署Hive系統(tǒng)2、配置偽分布式Hadoop第4步,配置mapred-site.xml文件。mapred-site.xml文件用于指定正在使用的MapReduce框架。缺省情況下,包含mapred-site.xml.template模板文件。首先,需要使用cp命令將模板文件復(fù)制為mapred-site.xml,如下所示:[hadoop@hivehadoop]$vimapred-site.xml<configuration> <property> <name></name> <value>yarn</value> </property></configuration>
安裝配置Hadoop集群[hadoop@hivehadoop]$cpmapred-site.xml.templatemapred-site.xml然后在mapred-site.xml文件中的<configuration></configuration>標(biāo)簽之間添加以下屬性。參數(shù)表示執(zhí)行MapReduceJobs的運(yùn)行時(shí)框架。1.1.4檢查及配置Hadoop集群任務(wù)1部署Hive系統(tǒng)2、配置偽分布式Hadoop第5步,配置yarn-site.xml文件。yarn-site.xml文件用于配置yarn到Hadoop。在此文件中的<configuration></configuration>標(biāo)簽之間添加以下屬性。yarn.nodemanager.aux-services參數(shù)表示用戶自定義服務(wù),如此處定義了Map-Reduce的shuffle功能。[hadoop@hivehadoop]$viyarn-site.xml<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property></configuration>
安裝配置Hadoop集群1.1.4檢查及配置Hadoop集群任務(wù)1創(chuàng)建數(shù)據(jù)倉庫2、配置偽分布式Hadoop第6步,配置slaves文件。修改內(nèi)容為hive,如下。[hadoop@hivehadoop]$vislaveshive
安裝配置Hadoop集群1.1.4檢查及配置Hadoop集群任務(wù)1部署Hive系統(tǒng)3、驗(yàn)證Hadoop第1步,格式化HDFS。使用命令“hdfsnamenode-format”格式化并創(chuàng)建新的HDFS。[hadoop@hive~]$hdfsnamenode-format20/02/1418:00:17INFOnamenode.NNStorageRetentionManager:Goingtoretain1imageswithtxid>=020/02/1418:00:17INFOnamenode.NameNode:SHUTDOWN_MSG:/************************************************************SHUTDOWN_MSG:ShuttingdownNameNodeathive/0************************************************************/
安裝配置Hadoop集群在執(zhí)行格式化后將會(huì)自動(dòng)創(chuàng)建hadoop.tmp.dir、.dir、dfs.data.dir三個(gè)參數(shù)所指定的目錄/home/hadoop/hadoopdata/tmp、/home/hadoop/hadoopdata/namenode、/home/hadoop/hadoopdata/datanode。注意,只需要執(zhí)行一次格式化命令,多次格式化將會(huì)出錯(cuò)。1.1.4檢查及配置Hadoop集群任務(wù)1部署Hive系統(tǒng)3、驗(yàn)證Hadoop第2步,啟動(dòng)并驗(yàn)證HDFS。執(zhí)行start-dfs.sh啟動(dòng)HDFS文件系統(tǒng)。[hadoop@hive~]$start-dfs.shStartingnamenodeson[hive]hive:startingnamenode,loggingto/home/hadoop/server/hadoop-2.9.2/logs/hadoop-hadoop-namenode-hive.outhive:startingdatanode,loggingto/home/hadoop/server/hadoop-2.9.2/logs/hadoop-hadoop-datanode-hive.outStartingsecondarynamenodes[]:startingsecondarynamenode,loggingto/home/hadoop/server/hadoop-2.9.2/logs/hadoop-hadoop-secondarynamenode-hive.out
安裝配置Hadoop集群Jps驗(yàn)證HDFS啟動(dòng)是否成功,成功則出現(xiàn)以下NameNode、SecondaryNameNode和DataNode三個(gè)進(jìn)程:[hadoop@hive~]$jps7168DataNode7345SecondaryNameNode6774NameNode7482Jps1.1.4檢查及配置Hadoop集群任務(wù)1部署Hive系統(tǒng)3、驗(yàn)證Hadoop第3步,啟動(dòng)并驗(yàn)證Yarn。執(zhí)行start-yarn.sh啟動(dòng)yarn守護(hù)進(jìn)程。[hadoop@hive~]$start-yarn.shstartingyarndaemonsstartingresourcemanager,loggingto/home/hadoop/hadoop-2.4.1/logs/yarn-hadoop-resourcemanager-localhost.outlocalhost:startingnodemanager,loggingto/home/hadoop/hadoop-2.4.1/logs/yarn-hadoop-nodemanager-localhost.out
安裝配置Hadoop集群jps驗(yàn)證yarn啟動(dòng)是否成功,成功將新增NodeManager和ResourceManager兩個(gè)進(jìn)程:[hadoop@hive~]$jps7168DataNode7345SecondaryNameNode8034Jps7716NodeManager6774NameNode7612ResourceManager1.1.4檢查及配置Hadoop集群任務(wù)1部署Hive系統(tǒng)3、驗(yàn)證Hadoop第4步,通過瀏覽器訪問Hadoop。瀏覽器訪問之前,請(qǐng)確定firewalld防火墻狀態(tài)為已關(guān)閉,如未關(guān)閉執(zhí)行systemctlstopfirewalld后,再執(zhí)行systemctldisablefirewalld。Hadoop默認(rèn)訪問端口為50070,使用0:50070/網(wǎng)址獲取瀏覽器Hadoop服務(wù),web界面如右圖1-14所示:
安裝配置Hadoop集群圖1-14瀏覽器使用IP地址訪問Hadoop1.1.4檢查及配置Hadoop集群任務(wù)1部署Hive系統(tǒng)3、驗(yàn)證Hadoop第5步,驗(yàn)證集群中所有應(yīng)用程序。集群中所有應(yīng)用程序默認(rèn)訪問端口為8088。使用0:8088/訪問該服務(wù),web界面如右圖1-15所示:
安裝配置Hadoop集群圖1-15瀏覽器使用IP地址訪問集群中應(yīng)用1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)1、安裝Hive第1步,下載hive-2.3.4。第2步,使用secureFX工具將下載的hive文件apache-hive-2.3.4-bin.tar.gz上傳至hive虛擬機(jī)中的/home/hadoop/software目錄下。[hadoop@hive~]$ll/home/hadoop/software/|grephive-rw-r--r--.1rootroot2322342921月72019apache-hive-2.3.4-bin.tar.gz第3步,使用tar命令解壓Hive到/home/hadoop/server目錄下。其結(jié)構(gòu)如下[hadoop@hivesoftware]$tar-zxvfapache-hive-2.3.4-bin.tar.gz-C/home/hadoop/server/[root@hiveapache-hive-2.3.4-bin]#ll總用量56drwxr-xr-x.3rootroot1332月1419:06bindrwxr-xr-x.2rootroot40962月1419:06binary-package-licensesdrwxr-xr-x.2rootroot40962月1419:06confdrwxr-xr-x.4rootroot342月1419:06examplesdrwxr-xr-x.7rootroot682月1419:06hcatalogdrwxr-xr-x.2rootroot442月1419:06jdbcdrwxr-xr-x.4rootroot122882月1419:06lib-rw-r--r--.1rootroot2079811月12018LICENSE-rw-r--r--.1rootroot23011月12018NOTICE-rw-r--r--.1rootroot31311月12018RELEASE_NOTES.txtdrwxr-xr-x.4rootroot352月1419:06scripts1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)1、安裝HiveHive配置文件目錄為$HIVE_HOME/conf,其中文件功能解釋如右表1-2所示:文件名文件功能hive-site.xmlhive用戶自定義配置文件(無)hive-default.xmlhive默認(rèn)配置文件(無)hive-env.shhive的運(yùn)行環(huán)境文件(無)hive-default.xml.templatehive-default.xml默認(rèn)配置模板hive-env.sh.templatehive-env.sh默認(rèn)配置模板perties.templateexec默認(rèn)配置模板perties.templatelog默認(rèn)配置模板表1-2Hive配置文件目錄詳解1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)2、配置Hive環(huán)境變量第1步,通過sudo配置Hive環(huán)境變量:[hadoop@hive~]$sudovi/etc/profileexportHIVE_HOME=/home/hadoop/server/apache-hive-2.3.4-binexportPATH=$PATH:$HIVE_HOME/bin第2步,使環(huán)境變量配置臨時(shí)生效:[hadoop@hive~]$source/etc/profile1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)3、配置并驗(yàn)證HiveHive所有配置文件目錄在$HIVE_HOME/conf下,配置Hive用于Hadoop環(huán)境中需要編輯hive-env.sh文件,相關(guān)命令如下:[hadoop@hiveconf]$cphive-env.sh.templatehive-env.sh編輯hive-env.sh文件并添加以下內(nèi)容,以指定Hadoop路徑和hive配置文件路徑:[hadoop@hiveconf]$vihive-env.shexportHADOOP_HOME=/home/hadoop/server/hadoop-2.9.2exportHIVE_CONF_DIR=/home/hadoop/server/apache-hive-2.3.4-bin/conf/1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)3、配置并驗(yàn)證Hive通過執(zhí)行hive能登錄hive,如下所示:[hadoop@hiveconf]$hivewhich:nohbasein(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/jdk1.8.0/bin:/usr/local/jdk1Hive-on-MRisdeprecatedinHive2andmaynotbeavailableinthefutureversions.Considerusingadifferentexecutionengine(i.e.spark,tez)orusingHive1.Xreleases.hive>showdatabases;FAILED:SemanticExceptionorg.apache.hadoop.hive.ql.metadata.HiveException:java.lang.RuntimeException:Unabletoinstantiateorg.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClienthive>1.1.6
配置MySQL存儲(chǔ)Hive元數(shù)據(jù)任務(wù)1部署Hive系統(tǒng)部署MySQL1、認(rèn)識(shí)Hive元數(shù)據(jù)Hive中有兩類數(shù)據(jù):真實(shí)數(shù)據(jù)和元數(shù)據(jù)。元數(shù)據(jù)可以看作是描述數(shù)據(jù)的數(shù)據(jù),包括Hive中的數(shù)據(jù)庫名、表名、表所屬的數(shù)據(jù)庫、表的擁有者、表類型、表數(shù)據(jù)所在目錄、列字段名稱與類型、分區(qū)字段與類型等。Hive將元數(shù)據(jù)存儲(chǔ)在RDBMS中,有以下3種模式可以連接到數(shù)據(jù)庫。SingleUserMode:?jiǎn)斡脩裟J?,使用?nèi)置Derby數(shù)據(jù)庫,也稱內(nèi)嵌Derby模式。MultiUserMode:多用戶模式,使用本地MySQL數(shù)據(jù)庫,也稱本地模式。RemoteServerMode:遠(yuǎn)程服務(wù)模式,使用遠(yuǎn)程元數(shù)據(jù)服務(wù)訪問數(shù)據(jù)庫,也稱遠(yuǎn)程模式。1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)部署MySQL2、安裝MySQL第1步,下載mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar。第2步,使用secureFX工具將下載的MySQL文件mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar上傳至hive虛擬機(jī)中的/home/hadoop/software目錄下。 [hadoop@hive~]$ll/home/hadoop/software/|grepmysql-rw-rw-r--.1hadoophadoop5990604801月252019mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)部署MySQL2、安裝MySQL第3步,依次安裝mysql-community-common-5.7.24-1.el7.x86_64.rpm、mysql-community-libs-5.7.24-1.el7.x86_64.rpm、和mysql-community-client-5.7.24-1.el7.x86_64.rpm包:[hadoop@hive~]$suroot[root@hivemysql-5.7.24]#rpm-ivhmysql-community-common-5.7.24-1.el7.x86_64.rpm[root@hivemysql-5.7.24]#rpm-ivhmysql-community-libs-5.7.24-1.el7.x86_64.rpm[root@hivemysql-5.7.24]#rpm-ivhmysql-community-client-5.7.24-1.el7.x86_64.rpm1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)部署MySQL2、安裝MySQL第3步,依次安裝mysql-community-common-5.7.24-1.el7.x86_64.rpm、mysql-community-libs-5.7.24-1.el7.x86_64.rpm、和mysql-community-client-5.7.24-1.el7.x86_64.rpm包:[hadoop@hive~]$suroot[root@hivemysql-5.7.24]#rpm-ivhmysql-community-common-5.7.24-1.el7.x86_64.rpm[root@hivemysql-5.7.24]#rpm-ivhmysql-community-libs-5.7.24-1.el7.x86_64.rpm[root@hivemysql-5.7.24]#rpm-ivhmysql-community-client-5.7.24-1.el7.x86_64.rpm1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)部署MySQL2、安裝MySQL第4步,解決安裝mysql-community-server-5.7.24-1.el7.x86_64.rpm時(shí)的依賴問題使用CentOS的系統(tǒng)iso鏡像中自帶的包解決安裝server時(shí)缺net-tools依賴的問題。操作如下5個(gè)步驟。1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)部署MySQL2、安裝MySQL第①步,為了配置本地yum源,本地資源從centos系統(tǒng)光盤中讀取,使用mount命令將iso9660標(biāo)準(zhǔn)的centos系統(tǒng)cd光盤的設(shè)備名/dev/sr0掛載到掛載點(diǎn)/mnt,如下所示:[hadoop@hiveconf]$sudomount-tiso9660/dev/sr0/mnt[sudo]hadoop的密碼:mount:/dev/sr0寫保護(hù),將以只讀方式掛載1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)部署MySQL2、安裝MySQL第②步,先將默認(rèn)yum源移動(dòng)到media目錄第③步,配置本地yum源,編寫名centos.repo的本地yum源:[hadoop@hive~]$sudomv/etc/yum.repos.d/*/media[hadoop@hive~]$sudovi/etc/yum.repos.d/centos.repo[centos]name=centosbaseurl=file:///mntgpgcheck=0enabled=11.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)部署MySQL2、安裝MySQL第④步,查看當(dāng)前可用yumrepo是否為4021:[root@hiveyum.repos.d]#yumrepolist已加載插件:fastestmirrorDeterminingfastestmirrorscentos|3.6kB00:00:00(1/2):centos/group_gz|166kB00:00:00(2/2):centos/primary_db|3.1MB00:00:00源標(biāo)識(shí)源名稱狀態(tài)centoscentos4,021repolist:4,0211.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)部署MySQL2、安裝MySQL第⑤步,使用yum安裝mysql數(shù)據(jù)庫,執(zhí)行命令如下:使用rpm安裝mysql-community-server-5.7.24-1.el7.x86_64.rpm,執(zhí)行命令如下:[hadoop@hive~]$yum-yinstallnet-tools[root@hivemysql-5.7.24]#rpm-ivhmysql-community-server-5.7.24-1.el7.x86_64.rpm1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)部署MySQL2、安裝MySQL第5步,啟動(dòng)mysql第6步,修改MySQL的root用戶的初始密碼:[root@hive~]#systemctlstartmysqld[root@hive~]#systemctlenablemysqldmysql>SHOWVARIABLESLIKE'validate_password%';mysql>setglobalvalidate_password_length=6;mysql>alteruser'root'@'localhost'identifiedby'000000';1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)配置MySQL存儲(chǔ)Hive元數(shù)據(jù)1、創(chuàng)建元數(shù)據(jù)庫hivedb在Mysql中創(chuàng)建Hive的元數(shù)據(jù)庫hivedb,并賦予hadoop用戶操作hivedb的所有權(quán)限,右側(cè)命令依次執(zhí)行登錄MySQL、創(chuàng)建hivedb數(shù)據(jù)庫、授予hadoop用戶權(quán)限、刷新系統(tǒng)權(quán)限表:[hadoop@hive~]$mysql-uroot-p000000MariaDB[(none)]>createdatabasehivedb;MariaDB[(none)]>grantallprivilegesonhivedb.*to'hadoop'@'%'identifiedby'000000';MariaDB[(none)]>grantallprivilegesonhivedb.*to'hadoop'@'localhost'identifiedby'000000';MariaDB[(none)]>flushprivileges;1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)配置MySQL存儲(chǔ)Hive元數(shù)據(jù)2、配置元數(shù)據(jù)庫屬性第1步,修改配置文件。使用mv將hive-default.xml.template改名為“hive-default.xml”。使用vi編輯器新建配置文件hive-site.xml,并添加右側(cè)五項(xiàng)配置信息,以配置MySQL中的hivedb數(shù)據(jù)庫作為Hive的元數(shù)據(jù)存儲(chǔ):[hadoop@hiveconf]$vihive-site.xml<?xmlversion="1.0"encoding="UTF-8"standalone="no"?><?xml-stylesheettype="text/xsl"href="configuration.xsl"?><configuration><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><!--表示MySQLJDBC驅(qū)動(dòng)類--></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hive:3306/hivedb?characterEncoding=UTF-8&createDatabaseIfNotExist=true</value><!--表示服務(wù)運(yùn)行在名為hive的服務(wù)器的3306端口上,元數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫名為hivedb--></property><property><name>javax.jdo.option.ConnectionUserName</name><value>hadoop</value><!--表示連接MySQL數(shù)據(jù)庫的用戶名為hadoop--></property><property><name>javax.jdo.option.ConnectionPassword</name><value>000000</value><!--表示連接MySQL數(shù)據(jù)庫的密碼為000000--></property></configuration>[hadoop@hiveconf]$mvhive-default.xml.templatehive-default.xml1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)配置MySQL存儲(chǔ)Hive元數(shù)據(jù)2、配置元數(shù)據(jù)庫屬性第1步,修改配置文件。注意:在書寫xml配置文件時(shí),需要注意以下兩點(diǎn):第一,url中的&符號(hào)需要轉(zhuǎn)義成&第二,<value></value>中的內(nèi)容必須在同一行上且不能有空格,即不能包含換行符和空格,否則會(huì)出錯(cuò)。屬性名描述javax.jdo.option.ConnectionDriverNameJDBC驅(qū)動(dòng)類javax.jdo.option.ConnectionURL包含元數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)的JDBC連接字符串javax.jdo.option.ConnectionUserName連接數(shù)據(jù)庫的用戶名javax.jdo.option.ConnectionPassword連接數(shù)據(jù)庫的密碼表1-3Hive配置元數(shù)據(jù)屬性詳解1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)配置MySQL存儲(chǔ)Hive元數(shù)據(jù)2、配置元數(shù)據(jù)庫屬性第2步,上傳JDBC驅(qū)動(dòng)包。為了使Hive能夠連接上MySQL,需要將JDBC驅(qū)動(dòng)放置在$HIVE_HOME/lib/類路徑下。
將下載的mysql-connector-java-5.1.48-bin.jar文件拷貝到$HIVE_HOME/lib/類路徑下,如下所示:[hadoop@hivelib]$pwd/home/hadoop/server/apache-hive-2.3.4-bin/lib[hadoop@hivelib]$ll|grepmysql-connector-rw-r--r--.1hadoophadoop10048404月2721:13mysql-connector-java-5.1.46-bin.jar1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)配置MySQL存儲(chǔ)Hive元數(shù)據(jù)2、配置元數(shù)據(jù)庫屬性第3步,初始化schema庫。初始化完成后將在MySQL中的hivedb數(shù)據(jù)庫中自動(dòng)創(chuàng)建57個(gè)表。注意,如果初始化一次后出錯(cuò)故障,需要再次進(jìn)行初始化,必須先刪除MySQL中的hivedb,否則會(huì)出現(xiàn)Error:Duplicatekeyname'PCS_STATS_IDX'初始化錯(cuò)誤的報(bào)錯(cuò)信息。[hadoop@hive~]$schematool-initSchema-dbTypemysql1.1.5安裝和配置Hive系統(tǒng)任務(wù)1創(chuàng)建數(shù)據(jù)倉庫配置MySQL存儲(chǔ)Hive元數(shù)據(jù)3、Hive中創(chuàng)建測(cè)試表test啟動(dòng)HiveShell,并創(chuàng)建測(cè)試表test,命令如下所示:在Hive上執(zhí)行創(chuàng)建表命令并查看,如下所示:[hadoop@hive~]$hiveCREATETABLEtest(idint,namestring);SHOWTABLES;圖1-16在Hive中創(chuàng)建表1.1.5安裝和配置Hive系統(tǒng)任務(wù)1部署Hive系統(tǒng)配置MySQL存儲(chǔ)Hive元數(shù)據(jù)4、驗(yàn)證Hive元數(shù)據(jù)庫配置啟動(dòng)HiveShell,并創(chuàng)建測(cè)試表test,命令如下所示:使用hadoop用戶,密碼000000,登錄MySQL的Hivedb數(shù)據(jù)庫中可以看到相應(yīng)的元數(shù)據(jù)庫信息,命令如下所示:MariaDB[(none)]>SELECT*FROMhivedb.TBLS;HiveCLI,即命令行界面,是與Hive交互的最常用方式。本書也將通過HiveCLI完成所有模塊Hive學(xué)習(xí),熟練地操作HiveCLI,能讓我們?cè)诤罄m(xù)執(zhí)行創(chuàng)建數(shù)據(jù)倉庫、數(shù)據(jù)表、查詢數(shù)據(jù)、統(tǒng)計(jì)分析數(shù)據(jù)等任務(wù)時(shí)更加便捷。本任務(wù)將要完成HiveCLI的自動(dòng)補(bǔ)全功能、HiveCLI中操作HDFS文件系統(tǒng)、HiveCLI中操作變量和屬性、Hive中執(zhí)行-e/-f命令、Hive默認(rèn)配置文件等學(xué)習(xí)目標(biāo)。任務(wù)2操作HiveCLI1.2.1HiveCLI自動(dòng)補(bǔ)全功能任務(wù)2操作HiveCLICLI支持自動(dòng)補(bǔ)全功能。如果用戶在輸入過程中敲擊Tab制表鍵,那么CLI會(huì)自動(dòng)補(bǔ)全可能的關(guān)鍵字或者函數(shù)名。例如,如果用戶輸入SELE然后按Tab鍵,CLI將自動(dòng)補(bǔ)全這個(gè)詞為
SELECT。如果用戶在提示符后面直接越擊Tab鍵,將看到如下回復(fù):1.2.2Hive
CLI中命令格式任務(wù)2操作HiveCLI用戶不需要退出
Hive
CLI就可以執(zhí)行Linux中簡(jiǎn)單的
bash
shell命令。只要在命令前加上感嘆號(hào)“!”,并且以分號(hào)“;”結(jié)尾即可,如下所示,使用echo命令和pwd命令:1.2.2Hive
CLI中命令格式任務(wù)2操作HiveCLI注意:不能使用需要用戶進(jìn)行輸入的交互式命令;不支持shell的“管道”功能和文件名的自動(dòng)補(bǔ)全功能。1.2.3Hive
CLI中執(zhí)行Hadoop的dfs命令任務(wù)2操作HiveCLI用戶可以在
Hive
CLI中執(zhí)行
HDFS的hdfsdfs…命令,只需要將
hdfsdfs命令中的關(guān)鍵字hdfs去掉,并以分號(hào)結(jié)尾,如下例所示:1.2.4Hive
CLI中的變量和屬性任務(wù)2操作HiveCLI1、定義自定義變量Hive中命名空間如下表2-1所示:命名空間使用權(quán)限描述hivevar可讀/可寫用戶自定義變量hiveconf可讀/可寫Hive相關(guān)的配置屬性system可讀/可寫Java定義的配置屬性env只可讀Shell環(huán)境(例如bash)定義的環(huán)境變量表2-1Hive命名空間1.2.4Hive
CLI中的變量和屬性任務(wù)2操作HiveCLI1、定義自定義變量【例4-1】定義變量name的值為“whx”使用--define,命令如下所示:使用--hivevar,命令如下所示:$hive--definename=whx$hive--hivevarname=whx1.2.4Hive
CLI中的變量和屬性任務(wù)2操作HiveCLI2、顯示和修改自定義變量在CLI中,set命令以鍵值對(duì)方式顯示或者修改變量值。需要注意的是,Hive命令行下執(zhí)行set命令,僅當(dāng)前會(huì)話有效;Hive腳本中配置set命令,則當(dāng)前機(jī)器有效。(1)set命令顯示自定義變量值兩種方式顯示上文中自定義變量name:setname;sethivevar:name;1.2.4Hive
CLI中的變量和屬性任務(wù)2操作HiveCLI2、顯示和修改自定義變量(2)set命
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSA 271-2024 高強(qiáng)度高彈性高導(dǎo)電率鈦銅合金
- 二零二五年度私募股權(quán)基金股權(quán)轉(zhuǎn)讓及代持管理協(xié)議
- 二零二五年度農(nóng)副產(chǎn)品電商平臺(tái)用戶增長(zhǎng)合作合同
- 二零二五年度體育場(chǎng)館委托代理出租服務(wù)合同
- 二零二五年度海洋工程電焊工勞動(dòng)合同(海洋平臺(tái)焊接)
- 二零二五年度臨時(shí)工兼職合同
- 二零二五年度全屋定制家居裝修合同
- 二零二五年度科研實(shí)驗(yàn)室租賃合同轉(zhuǎn)讓及設(shè)備維護(hù)協(xié)議
- 二零二五年度音樂節(jié)現(xiàn)場(chǎng)安全員聘請(qǐng)合同
- 二零二五年度鄉(xiāng)村民宿房東與游客租賃合同
- 2025年黑龍江民族職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫附答案
- 2025年黑龍江旅游職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫一套
- 年產(chǎn)60萬噸摻混肥項(xiàng)目可行性研究報(bào)告申請(qǐng)立項(xiàng)
- 2025年2月《公共安全視頻圖像信息系統(tǒng)管理?xiàng)l例》學(xué)習(xí)解讀課件
- 山東省聊城市冠縣2024-2025學(xué)年八年級(jí)上學(xué)期期末地理試卷(含答案)
- 2025年江蘇省中職《英語》學(xué)業(yè)水平考試高頻必練考試題庫400題(含答案)
- 敲響酒駕警鐘堅(jiān)決杜絕酒駕課件
- 2025年濰坊工程職業(yè)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 全套教學(xué)課件《工程倫理學(xué)》
- 江蘇省建筑與裝飾工程計(jì)價(jià)定額(2014)電子表格版
- 2024年山東經(jīng)貿(mào)職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
評(píng)論
0/150
提交評(píng)論