Apache Hive 下载与安装
1.hive產(chǎn)生背景
mapreduce計算過程中,絕大多數(shù)的場景,分析結(jié)構(gòu)化的數(shù)據(jù),SQL語句處理起來更方便,而且開發(fā)成本更低。而使用mapreduce開發(fā)的話,無論是人工成本還是代碼書寫時間成本都會大大提高。
2.hive是什么?
對外提供hql編程(方言版SQL),底層數(shù)據(jù)存儲在hdfs上,將hql語句轉(zhuǎn)換為mapreduce程序運行的數(shù)據(jù)倉庫。
hive是一個工具,基于hadoop,提供hql編程工具,hive為我們提供了一個新的hadoop的操作方式 。
hive相當于hadoop的另一種形式的客戶端
3.hive的架構(gòu)
1)用戶接口層
用戶直接操作 命令行 jdbc webUI界面
2)thrift server層
是一個跨語言服務(wù)平臺,jdbc方式才用到
3)元數(shù)據(jù)庫層
hive中存儲的數(shù)據(jù)
① 表中的數(shù)據(jù),存儲在hdfs上,對應(yīng)就是一個hdfs路徑
② 元數(shù)據(jù):描述原始數(shù)據(jù)(表中數(shù)據(jù))的數(shù)據(jù)(記錄表數(shù)據(jù)和hdfs的路徑的對應(yīng)關(guān)系)
對于hive來說,元數(shù)據(jù)存儲的都是結(jié)構(gòu)化數(shù)據(jù),元數(shù)據(jù)不會特別大。元數(shù)據(jù)存儲在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫。生產(chǎn)上存儲在MySQL中,默認hive的元數(shù)據(jù)存儲在derby數(shù)據(jù)庫中。
4)Driver 核心驅(qū)動層,包括:
① 解釋器:將hql解釋成抽象語法樹
② 編譯器:將hql編譯成mapreduce程序
③ 優(yōu)化器:將上一步編譯結(jié)果進行優(yōu)化
④ 執(zhí)行器:將最終的優(yōu)化結(jié)果提交執(zhí)行
4.hive的安裝之使用默認derby作為元數(shù)據(jù)存儲數(shù)據(jù)庫
1)準備工作
hive是基于hadoop,所以需要保證hadoop可用
安裝jdk,搭建hadoop環(huán)境,并且配置jdk與hadoop的環(huán)境變量
2)hive安裝幾個節(jié)點?
hive相當于一個客戶端,所以只需要一個節(jié)點
3)安裝
使用derby作為元數(shù)據(jù)庫
上傳安裝包
解壓
配置環(huán)境變量 hive/bin
(啟動:hive 直接啟動會報錯,不能初始化元數(shù)據(jù)庫的實例對象)
初始化hive的元數(shù)據(jù)庫:schematool -dType derby -initSchema(初始化完成多了兩個文件derby.log與metastore_db)
metastore_db:存儲數(shù)據(jù)庫中的數(shù)據(jù)的信息
derby.log:存儲的是derby數(shù)據(jù)庫的日志信息
啟動:hive
此方式切換目錄啟動hive的時候還是報錯(元數(shù)據(jù)初始化出錯)
即在哪一個目錄下初始化,就在當前目錄下生成日志和存儲數(shù)據(jù)目錄,一旦切換目錄執(zhí)行,就會訪問拿不到初始化產(chǎn)生的文件。
一般生產(chǎn)上將元數(shù)據(jù)庫設(shè)置為MySQL
5.hive的安裝之使用derby作為元數(shù)據(jù)存儲數(shù)據(jù)庫
1)準備工作
hive是基于hadoop,所以需要保證hadoop可用
安裝jdk,搭建hadoop環(huán)境,并且配置jdk與hadoop的環(huán)境變量
2)安裝
使用MySQL作為元數(shù)據(jù)庫
① yum 安裝MySQL
# 安裝 MySQL yum -y install mysql-server # root用戶啟動mysqld主服務(wù) service mysqld start # 修改密碼方式1 進入MySQL中修改密碼----update方式 use mysql delete from user where user=''; update user set password=PASSWORS('123456') where user='root'; flush privillege;# 修改密碼方式1 進入MySQL中修改密碼----update方式 set Password='' where user='root';② hive解壓與配置
上傳安裝包
解壓
配置環(huán)境變量
創(chuàng)建hive的配置文件 conf/hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration><property><name>javax.jdo.option.ConnectionPassword</name><value>miku</value><description>password to use against metastore database</description></property><property> <name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore.To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.</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> </configuration>③ 引入MySQL驅(qū)動包
將MySQL的驅(qū)動包放到hive安裝目錄的lib目錄下
④ 初始化元數(shù)據(jù)庫配置
初始化元數(shù)據(jù)庫:schematool -dType mysql -initSchema
總結(jié)
以上是生活随笔為你收集整理的Apache Hive 下载与安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何设置Linux时区为东八区
- 下一篇: 给apache安装mod_rewrite