![第08周數(shù)據(jù)倉庫hive從入門到小牛附件3基礎(chǔ)使用丨教程_第1頁](http://file4.renrendoc.com/view/3bd4edb9d821e078beff68c996c1ead5/3bd4edb9d821e078beff68c996c1ead51.gif)
![第08周數(shù)據(jù)倉庫hive從入門到小牛附件3基礎(chǔ)使用丨教程_第2頁](http://file4.renrendoc.com/view/3bd4edb9d821e078beff68c996c1ead5/3bd4edb9d821e078beff68c996c1ead52.gif)
![第08周數(shù)據(jù)倉庫hive從入門到小牛附件3基礎(chǔ)使用丨教程_第3頁](http://file4.renrendoc.com/view/3bd4edb9d821e078beff68c996c1ead5/3bd4edb9d821e078beff68c996c1ead53.gif)
![第08周數(shù)據(jù)倉庫hive從入門到小牛附件3基礎(chǔ)使用丨教程_第4頁](http://file4.renrendoc.com/view/3bd4edb9d821e078beff68c996c1ead5/3bd4edb9d821e078beff68c996c1ead54.gif)
![第08周數(shù)據(jù)倉庫hive從入門到小牛附件3基礎(chǔ)使用丨教程_第5頁](http://file4.renrendoc.com/view/3bd4edb9d821e078beff68c996c1ead5/3bd4edb9d821e078beff68c996c1ead55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
慕課網(wǎng)首 免費課 實戰(zhàn)課 金職 慕課專 手 從所有的詞條中查詢Java3Hive快速了解
徐老師·更新于2020-08- 上一節(jié)2數(shù)據(jù)庫與數(shù)據(jù) 4Hive實戰(zhàn)下一Hive的使操作Hv可以在S 命令行下操作,或者是使用JDBC代碼的方式操下面先來看一下在命令行中操作的方式針對命令行這種方式,其實還有兩種使第一個是使用 下的hive命令,這個是從hive一開始就支持的使用方后來又出現(xiàn)一個beeline命令,它是通過HveSrver2服務(wù)連接hiv,它是一個輕量級的客戶端工具,所以后來開始推薦使用這個。具體使用哪個我覺得屬于個人的一個習(xí)慣問題,特別是一些做了很多年大數(shù)據(jù)開發(fā)的人,已經(jīng)習(xí)慣了使hive命令,如果讓我使用beeline會感覺有點別針對我們寫的ves通過哪一種客戶端去執(zhí)行結(jié)果都是一樣的,沒有任何區(qū)別,所以在這里我們使用哪個就無所謂了。1:先看第一種,這種直接就可以連[root@bigdata04apache-hive-3.1.2-bin]#Hive-on-MRisdeprecatedinHive2andmaynotbeavailableinthefutureHiveSessionID=32d36bcb-21b8-488f-8c13-這里有一行信息提示,從Hve開始Hv--MR就過時了,并且在以后的版本中可能就不了,建議使用其它的計算引擎,例如:sprk或者z如果你確實想使用MapReduce引擎,那建議你使用Hive1.x的版下面以v開頭的內(nèi)容就說明我們進入了Hve令行,在這里可以寫HvSQ了khive>showTimetaken:0.18創(chuàng)建一個hive>createtablet1(idint,nameTimetaken:1.064再查看有哪些hive>showTimetaken:0.18向表里面添加數(shù)據(jù),注意,此時就產(chǎn)生了MapReduce任hive>insertintot1(id,name)QueryID=root_20200506162317_02b2802a-5640-4656-88e6-Totaljobs=LaunchingJob1outofNumberofreducetasksdeterminedatcompiletime:Inordertochangetheaverageloadforareducer(insetInordertolimittheumnumberofsetInordertosetaconstantnumberofsetStartingJob=job_1588737504319_0001,TrackingURL=KillCommand=/data/soft/hadoop-3.2.0/bin/mapredjob-killHadoopjobinformationforStage-1:numberofmappers:1;numberof2020-05-0616:23:36,954Stage-1map=0%,reduce=2020-05-0616:23:47,357Stage-1map=100%,reduce=0%,CumulativeCPU2020-05-0616:23:56,917Stage-1map=100%,reduce=100%,CumulativeCPUMapReduceTotalcumulativeCPUtime:5seconds160EndedJob=Stage-4isselectedbyconditionStage-3isfilteredoutbyconditionStage-5isfilteredoutbyconditionMovingdatatodirectoryhdfs://bigdata01:9000/user/hive/warehouse/t1/.hive-LoadingdatatotableMapReduceJobsStage-Stage-1:Map:1Reduce: CumulativeCPU:5.16 HDFSRead:TotalMapReduceCPUTimeSpent:5seconds160Timetaken:41.534查詢數(shù)據(jù),為什么這時沒有產(chǎn)生mprece任務(wù)呢?因為這個計算太簡單了,不需要經(jīng)過arec任務(wù)就可以獲取到結(jié)果,直接表對應(yīng)的數(shù)據(jù)文件就可以了。11234hive>select*from1Timetaken:2.438seconds,Fetched:1刪除hive>droptableTimetaken:0.89可以輸入quit退出hive令行,或者直接按ctrl+c也可以退 hive>2:接著看一下第二種方[root@bigdata0apachehive3.1.2bin]which:nohbasein(.:/data/soft/jdk1.8/bin:/data/soft/hadoop-2020-05-0616:43:11:StartingSLF4J:ClasspathcontainsmultipleSLF4JSLF4J:Foundbindingin[jar:file:/data/soft/apache-hive-3.1.2-SLF4J:Foundbindingin[jar:file:/data/soft/hadoop- SLF4J:SeeforanexSLF4J:ActualbindingisoftypeHiveSessionID=008af6a0-4f7a-47f0-b45a-HiveSessionID=670a0c62-7744-4949-a25f-HiveSessionID=7aa43b1a-eafb-4848-9d29-HiveSessionID=a5c20828-7f39-4ed6-ba5e-注意了,啟動hiveserver2服務(wù)之后,最下面會輸出幾行HiveSessionID的信息,一定要等到輸出hiveserver2默認(rèn)會本機的10000端口,所以命令是這樣bin/beeline-u當(dāng)hiveserver2服務(wù)沒有真正啟動成功之前連接會提示這樣的信[root@bigdata04apache-hive-3.1.2-bin]#bin/beeline-uConnectingto20/05/0616:44:21[main]:WARNjdbc.HiveConnection:FailedtoconnecttoCouldnotopenconnectiontotheHS2server.PleasechecktheserverURIError:CouldnotopentransportwithJDBCUri:Beelineversion3.1.2byApache等待hiveserver2服務(wù)真正啟動之后再連接,此時就可以連接進[root@bigdata04apache-hive-3.1.2-bin]#bin/beeline-uSLF4J:ClasspathcontainsmultipleSLF4JSLF4J:Foundbindingin[jar:file:/data/soft/apache-hive-3.1.2-SLF4J:Foundbindingin[jar:file:/data/soft/hadoop- SLF4J:SeeforanexSLF4J:ActualbindingisoftypeConnectingtoConnectedto:ApacheHive(versionDriver:HiveJDBC(versionTransactionisolation:Beelineversion3.1.2byApache0:接著嘗試一下建0:jdbc:hive2://localhost:10000>createtablet1(idint,nameNorowsaffected(2.459添加數(shù) 0:jdbc:hive2://localhost:10000>insertintot1(id,name)43d1-INFO:SemanticysisCompleted(retrial=INFO:ReturningHiveschema:Schema(fieldSchemas:[FieldSchema(name:_col0,INFO:Completedcompilingcommand(queryId=root_20200506172404_54b9bfc4-INFO:Concurrencymodeisdisabled,notcreatingalockINFO:Executingcommand(queryId=root_20200506172404_54b9bfc4-d67f-43d1-WARN:Hive-on-MRisdeprecatedinHive2andmaynotbeavailableintheINFO:QueryID=root_20200506172404_54b9bfc4-d67f-43d1- INFO:Totaljobs=INFO:LaunchingJob1outofINFO:Startingtask[Stage-1:MAPRED]inserialINFO:Numberofreducetasksdeterminedatcompiletime:INFO:Inordertochangetheaverageloadforareducer(inINFO setINFO:InordertolimittheumnumberofINFO setINFO:InordertosetaconstantnumberofINFO setINFO:Cleaningupthestagingarea/tmp/hadoop-ERROR:JobStocolPB.to.atatatatatjava.security.AccessController.doPrivileged(Nativeatatat org.apache.hadoop.security.AccessControlException:Permissiondenied:發(fā)現(xiàn)添加數(shù)據(jù)報錯,提示用戶對/tmp/hadoop-yarn沒有寫權(quán)限給hfs中的/tmp/hadoop-yarn設(shè)置77權(quán)限,讓用戶具備權(quán)限可以直接給tmp及下面的所有 設(shè)置77權(quán)限hdfsdfs-od-R777在啟動beeline的時候指定一個對這 有操作權(quán)限的用bin/beeline-ujdbc:hive2://localhost:10000-n在這我就直接指定一個有操作權(quán)限的用戶[root@bigdata04apache-hive-3.1.2-bin]#bin/beeline-uConnectingtoConnectedto:ApacheHive(versionDriver:HiveJDBC(versionTransactionisolation:B 312 h
INFO:Compilingcommand(queryId=root_20200506174646_0087c68d-289a-4fb8-INFO:Concurrencymodeisdisabled,notcreatingalockINFO:SemanticysisCompleted(retrial=INFO:ReturningHiveschema:Schema(fieldSchemas:[FieldSchema(name:_col0,INFO:Completedcompilingcommand(queryId=root_20200506174646_0087c68d-INFO:Concurrencymodeisdisabled,notcreatingalockINFO:Executingcommand(queryId=root_20200506174646_0087c68d-289a-4fb8-WARN:Hive-on-MRisdeprecatedinHive2andmaynotbeavailableintheINFO:QueryID=root_20200506174646_0087c68d-289a-4fb8-89d4-INFO:Totaljobs=INFO:LaunchingJob1outofINFO:Startingtask[Stage-1:MAPRED]inserialINFO:Numberofreducetasksdeterminedatcompiletime:INFO:Inordertochangetheaverageloadforareducer(inINFO setINFO:InordertolimittheumnumberofINFO setINFO:InordertosetaconstantnumberofINFO setINFO:numberofINFO:Submittingtokensforjob:INFO:Executingwithtokens:INFO:Theurltotrackthejob:INFO:StartingJob=job_1588756653704_0002,TrackingURL=INFO:KillCommand=/data/soft/hadoop-3.2.0/bin/mapredjob-killINFO:HadoopjobinformationforStage-1:numberofmappers:1;numberofINFO:2020-05-0617:47:01,940Stage-1map=0%,reduce=INFO:2020-05-0617:47:09,397Stage-1map=100%,reduce=0%,INFO:2020-05-0617:47:18,642Stage-1map=100%,reduce=100%,INFO:MapReduceTotalcumulativeCPUtime:3seconds240INFO:EndedJob=INFO:Startingtask[Stage-7:CONDITIONAL]inserialINFO:Stage-4isselectedbyconditionINFO:Stage-3isfilteredoutbyconditionINFO:Stage-5isfilteredoutbyconditionINFO:Startingtask[Stage-4:MOVE]inserialINFO:MovingdatatodirectoryINFO:Startingtask[Stage-0:MOVE]inserialINFO:Loadingdatatotabledefault.t1fromINFO:Startingtask[Stage-2:STATS]inserialINFO:MapReduceJobsINFO:Stage-Stage-1:Map:1Reduce: CumulativeCPU:3.24 HDFSINFO:TotalMapReduceCPUTimeSpent:3seconds240INFO:Completedexecutingcommand(queryId=root_20200506174646_0087c68d-INFO:INFO:Concurrencymodeisdisabled,notcreatingalockNorowsaffected(35.069查詢數(shù)0:jdbc:hive2://localhost:10000>select*fromINFO:Compilingcommand(queryId=root_20200506174821_360087a8-eb30-49d3-INFO:Concurrencymodeisdisabled,notcreatingalockINFO:SemanticysisCompleted(retrial=INFO:ReturningHiveschema:Schema(fieldSchemas:[FieldSchema(name:t1.id,INFO:Completedcompilingcommand(queryId=root_20200506174821_360087a8-INFO:Concurrencymodeisdisabled,notcreatingalockINFO:Executingcommand(queryId=root_20200506174821_360087a8-eb30-49d3-INFO:Completedexecutingcommand(queryId=root_20200506174821_360087a8-INFO: didibl l |t1.id| | | 1rowselected(1.2110:此時使用bin/hive命令行查看也是可以的,這兩種方式的是同一份11234hive>select*from1Timetaken:2.438seconds,Fetched:1注意:在beeline后面指定hiveserver2的地址的時候,可以指定當(dāng)前機器的內(nèi)網(wǎng)ip也是可以的[root@bigdata04apache-hive-3.1.2-bin]#bin/beeline-uConnectingtoConnectedto:ApacheHive(versionDriver:HiveJDBC(versionTransactionisolation:Beelineversion3.1.2byApache0:退出beeline客戶端,按ctrl+c即可后面我們使用的時候我還是使用hv命令,已經(jīng)習(xí)慣用這個了,還有一個就是大家如果也用這個的話,別人是不是感覺你也是老了,但是你要知道目前是推薦使用ben命令的在工作中我們?nèi)绻龅搅嗣刻於夹枰獔?zhí)行令,那我肯定想要把具體的執(zhí)行s寫到中去執(zhí)行,但是現(xiàn)在這種用法每次都需要開啟一個會話,好像還沒辦法把命令寫到中。注意了,ve后面可以使用-e命令,這樣這條ve命令就可以放到中定時調(diào)度執(zhí)行了因為這樣每次v[root@bigdata04apache-hive-3.1.2-bin]#bin/hive-e"select*fromHiveSessionID=efadf29a-4ed7-4aba-84c8-3Logginginitializedusingconfigurationinjar:file:/data/soft/apache-HiveSessionID=65b9718b-4030-4c0f-a557- Timetaken:3.263seconds,Fetched:1[root@bigdata04apache-hive-3.1.2-當(dāng)然了beeline也可以,后面也是跟一個-e參[root@bigdata04apache-hive-3.1.2-bin]#bin/beeline-uConnectingtojdbc:hive2://192168182Driver:HiveJDBC(versionTransactionisolation:INFO:Compilingcommand(queryId=root_20200506191420_9132f97a-af65-4f5a-INFO:Concurrencymodeisdisabled,notcreatingalockINFO:SemanticysisCompleted(retrial=INFO:ReturningHiveschema:Schema(fieldSchemas:[FieldSchema(name:t1.id,INFO:Completedcompilingcommand(queryId=root_20200506191420_9132f97a-INFO:Concurrencymodeisdisabled,notcreatingalockINFO:Executingcommand(queryId=root_20200506191420_9132f97a-af65-4f5a-INFO:Completedexecutingcommand(queryId=root_20200506191420_9132f97a-INFO:INFO:Concurrencymodeisdisabled,notcreatingalock |t1.id| | | 1rowselected(0.307Beelineversion3.1.2byApacheClosing:0:[root@bigdata04apache-hive-3.1.2-此時我們再把hive的 配置到path環(huán)境變量中,在直接使用hive或者beeline就可以[root@bigdata04apache-hive-3.1.2-bin]#viexportexportHADOOP_HOME=/data/soft/hadoop-exportHIVE_HOME=/data/soft/apache-hive-3.1.2-export[root@bigdata04apache-hive-3.1.2-bin]#sourceJDBC這種方式也需要連接vsrvr2服務(wù),前面我們已經(jīng)啟動了vesrvr服務(wù),在這里直接使用就可以了創(chuàng)建maven項目在pom中添加hive-jdbchive-jdbc<artifactId>hive-開發(fā)代碼,創(chuàng)建包名:創(chuàng)建類名代碼如下 package2importimportimportimport *JDBC代碼操作*注意:需要先啟動hiveserver2服*CreatedbypublicclassHiveJdbcDemopublicstaticvoidmain(String[]args)throws//指定hiveserver2StringjdbcUrl=//獲取jdbc連接,這里的user使用root,就是linux中的用戶名,password隨便指Connectionconn=DriverManager.getConnection(jdbcUrl,"root",//獲取Statementstmt=//指定查詢的Stringsql="select*from//執(zhí)行ResultSetres=//循環(huán)結(jié)while 執(zhí)行代碼,可以看到查詢出來的結(jié)果,但是會打印出來一堆紅色的警告信SLF4J:ClasspathcontainsmultipleSLF4JSLF4J:Foundbindingin[jar:file:/D:/.m2/org/apache/logging/log4j/log4j-SLF4J:Foundbindingin[jar:file:/D:/.m2/org/slf4j/slf4j-SLF4J:SeeforanexSLF4J:ActualbindingisoftypeERRORStatusLoggerNolog4j2configurationfilefound.Usingdefault 分析上面的警告信息,發(fā)現(xiàn)現(xiàn)在是有兩個lgj的實現(xiàn)類,需要去掉一個,還有就是缺少lgjo42的配置文件是x格式的,不是roris1:去掉多余的log4j依賴,從日志中可以看到日志的路org/apache/logging/log4j/log4j-slf4j-impl/2.10.0/log4j-slf4j-impl-org/apache/logging/log4j/log4j-slf4j-impl/2.10.0/log4j-slf4j-impl-org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-這兩個去掉哪個都可以,這兩個都是hve-jdbc這個依賴帶過來的,所以需要修改pom文件中hve-j的依賴hive-jdbc<artifactId>hive-去掉log4j依賴 2:在項目的 中增加log4j2.xml配置文<?xml<?xmlversion="1.0"encoding="UTF-<Configuration<Consolename="Console"<PatternLayoutpattern="%d{YYYY-MM-ddHH:mm:ss}[%t]%-5p<Root<AppenderRefref="Console"再執(zhí)行代碼,打印的就只有結(jié)果1在vs其實就是臨時修改v-sx中參數(shù)的值不過通過set命令設(shè)置的參數(shù)只在當(dāng)前會話有效,退出重新打開如果想要對當(dāng)前機器上的當(dāng)前用戶有效的話可以把命令配置在~/.hiverc文件所以總結(jié)一下,使用st命令配置的參數(shù)是當(dāng)前會話有效,在/.hvrc文件中配置的是當(dāng)前機器中的當(dāng)前用戶有效,而在ve-sexl中配置的則是永久有效了,在hive-site.xml中有一個參數(shù)是hive.cli.print.current.db,這個參數(shù)可以顯示當(dāng)前所在的在這里我們設(shè)置為hive>sethive.cli.print.current.db=hive還有一個參數(shù)hive.cli.print.header可以控制獲取結(jié)果的時候顯示字段名稱,這樣看起來會比較清hive(default)>select*from Timetaken:0.184seconds,Fetched:1hive(default)>sethive.cli.print.header=hive(default)>select*from Timetaken:0.202seconds,Fetched:1這些參數(shù)屬于的個人習(xí)慣,所以我希望把這個配置放到我個人用戶下修改~/.hiverc,我們每次在進入hive命令行的時候都會加載當(dāng)前用 下的.hiverc文件中的內(nèi)[root@bigdata04apache-hive-3.1.2-bin]#visethive.cli.print.current.db=sethive.cli.print.header=這個時候重新進來確認(rèn)一下效 hive如果我們想查看一下hive的歷史操作命令如何查看呢linux中有一個history命令可以查看歷史操作命hive中也有類似的功能,hive中的歷史命令會在當(dāng)前用 下的 [root@bigdata04[root@bigdata04apache-hive-3.1.2-bin]#moreshowHive的日[root@bigdata04conf]#which:nohbasein(.:/data/soft/jdk1.8/bin:/data/soft/hadoop-SLF4J:ClasspathcontainsmultipleSLF4JSLF4J:Foundbindingin[jar:file:/data/soft/apache-hive-3.1.2-SLF4J:Foundbindingin[jar:file:/data/soft/hadoop- SLF4J:SeeforanexSLF4J:ActualbindingisoftypeHiveSessionID=3b4db1d6-d283-48a7-b986-9Logginginitializedusingconfigurationinjar:file:/data/soft/apache-hive-HiveSessionID=83532edf-47e9-47ef-87fc-Hive-on-MRisdeprecatedinHive2andmaynotbeavailabl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代物流業(yè)中的人才培養(yǎng)與企業(yè)文化建設(shè)
- 環(huán)境心理學(xué)在優(yōu)化老年患者就醫(yī)體驗中的應(yīng)用
- 建筑物拆除施工現(xiàn)場的施工安全與技術(shù)措施創(chuàng)新考核試卷
- 摩托車散熱器風(fēng)扇電機檢查考核試卷
- 化學(xué)試劑在量子點制備中的應(yīng)用考核試卷
- 八大員-標(biāo)準(zhǔn)員模擬習(xí)題+答案
- 用藥指導(dǎo)在老年患者治療中的重要性
- 深度探討科技對于工作方式的轉(zhuǎn)變以及帶來的職場改變
- 塑料鞋市場細(xì)分與產(chǎn)品定位考核試卷
- 中級美發(fā)師考試題與答案
- 臨床護理實踐指南2024版
- 勞動合同(模版)4篇
- 家庭病房工作制度和人員職責(zé)
- 道德與法律的關(guān)系課件
- 建設(shè)工程監(jiān)理合同示范文本GF-2018-0202
- 2022質(zhì)檢年終工作總結(jié)5篇
- 國際商務(wù)談判雙語版課件(完整版)
- 物業(yè)管理應(yīng)急預(yù)案工作流程圖
- (高清正版)T_CAGHP 003—2018抗滑樁治理工程設(shè)計規(guī)范 (試行)
- 畢業(yè)論文論財務(wù)管理是企業(yè)管理的核心
- 清潔化施工無土化安裝施工方案
評論
0/150
提交評論