国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 操作系統(tǒng) > 正文

Hive[2] 基礎(chǔ)介紹

2024-06-28 13:22:34
字體:
供稿:網(wǎng)友
Hive[2] 基礎(chǔ)介紹

2.3 Hive 內(nèi)部介紹: P44

$HIVE_HOME/lib 下的 jar 文件是具體的功能部分;(CLI模塊)其它組件,Thrift 服務(wù),可以遠(yuǎn)程訪問其他進(jìn)程功能;也有使用 JDBC 和 ODBC 訪問 Hive 的功能;所有Hive 客戶端都需要一個(gè) metastoreservice(元數(shù)據(jù)服務(wù)),Hive 用這個(gè)服務(wù)來存儲(chǔ)表模式信息和其他元數(shù)據(jù)信息;默認(rèn)會(huì)使用內(nèi)置的 Derby SQL服務(wù)器提供有限的單進(jìn)程的存儲(chǔ)服務(wù);HWI Hive 網(wǎng)頁界面,提供了遠(yuǎn)程訪問Hive 的服務(wù);conf 目錄下存放了Hive 的配置文件2.4 啟動(dòng) Hive 進(jìn)入 CLI 模式$HIVE_HOME/bin/hive會(huì)顯示用戶所執(zhí)行的命令和查詢?nèi)罩緮?shù)據(jù)所存放在的本地文件系統(tǒng)中的位置,還有OK 及查詢所消耗的時(shí)間等信息;注意:Hive 中的關(guān)鍵字是不區(qū)分大小寫的;如果使用 Derby 數(shù)據(jù)庫作為元數(shù)據(jù)存儲(chǔ)的話,那么會(huì)在用戶使用的當(dāng)前的目錄是建立一個(gè) metastore_db 的目錄,此目錄是在啟動(dòng)Hive會(huì)話的時(shí)候由 Derby 建立的,如果用戶切換其它目錄來執(zhí)行啟動(dòng)Hive ,它會(huì)在其他目錄新建立這個(gè) 目錄 ,并忘記以前的目錄會(huì)造成數(shù)據(jù)丟失,所以要把元數(shù)據(jù)存儲(chǔ)配置成一個(gè)永久的路徑最好;hive.metastore.warehouse.dir用于指定 Hive 表存儲(chǔ)所在的位置 在 Hadoop中默認(rèn)的值是/usr/hive/warehouse這個(gè)為屬性指定不同的值可以允許每個(gè)用戶定義其自己的數(shù)據(jù)倉庫目錄,這樣可以避免影響其他系統(tǒng)用戶,如:sethive.metastore.warehouse.dir=/user/myname/hive/warehouse;為了不讓每次啟動(dòng)Hive時(shí)指定這樣的一個(gè)腳本比較麻煩,可以把它放在$HIVE_HOME/.hiverc文件中,每次啟動(dòng)Hive 文件都會(huì)執(zhí)行這個(gè)文件;2.5 使用 JDBC 連接元數(shù)據(jù)Hive所提供的組件中沒有元數(shù)據(jù)存儲(chǔ)組件的,這個(gè)是Hadoop所沒有的,需要外部提供;元數(shù)據(jù)存儲(chǔ)中趕集了表的模式和分區(qū)信息等元數(shù)據(jù)信息,用戶在執(zhí)行操作(create tablse 、alter talbe)的時(shí)候會(huì)指定這些信息,因?yàn)槎嘤脩粝到y(tǒng)可能并發(fā)這些元數(shù)據(jù)存儲(chǔ),所以默認(rèn)的內(nèi)置數(shù)據(jù)庫并不適用于生產(chǎn)環(huán)境;設(shè)置MySQL 來作業(yè)元數(shù)據(jù)存儲(chǔ):假設(shè)在 db1.mydomain.pvt 服務(wù)器的 3306 端口上運(yùn)行著 MySQL,且數(shù)據(jù)庫名為 hive_db設(shè)置 hive-siet.xml 中的元數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫配置<PRoperty><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://db1.mydomain.pvt:3306/hive_db?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value><description>username to use against metastore database</description></property><property><name>javax.jdo.option.ConnectionPassWord</name><value>911</value><description>password to use against metastore database</description></property><property>為了使 Hive 能夠連接上 MySql,需要將 JDBC 驅(qū)動(dòng)放置在類路徑下: MySQL JDBC (Jconnector 下載地址:http://www.mysql.com/downloads/connecotr/j/)下載完后可放置在 Hive 庫路徑下,$HOME_HIVE/lib 下;配置信息完畢后 Hive 就會(huì)把元數(shù)據(jù)存儲(chǔ)到 MySql 中;2.6 Hive 命令$HOME_HIVE/bin/hive 進(jìn)入 CLI 的 Hive e服務(wù)通道bin/hive --helfp查看hive 命令的幫助Service List 里面的內(nèi)容提供的服務(wù),包括我們常使用的CLI,可以通過 --service name 服務(wù)名稱來啟用某個(gè)服務(wù);Hive 的服務(wù):cli 命令行界面;用戶定義表,執(zhí)行查詢等hiveserver Hive Server 監(jiān)聽來自于其他進(jìn)程的 Thrift 連接的一個(gè)守護(hù)進(jìn)程hwi HiveWeb 界面;是一個(gè)可以執(zhí)行查詢語句和其他命令的簡單的 web界面,可以不用登錄到集群中的機(jī)器上使用 CLI 來進(jìn)行查詢jar hadoop jar 命令的一個(gè)擴(kuò)展,這樣可以執(zhí)行需要 Hive 環(huán)境的應(yīng)用metastore 啟動(dòng)一個(gè)擴(kuò)展的 Hive 元數(shù)據(jù)服務(wù),可以供多客戶端使用rcfilecat 一個(gè)可以打印出 RCFile 格式文件內(nèi)容的工具;--auxpath 選項(xiàng)允許用戶指定一個(gè)以冒號(hào)分割的 附屬的 Java 包 這些文件中包含用戶可能需要的自定義的擴(kuò)展;--config 文件目錄 這個(gè)命令允許用戶覆蓋 $HIVE_HOME/conf 中默認(rèn)的屬性配置,而指向一個(gè)新的配置文件目錄;2.7 命令行界面$hive --help --service cli顯示 CLI 所提供的選項(xiàng)列表usage: hive-d,--define <key=value> Variable subsitution to apply to hive commands. e.g. -d A=B or --define A=B --database <databasename> Specify the database to use-e <quoted-query-string> SQL from command line-f <filename> SQL from files-h <hostname> connecting to Hive Server on remote host-H,--help Print help information --hiveconf <property=value> Use value for given property --hivevar <key=value> Variable subsitution to apply to hivecommands. e.g. --hivevar A=B-i <filename> Initialization SQL file-p <port> connecting to Hive Server on port number-S,--silent Silent mode in interactive shell-v,--verbose Verbose mode (echo executed SQL to the console)變量和屬性:--fefine key=value 和 --hivevar key=value 是等價(jià)的,二者都可以讓用戶在命令行定義用戶自定義變量以便在 Hive 腳本中引用,來滿足不同情況的執(zhí)行;0.8.0以后的版本才有;并會(huì)將這些鍵值對(duì)放到 hivevar 命名空間,以便與其他3種內(nèi)置命令空間(hiveconf、system、env)進(jìn)行區(qū)分 ;Hive 中變量和屬性命名空間hivevar 讀/寫 用戶自定義變量hiveconf 讀/寫 Hive 相關(guān)配置system 讀/寫 Java 定義的配置屬性env 讀 Shell 環(huán)境定義的環(huán)境變量Hive 變量內(nèi)部是以 Java 字符串的方式存儲(chǔ)的,用戶可以在查詢中引用變量,Hive會(huì)先使用變量值替換掉查詢的變量引用,然后才會(huì)將語句提交給查詢處理器;CLI 中可使用 SET 顯示或修改變量值;set evn:HOME顯示當(dāng)前執(zhí)行hive的目錄;set 輸出更多目錄hvie -v;如果不加 -v 則會(huì)打印出所以的變更內(nèi)容;如果使用 -v 則還會(huì)打印 hadoop 中所定義的所有的屬性,set --define foo=bar定義變量set foo 顯示變量 foo=bar;set hivevar:foo;顯示 變量 foo 顯示內(nèi)容 hivevar:foo=barset hivevar:foo=bar2;設(shè)置變量;set foo; 顯示 foo=bar2從以上可以看出 hivevar: 是可選的;在CLI 中查詢語句中的變量引用會(huì)先被替換掉然后才會(huì)提交給查詢處理器。create table tossl(i int,${hivevar:foo} string);describe tossl;顯示 ${hivevar:foo} 變量的值;set hive.cli.print.current.db查看此設(shè)置的值; 默認(rèn)為 false ; 設(shè)置為 true 可以在CLI 提示符打印當(dāng)前所在的數(shù)據(jù)庫名;默認(rèn)的數(shù)據(jù)名為 default ;hive> set system:user.name; 顯示 system:user.name=root;hive>set env:HOME; 顯示 env:HOME=/root注意:用戶必須使用 system: 或者 env: 前綴來指定系統(tǒng)屬性和環(huán)境變量;Hive 中 “一次使用”的命令可以這樣:$hive -e "select * from mytable limit 3";可以執(zhí)行一次命令后就會(huì)退出;$ hive -S -e"select * from mytable limit 3" > /tmp/myquery ; -S 選項(xiàng)可以開啟靜默模式,結(jié)果里就不顯示 OK ,Timetaken 等;并將結(jié)果存入 /tmp/myquery 文件 而不是HDFS 中;$hive -S -e "set" | grep warehouse如果記不清楚某個(gè)屬性名時(shí),可以使用此命令來查詢屬性;從文件中執(zhí)行 Hive 查詢,Hive中可以使用 -f 文件名試執(zhí)行指定文件中的一個(gè)或者多個(gè)查詢語句;一般把這些 Hive 查詢文件保存為.q 或 .hql 后綴的文件;$hive -f /path/to/file/withqueryies.hqlhive> source /path/to/file/withqueries.hql; 在 CLI 中 執(zhí)行 文件中的 Hive 語句 ;$hive -e "LOAD DATA LOCAL INPATH '/tmp/myfile' INTO TALBE src";2.7.5 hiverc 文件$hive -i '/tmp/myfile'允許用戶指定一個(gè)文件,當(dāng) CLI 啟動(dòng)時(shí)會(huì)在提示符出現(xiàn)之前先執(zhí)行這個(gè)文件。也可以在 Hive 的 HOME 目錄下尋找.hiverc的文件,而且會(huì)自動(dòng)執(zhí)行這個(gè)文件中的命令;對(duì)于用戶需要和和頻繁執(zhí)行的命令,可以使用此文件,如設(shè)置系統(tǒng)屬性和變量等;例如:ADD JAR /path/to/costom_hive_extensions.jar 向分布式內(nèi)存中半圓一個(gè) jar 文件set hive.cli.print.current.db=true; 顯示CLI提示符前顯示當(dāng)前所在的工作數(shù)據(jù)庫set hive.exec.mode.local.auto=true; 鼓勵(lì) Hive 如果可以使用本地模式執(zhí)行的話就在本地執(zhí)行,這樣可以加快小數(shù)據(jù)集的數(shù)據(jù)查詢速度注意:每行后面的 ; 一定要記得加上2.7.6 更多的 Hive CLI 介紹1)自動(dòng)補(bǔ)全功能:在輸入命令過程中 按 Tab 制表鍵,CLI 會(huì)自動(dòng) 補(bǔ)全可能的關(guān)鍵字;2)查看操作命令歷史:可以用上下箭頭來查看之前 的命令,它被記錄在 $HOME_HIVE/.hivehistory 中,能保存 10000條2.7.8 執(zhí)行 shell 命令用戶不需要退出 Hive CLI就可以執(zhí)行簡單的 bash shell 命令,只要在命令前加上 !并且以 ; 結(jié)尾就可以hive> ! /bin/echo "what up dog";hive>! pwd;注意:不能使用 shell 的管道功能 和文件名稱自動(dòng)實(shí)例功能;2.7.9 在 Hive 內(nèi)使用 Hadoop 的dfs 命令[在hvie中使用 hadoop命令比在 bash shell 中使用要快因?yàn)樗鼤?huì)在hive的同一個(gè)進(jìn)程中執(zhí)行這些命令]hive> dfs -sl /; 只要將 hadoop 命令中的 hadoop 關(guān)鍵字去掉,并且以分號(hào)結(jié)尾即可hive> dfs -help ;查盾 dfs 所提供的所有功能選項(xiàng)列表2.7.10 Hive 腳本中的注釋在保存 HiveQuery 的文件里可以以--來注釋 語句,但不能在 CLI 中這樣注釋;2.7.11 顯示字段名稱set hive.cli.print.header=true; 來顯示字段名稱
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 岳普湖县| 扎赉特旗| 寿光市| 铜川市| 福贡县| 广饶县| 舟山市| 长治市| 花莲市| 乐东| 梁平县| 南华县| 池州市| 惠水县| 巴林右旗| 孟州市| 宜兰县| 铜陵市| 五寨县| 灵寿县| 手机| 宁波市| 扶绥县| 淳化县| 澄迈县| 安溪县| 车险| 万盛区| 尚志市| 黄大仙区| 宁强县| 青岛市| 正阳县| 延津县| 鹤庆县| 芷江| 长兴县| 双柏县| 甘洛县| 吐鲁番市| 贵德县|