基礎以來環境搭建
Mysql搭建
- 默認情況下, Hive的元數據保存在了內嵌的 derby 數據庫裏, 生產環境使用 MySQL 來存放 Hive 元數據,靠譜.
- 參考:https://www.cnblogs.com/luohanguo/p/9045391.html
- mysql登錄:mysql -uroot -p
- mysql開通權限
- 指定某臺機器權限:grant all privileges on . to [email protected] identified by ‘root’ with grant option;
- 指定所有機器權限:grant all privileges on . to root@"%" identified by ‘root’ with grant option;
hive搭建
hive包下載
- 地址:http://mirror.bit.edu.cn/apache/hive/hive-2.3.5/ 選擇apache-hive-2.3.5-bin.tar.gz下載即可
- 解壓tar -zxvf apache-hive-2.3.5-bin.tar.gz -C ./
hive配置
- 進入hive文件夾
- cd conf/ 進入conf目錄
- cp hive-env.sh.template hive-env.sh
- vim hive-env.sh
配置hadoop和hive conf目錄
export HADOOP_HOME=${HADOOP_HOME}
export HIVE_CONF_DIR=${HIVE_HOME}/conf
- 日誌設置
- cp hive-log4j2.properties.template hive-log4j2.properties
- vi hive-log4j2.properties
修改目錄
property.hive.log.dir = xxx/logs 自行設置目錄
- cp hive-default.xml.template hive-site.xml
- vim hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--Hive作業的HDFS根目錄位置 -->
<property>
<name>hive.exec.scratchdir</name>
<value>/user/root/tmp</value>
</property>
<!--Hive作業的HDFS根目錄創建寫權限 -->
<property>
<name>hive.scratch.dir.permission</name>
<value>733</value>
</property>
<!--hdfs上hive元數據存放位置 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/root/warehouse</value>
</property>
<!--連接數據庫地址,名稱 ,默認hive自動創建數據庫 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hivemeta?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>
<!--連接數據庫用戶密碼 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>xxx</value>
</property>
<!--客戶端顯示當前查詢表的頭信息 -->
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<!--客戶端顯示當前數據庫名稱信息 -->
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.default.fileformat</name>
<value>Orc</value>
<!-- <value>TextFile</value> -->
<description>
Expects one of [textfile, sequencefile, rcfile, orc].
Default file format for CREATE TABLE statement. Users can explicitly override it by CREATE TABLE ... STORED AS [FORMAT]
</description>
</property>
<!-- hive metastore配置 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://localhost:9083</value>
<description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>
</configuration>
- 如果使用不是mysql root賬戶,可做如下建庫操作
mysql> CREATE DATABASE hive;
mysql> USE hive;
mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
mysql> GRANT ALL ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive';
mysql> GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';
mysql> FLUSH PRIVILEGES;
mysql> quit;
hive測試
- 配置hive home
# hive相關配置
export HIVE_HOME=/opt/bigdata/hive/default
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:.:$HIVE_HOME/lib
export HIVE_CONF_DIR=${HIVE_HOME}/conf
- 刷新環境變量:source /etc/profile
- 啓動metastore服務:
hive --service metastore &
- 測試hive ,直接命令行輸入hive
- 執行建表
- hive sql 的寫法可以參考hive手冊 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL
後續還有spark安裝,盡請期待!!!