文章目录
一. 下载hive
cd /home/software
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz --no-check-certificate
二. 解压
将下载下来的安装包解压到/home目录
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /home
三. 添加Hive核心配置,选择远程MySQL模式
cd /home/apache-hive-3.1.2-bin/conf/
vim hive-site.xml
添加如下内容:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- Hive 元数据的存放位置 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hp8:3306/hivedb?createDatabaseIfNotExist=true&allowPublicKeyRetrieval=true&useSSL=false</value>
<description>JDBC connect String for a JDBC metastore</description>
</property>
<!-- 指定驱动程序 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.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>
<!-- 连接数据库的密码 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>abc123</value>
<description>password to use against metastore database</description>
</property>
</configuration>
四. 下载连接MySQL的驱动包到hive的lib目录下
我连接的远程mysql是 5.7版本的,所以此处选在的是mysql-connector-java-5.1.9.jar,而非8版本的。
cd /home/apache-hive-3.1.2-bin/lib
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/6.0.6/mysql-connector-java-6.0.6.jar
五. MySQL下创建hive数据库
登陆远程数据库,创建hivedb;
create database hivedb;
六. 执行Hive的初始化工作
初始化Hive
cd /home/apache-hive-3.1.2-bin/bin
./schematool -initSchema -dbType mysql
七. 验证初始化是否成功
初始化完成后,在MySQL的hivedb数据库中查看是否初始化成功:
八. 使用hive
启动hive:
# 启动hive
cd /home/apache-hive-3.1.2-bin/bin
./hive
报错:
Exception in thread "main" java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')
网上找了下,需要使用JDK 8版本,而我使用的是openjdk 11
cd /home/hadoop-3.3.2/etc/hadoop/
vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_181
将hadoop的配置文件下的hadoop-env.sh 修改为 JDK8版本的,而全局的/etc/profile里面依旧使用OpenJDK11,测试无问题。
配置hive环境变量:
vi /etc/profile
export HIVE_HOME=/home/apache-hive-3.1.2-bin
source /etc/profile
参考:
- https://blog.csdn.net/tyh1579152915/article/details/109405407
- https://blog.csdn.net/u011109589/article/details/124870879
- https://blog.csdn.net/keyboard_/article/details/114054013
- https://stackoverflow.com/questions/54037773/hive-exception-class-jdk-internal-loader-classloadersappclassloader-cannot
版权声明:本文为u010520724原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。