CentOS下搭建Hive

时间:2022-03-14 14:34:14

参考:https://blog.csdn.net/sjhuangx/article/details/82217306

版本:hive-3.1.1

下载解压hive

镜像地址:http://mirror.hust.edu.cn/apache/hive/hive-3.1.1/

# 下载
wget http://mirror.hust.edu.cn/apache/hive/hive-3.1.1/apache-hive-3.1.1-bin.tar.gz # 解压到指定路径
tar -xzvf apache-hive-3.1.1-bin.tar.gz -C /home/cjp/app/

mysql驱动

参考:https://www.cnblogs.com/thisyan/p/9609497.html

从官网下载驱动jar包https://dev.mysql.com/downloads/connector/j/5.1.html

解压:unzip mysql-connector-java-5.1.47.zip

复制到hive的lib:cp mysql-connector-java-5.1.47-bin.jar ~/app/apache-hive-3.1.1-bin/lib/

配置文件

hive-env.sh

# 先从模版中复制出配置文件
cat hive-env.sh.template >> ~/hadoop/app/hive-1.1.0-cdh5.7.0/conf/hive-env.sh
# 路径配置
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre
export HADOOP_HOME=/home/cjp/app/hadoop-3.2.0
export HIVE_HOME=/home/cjp/app/apache-hive-3.1.1-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib/*

hive-site.xml

# 先从模版中复制出配置文件
cp -r hive-default.xml.template hive-site.xml

主要是配置mysql的关联

/home/cjp/app/apache-hive-3.1.1-bin/tmp
在文件添加如下内容:
相关:https://blog.csdn.net/wodedipang_/article/details/72718138
<property>
<name>system:java.io.tmpdir</name>
<value>/home/cjp/app/apache-hive-3.1.1-bin/tmp</value>
</property>
<property>
<name>system:user.name</name>
<value>${user.name}</value>
</property>
# 驱动配置 使用vim查找修改
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?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>123456</value>
</property>

首次启动hive

解决完以下问题后,直接到hive的bin目录下启动hive

[cjp@centos bin] ./hvie

使用schemaTool初始化mysql数据库

[cjp@centos bin] ./schematool -dbType mysql -initSchema

错误总结

  • jar冲突

    ​ 参考:https://www.cnblogs.com/Jesse-Li/p/7809485.html

    ​ 以下两jar包冲突,这两个版本的hadoop和hive的库都带了,删掉一个就好

    ​ /home/cjp/app/hadoop-3.2.0/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar

    ​ /home/cjp/app/apache-hive-3.1.1-bin/lib/slf4j-log4j12-1.7.25.jar

    新增问题:删除hadoop的jar后,虽然全部启动成功的,但hadoop还是报了一个错误,似乎slf4j在hadoop下是用于记录日志的。

    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
    SLF4J: Defaulting to no-operation (NOP) logger implementation
    SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

    尝试删除hive下面包,保留hadoop的,最后没有问题了!

  • 配置文件非法字符

    ​ 参考:https://www.colabug.com/3924983.html

警告汇总

  • ssh安全警告

    参考https://blog.csdn.net/u012922838/article/details/73291524

    设置useSSL=false这里有个坑 就是hive的配置文件是.XML格式,而在xml文件中&amp;才表示&,所以正确的做法是在Hive的配置文件中,如hive-site.xml进行如下设置

    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
  • hbase的支持

    暂未解决,并不影响