环境需求
- 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