hadoop 3.3大数据集群搭建系列3-安装Hive

2022-11-17  本文已影响0人  只是甲

一. 下载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&amp;allowPublicKeyRetrieval=true&amp;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数据库中查看是否初始化成功:


image.png

八. 使用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')
image.png

网上找了下,需要使用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,测试无问题。

image.png

配置hive环境变量:

vi /etc/profile
export HIVE_HOME=/home/apache-hive-3.1.2-bin

source /etc/profile

参考:

  1. https://blog.csdn.net/tyh1579152915/article/details/109405407
  2. https://blog.csdn.net/u011109589/article/details/124870879
  3. https://blog.csdn.net/keyboard_/article/details/114054013
  4. https://stackoverflow.com/questions/54037773/hive-exception-class-jdk-internal-loader-classloadersappclassloader-cannot
上一篇下一篇

猜你喜欢

热点阅读