Apache Hive 下载与安装
1.hive產生背景
mapreduce計算過程中,絕大多數的場景,分析結構化的數據,SQL語句處理起來更方便,而且開發成本更低。而使用mapreduce開發的話,無論是人工成本還是代碼書寫時間成本都會大大提高。
2.hive是什么?
對外提供hql編程(方言版SQL),底層數據存儲在hdfs上,將hql語句轉換為mapreduce程序運行的數據倉庫。
hive是一個工具,基于hadoop,提供hql編程工具,hive為我們提供了一個新的hadoop的操作方式 。
hive相當于hadoop的另一種形式的客戶端
3.hive的架構
1)用戶接口層
用戶直接操作 命令行 jdbc webUI界面
2)thrift server層
是一個跨語言服務平臺,jdbc方式才用到
3)元數據庫層
hive中存儲的數據
① 表中的數據,存儲在hdfs上,對應就是一個hdfs路徑
② 元數據:描述原始數據(表中數據)的數據(記錄表數據和hdfs的路徑的對應關系)
對于hive來說,元數據存儲的都是結構化數據,元數據不會特別大。元數據存儲在傳統的關系型數據庫。生產上存儲在MySQL中,默認hive的元數據存儲在derby數據庫中。
4)Driver 核心驅動層,包括:
① 解釋器:將hql解釋成抽象語法樹
② 編譯器:將hql編譯成mapreduce程序
③ 優化器:將上一步編譯結果進行優化
④ 執行器:將最終的優化結果提交執行
4.hive的安裝之使用默認derby作為元數據存儲數據庫
1)準備工作
hive是基于hadoop,所以需要保證hadoop可用
安裝jdk,搭建hadoop環境,并且配置jdk與hadoop的環境變量
2)hive安裝幾個節點?
hive相當于一個客戶端,所以只需要一個節點
3)安裝
使用derby作為元數據庫
上傳安裝包
解壓
配置環境變量 hive/bin
(啟動:hive 直接啟動會報錯,不能初始化元數據庫的實例對象)
初始化hive的元數據庫:schematool -dType derby -initSchema(初始化完成多了兩個文件derby.log與metastore_db)
metastore_db:存儲數據庫中的數據的信息
derby.log:存儲的是derby數據庫的日志信息
啟動:hive
此方式切換目錄啟動hive的時候還是報錯(元數據初始化出錯)
即在哪一個目錄下初始化,就在當前目錄下生成日志和存儲數據目錄,一旦切換目錄執行,就會訪問拿不到初始化產生的文件。
一般生產上將元數據庫設置為MySQL
5.hive的安裝之使用derby作為元數據存儲數據庫
1)準備工作
hive是基于hadoop,所以需要保證hadoop可用
安裝jdk,搭建hadoop環境,并且配置jdk與hadoop的環境變量
2)安裝
使用MySQL作為元數據庫
① yum 安裝MySQL
# 安裝 MySQL yum -y install mysql-server # root用戶啟動mysqld主服務 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解壓與配置
上傳安裝包
解壓
配置環境變量
創建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驅動包
將MySQL的驅動包放到hive安裝目錄的lib目錄下
④ 初始化元數據庫配置
初始化元數據庫:schematool -dType mysql -initSchema
總結
以上是生活随笔為你收集整理的Apache Hive 下载与安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何设置Linux时区为东八区
- 下一篇: 给apache安装mod_rewrite