文章目錄
- 一.什麼是Hive?
- 二.Hive與傳統資料庫比對
- 三.Hive部署
-
- 1.下載下傳與安裝
- 2.Hive需要提前裝好MySQL
- 3.Hive配置檔案修改
- 4.啟動(需要先啟動hdfs)
一.什麼是Hive?
- Hive是建立在Hadoop上的工具.能夠幫助使用者屏蔽掉複雜的MapReduce邏輯,隻需要使用者使用簡單的SQL語句即可完成一定的查詢功能
- Hive利用HDFS存儲資料,利用MapReduce查詢資料
二.Hive與傳統資料庫比對
Hive | RDMS | |
---|---|---|
查詢語言 | HQL | SQL |
資料存儲 | HDFS | Raw Device or Local FS |
執行 | MapReduce | Executor |
執行延遲 | 高 | 低 |
處理資料規模 | 大 | 小 |
索引 | 0.8版本後加入 | 複雜索引機制 |
- 注:Hive具有SQL資料庫的很多類似功能,但應用場景不同,隻适合做批量資料統計分析
三.Hive部署
1.下載下傳與安裝
- 1)下載下傳連結: https://pan.baidu.com/s/1ktOAPcRuctId60m_38tcQg 提取碼: mk39
- 2)将hive安裝包拖入opt目錄下解壓安裝:
tar -zxvf hive-1.1.0-cdh5.14.2.tar.gz
- 3)改名:
mv hive-1.1.0-cdh5.14.2/ hive
- 4)删除安裝包:
rm -rf hive-1.1.0-cdh5.14.2.tar.gz
- 5)配置環境變量:
,添加以下内容:vi /etc/profile
export HIVE_PATH=/opt/hive
export PATH=$PATH:$HIVE_PATH/bin
- 6)輸入:
,使其生效source /etc/profile
2.Hive需要提前裝好MySQL
安裝MySQL
- 安裝完成後需要給root使用者賦權;
grant all on *.* to root@'hadoop110';
flush privileges;
3.Hive配置檔案修改
- 1.進入配置檔案目錄: cd /opt/hive/conf/
- 2)建立
檔案:hive-site.xml
,添加如下内容:vi hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://hadoop110:9000/hive/warehouse</value>
<description>管理表存儲的位置,可以是linux中的目錄,也可以是相對于fs.default.name有關的目錄</description>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<!-- 指定hive中繼資料存儲的MySQL位址 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<!-- 中繼資料存儲資料庫的驅動 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- 中繼資料存儲資料庫的使用者名 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- 中繼資料存儲資料庫的密碼,(注:這裡是mysql自己root使用者的密碼) -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>ok</value>
</property>
<property>
<name>hive.server2.authentication</name>
<value>NONE</value>
</property>
<property>
<name>hive.server2.thrift.client.user</name>
<value>root</value>
</property>
<property>
<name>hive.server2.thrift.client.password</name>
<value>ok</value>
</property>
</configuration>
- 3)建立
檔案:hive-env.sh
,添加如下内容:vi hive-env.sh
export HADOOP_HOME=/opt/hadoop-2.6.0-cdh5.14.2
export HIVE_HOME=/opt/hive
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_AUX_JARS_PATH=/opt/hive/lib
export JAVA_HOME=/opt/jdk1.8.0_221
export HIVE_CONF_DIR=/opt/hive/conf
- 4)修改hive-log4j.properties,配置hive的log,先改名,
mv hive-log4j.properties.template hive-log4j.properties
- 進入檔案:
,之後按20gg快速定位,修改為如下内容:vi hive-log4j.properties
hive.log.dir=/opt/hive/logs
- 5)建立配置檔案需要的目錄:
,mkdir /opt/hive/warehouse
mkdir /opt/hive/logs
- 6)将mysql-connector-java-5.1.0-bin.jar包拖到$HIVE_HOME/lib目錄下
- 7)給hive檔案賦權:
chmod -R 777 /opt/hive
4.啟動(需要先啟動hdfs)
- 1)初始化mysql資料庫:
,效果如下:schematool -initSchema -dbType mysql
- 2)輸入:
,進入hive指令行模式,效果如下:hive
- 3)使用SQLyog可發現已建立hive資料庫,如下:
- 4)輸入:
效果如下(剛開始沒有表):show tables;
- 5)建立一個再檢視,效果如下:
- 6)輸入:
退出hive指令行exit;
- 7)如果warehouse目錄存儲在hdfs上可以去50070端口檢視建立的表,如下: