真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Hive能做什么

這篇文章給大家分享的是有關(guān)Hive能做什么的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司10余年經(jīng)驗(yàn)成就非凡,專業(yè)從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,成都網(wǎng)頁(yè)設(shè)計(jì),成都網(wǎng)頁(yè)制作,軟文營(yíng)銷,廣告投放等。10余年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:18980820575,我們期待您的來電!

Hive能做什么?

  • Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供完整的sql查詢功能,可以將sql語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過類SQL語句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì),不必開發(fā)專門的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉(cāng)庫(kù)的統(tǒng)計(jì)分析。

  • Hive是建立在 Hadoop 上的數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)構(gòu)架。它提供了一系列的工具,可以用來進(jìn)行數(shù)據(jù)提取轉(zhuǎn)化加載(ETL https://my.oschina.net/u/2000675/blog/746016#navbar-header),這是一種可以存儲(chǔ)、查詢和分析存儲(chǔ)在 Hadoop 中的大規(guī)模數(shù)據(jù)的機(jī)制。Hive 定義了簡(jiǎn)單的類 SQL 查詢語言,稱為 HQL(Hive SQL),它允許熟悉 SQL 的用戶查詢數(shù)據(jù)。同時(shí),這個(gè)語言也允許熟悉 MapReduce 開發(fā)者的開發(fā)自定義的 mapper 和 reducer 來處理內(nèi)建的 mapper 和 reducer 無法完成的復(fù)雜的分析工作(HQL函數(shù)庫(kù))。

為什么要使用Hive?

  • 操作接口采用類SQL語法,提供快速開發(fā)的能力

  • 避免了去寫MapReduce,減少開發(fā)人員的學(xué)習(xí)成本

  • 擴(kuò)展功能很方便

Hive與傳統(tǒng)數(shù)據(jù)庫(kù)對(duì)比

 HiveRDBMS
查詢語言HQLSQL
數(shù)據(jù)存儲(chǔ)HDFSRaw Device or Local FS
執(zhí)行MapReduceExcutor
執(zhí)行延遲
處理數(shù)據(jù)規(guī)模
數(shù)據(jù)類型全部數(shù)據(jù)(歷史和在線---分析)在線數(shù)據(jù)
冗余程度    高冗余低冗余(通過范式)
.........
......

...

Hive的架構(gòu)

Hive能做什么

  • 用戶接口主要有三個(gè):CLI,Client 和WUI。其中最常用的是CLI,Cli啟動(dòng)的時(shí)候,會(huì)同時(shí)啟動(dòng)一個(gè)Hive副本。Client是Hive的客戶端,用戶連接至Hive Server。在啟動(dòng)Client模式的時(shí)候,需要指出Hive Server所在節(jié)點(diǎn),并且在該節(jié)點(diǎn)啟動(dòng)Hive Server。WUI是通過瀏覽器訪問Hive。

  • Hive將元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,如MySQL、derby。Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。

  • 解釋器、編譯器、優(yōu)化器完成HQL查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計(jì)劃的生成。生成的查詢計(jì)劃存儲(chǔ)在HDFS中,并在隨后有MapReduce調(diào)用執(zhí)行。

  • Hive的數(shù)據(jù)存儲(chǔ)在HDFS中,大部分的查詢、計(jì)算由MapReduce完成(包含*的查詢,比如select * from tbl不會(huì)生成MapRedcue任務(wù))。

  • Thriff (參考http://www.ibm.com/developerworks/cn/java/j-lo-apachethrift/)

Hive相關(guān)概念

  • Operator(最小的處理單元):每個(gè)操作符代表HDFS的一個(gè)操作或者一道MapReduce作業(yè)    

  • Operator都是Hive定義的一個(gè)處理過程

  • Operator定義(樹狀結(jié)構(gòu)):

  • protectedList>childOperators;
    protectedList>parentOperators;
    protectedbooleandone;// 初始化值為false

     
  • ANTLR詞法語法分析工具解析HQL

Hive能做什么

Hive的三種模式

  • Local模式:該模式連接到一個(gè)In-memory的數(shù)據(jù)庫(kù)Derby,一般用于Unit Test

        Hive能做什么

  • Hive單用戶模式:通過網(wǎng)絡(luò)連接到一個(gè)數(shù)據(jù)庫(kù)中,是最經(jīng)常使用到的模式Hive能做什么

  • Hive多用戶模式:用于非Java客戶端訪問元數(shù)據(jù)庫(kù),在服務(wù)器端啟動(dòng)MetaStoreServer,客戶端利用Thrift協(xié)議通過MetaStoreServer訪問元數(shù)據(jù)庫(kù)

1.本地 derby

這種方式是最簡(jiǎn)單的存儲(chǔ)方式,只需要在 hive-site.xml 做如下配置便可





javax.jdo.option.ConnectionURL jdbc:derby:;databaseName=metastore_db;create=true 

javax.jdo.option.ConnectionDriverName
org.apache.derby.jdbc.EmbeddedDriver


hive.metastore.local
true


hive.metastore.warehouse.dir
/user/hive/warehouse


 
注:使用 derby 存儲(chǔ)方式時(shí),運(yùn)行 hive 會(huì)在當(dāng)前目錄生成一個(gè) derby 文件和一個(gè) metastore_db
目錄。這種存儲(chǔ)方式的弊端是在同一個(gè)目錄下同時(shí)只能有一個(gè) hive 客戶端能使用數(shù)據(jù)庫(kù),否則會(huì)提示如下錯(cuò)誤

[html] view plaincopyprint? hive> show tables;
FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Failed to start database 'metast ore_db', see the next exception for details.
NestedThrowables:
java.sql.SQLException: Failed to start database 'metastore_db', see the next exception for details.
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask hive> show tables;
FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Failed to start database 'metastore_db', see the next exception for details.
NestedThrowables:
java.sql.SQLException: Failed to start database 'metastore_db', see the next exception for details.
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

2.本地 mysql

這種存儲(chǔ)方式需要在本地運(yùn)行一個(gè) mysql 服務(wù)器,并作如下配置(需要將 mysql 的驅(qū)動(dòng) jar 包拷貝到$HIVE_HOME/lib 目錄下)。
# /opt/hive-1.2.1/conf/hive-site.xml




hive.metastore.warehouse.dir /user/hive_remote/warehouse 

hive.metastore.local
true


javax.jdo.option.ConnectionURL jdbc:mysql://localhost/hive_remote?createDatabaseIfNotExist=true 

javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver


javax.jdo.option.ConnectionUserName
hive


javax.jdo.option.ConnectionPassword
password



附:

安裝 mysql
Yum install mysql-server -y
啟動(dòng)服務(wù)
service mysqld start
mysql
修改 mysql 權(quán)限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION; flush privileges;
delete from user where Host != '%';

刪除多余會(huì)對(duì)權(quán)限造成影響的數(shù)據(jù)刷新權(quán)限
[ERROR] Terminal initialization failed; falling back to unsupported java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
at jline.TerminalFactory.create(TerminalFactory.java:101)

錯(cuò)誤的原因: Hadoop jline 版本和 hive 的 jline 不一致

3.遠(yuǎn)端 mysql
3.1.remote 一體

這種存儲(chǔ)方式需要在遠(yuǎn)端服務(wù)器運(yùn)行一個(gè) mysql 服務(wù)器,并且需要在 Hive 服務(wù)器啟動(dòng) meta
服務(wù)。
這里用 mysql 的測(cè)試服務(wù)器,ip 位 192.168.1.214,新建 hive_remote 數(shù)據(jù)庫(kù),字符集位 latine1 




hive.metastore.warehouse.dir
/user/hive/warehouse


javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.57.6:3306/hive?createDatabaseIfNotExist=true


javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver


javax.jdo.option.ConnectionUserName
hive


javax.jdo.option.ConnectionPassword
password


hive.metastore.local
false


hive.metastore.uris
thrift://192.168.1.188:9083



注:這里把 hive 的服務(wù)端和客戶端都放在同一臺(tái)服務(wù)器上了。服務(wù)端和客戶端可以拆開,

3.2.Remote 分開

將 hive-site.xml 配置文件拆為如下兩部分

-服務(wù)端配置文件 啟動(dòng):hive --service metastore





hive.metastore.warehouse.dir
/user/hive/warehouse


javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.57.6:3306/hive?createDatabaseIfNotExist=true


javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver


javax.jdo.option.ConnectionUserName
root


javax.jdo.option.ConnectionPassword
123456



-客戶端配置文件 啟動(dòng):hive





hive.metastore.warehouse.dir
/user/hive/warehouse


hive.metastore.local
false

hive.metastore.uris
thrift://slave2:9083

感謝各位的閱讀!關(guān)于“Hive能做什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


文章題目:Hive能做什么
網(wǎng)頁(yè)鏈接:http://weahome.cn/article/jipdpi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部