環境需求
- jdk 1.8
- Hadoop 3
- mysql 8
安裝資源
https://hive.apache.org/downloads.html
步驟
1 解壓, 配置環境變量
tar -xf apache-hive-3.1.2-bin.tar.gz
cd apache-hive-3.1.2-bin
export HIVE_HOME=`pwd`
export PATH=$HIVE_HOME/bin:$PATH
2 創建Hive所需HDFS目錄
$HIVE_HOME/bin/init-hive-dfs.sh
# 可選參數
--warehouse-dir=/user/hive/warehouse
--tmp-dir=/tmp
3.1 執行數據庫初始化(derby方式)
cd $HIVE_HOME/bin
schematool -dbType derby -initSchema
3.2 執行數據庫初始化(mysql方式)
先進行mysql的配置
cd $HIVE_HOME/conf
touch hive-site.xml
配置內容:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://<MYSQL地址>:3306/hive?useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>MYSQL用戶名</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>MYSQL密碼</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
</configuration>
將mysql驅動放入$HIVE_HOME/lib/文件夾,
驅動下載地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.18/mysql-connector-java-8.0.18.jar
最後進入hive的bin目錄初始化
cd $HIVE_HOME/bin
schematool -dbType mysql -initSchema
運行
cd $HIVE_HOME/bin
# 啓動hiserver2
hiveserver2 # 或 hive --service hiveserver2
# 啓動metastore服務
hive --service metastore -p 9083
常見錯誤
1 java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
原因:Hive依賴的guava版本和Hadoop依賴的版本不一樣
解決方法:
mkdir $HIVE_HOME/lib/bak/
mv $HIVE_HOME/lib/guava-*.jar /HIVE_HOME/lib/bak/
cp $HADOOP_HOME/share/hadoop/common/lib/guava-*.jar $HIVE_HOME/lib