当前位置: 首页 > article >正文

Hive-4.0.1数据库搭建(可选配置用户名密码远程连接,涵盖切换为tez引擎)

一、hive搭建(所依赖的Hadoop集群参照文章:最新版hadoop-3.4.0集群安装和配置(目前论坛的都是老古董了,看我的准没错!!!)这里以三台服务器为例_hadoop 3.4安装-CSDN博客)(区别是这里Hadoop版本3.3.6,hive4.0.1)

1.官网下载tar包上传到服务器并解压(我这里解压到了hive目录):

请添加图片描述

2.进入到conf目录,并复制模板配置文件进行修改:

cd /apache-hive-4.0.1-bin/conf
cp hive-default.xml.template hive-site.xml

3.编写内容如下:

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hive_metastore?createDatabaseIfNotExist=true</value>  <!--改成自己的数据库-->
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value> <!--改成自己的数据库驱动。我这里是5.7版本不要.cj-->
</property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>your_username</value>  <!--改成自己的数据库连接用户名-->
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>your_password</value> <!--改成自己的数据库连接密码-->
</property>
4.重点注意:
因为我们这里用的官方配置文件模板,还需要将hive-site.xml文件里的 s y s t e m : j a v a . i o . t m p d i r 全部修改成 {system:java.io.tmpdir}全部修改成 system:java.io.tmpdir全部修改成{java.io.tmpdir}, s y s t e m : u s e r . n a m e 全部修改成 {system:user.name}全部修改成 system:user.name全部修改成{user.name},否则在进入beeline连接后会报错拒绝连接

5.注意因为这里使用了mysql作为元数据库,需要下载mysql驱动jar包上传到lib目录下,选择自己对应的版本jar包即可:

请添加图片描述

6.初始化元数据库:

schematool -dbType mysql -initSchema

请添加图片描述

7.依次执行一下命令(使用nohup 后台运行,没有nohup工具的自行下载)

nohup hive --service metastore > /hive/apache-hive-4.0.1-bin/logs/metastore.log &    #后面输出目录改为自己想要存放的路径即可
nohup hive --service hiveserver2 > /hive/apache-hive-4.0.1-bin/logs/hiveserver2.log &

8.查看进程启动成功:

请添加图片描述

9.进入控制台并连接:

请添加图片描述

这里还未设置hive用户名密码连续两次回车即可,到此hive搭建成功!

可选配置(设置hive用户名密码连接,修改hive-site.xml以下部分:

<!--设置相应用户名和密码-->

<property>
    <name>hive.server2.thrift.client.user</name>
    <value>root</value>
    <description>Username to use against thrift client</description>
  </property>
  <property>
    <name>hive.server2.thrift.client.password</name>
    <value>123456</value>
    <description>Password to use against thrift client</description>
  </property>

修改此配置务必重新初始化元数据:

schematool -dbType mysql -initSchema
二、切换tez引擎(选用0.10.4版本):

1.官网下载tez安装包并上传到服务器解压到/hive/tez目录下:

请添加图片描述

2.加入环境变量

vim /etc/profile  #在该文件加入以下配置

HADOOP_CLASSPATH=`hadoop classpath`
TEZ_HOME=/hive/tez/apache-tez-0.10.4-bin
export TEZ_CONF_DIR=$HADOOP_CONF_DIR
export TEZ_JARS=$TEZ_HOME/*.jar:$TEZ_HOME/lib/*.jar
export HADOOP_CLASSPATH=$TEZ_CONF_DIR:$TEZ_JARS:$HADOOP_CLASSPATH

3.hdfs创建目录:

# 在HDFS上创建目录
hdfs dfs -mkdir -p /user/tez/
# 上传安装包并重命名,这里不需要解压,直接上传即可,需要在该安装包目录执行以下命令
hdfs dfs -put apache-tez-0.10.4-bin.tar.gz /user/tez/tez.tar.gz

4、增加tez-site.xml配置文件

#进入Hadoop配置文件目录
cd /hadoop/hadoop-3.3.6/etc/hadoop
#创建tez-site.xml
vim tez-site.xml
# 加入以下内容
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- 指定在hdfs上的tez包文件 -->
  <property>
    <name>tez.lib.uris</name>
    <value>hdfs://ali-Promthues:9000/user/tez/tez.tar.gz</value>
  </property>
</configuration>

5.配置完成分发配置Hadoop是分布式模式运行,配置修改完成之后记得分发并重启集群

scp -r /hadoop root@ali-business-vm1:/hadoop/

6.编辑hive-site.xml文件:

# 增加下列配置,其他保持不变
  <property>
    <name>hive.execution.engine</name>
    <value>tez</value>
    <description>
      Expects one of [mr, tez, spark].
      Chooses execution engine. Options are: mr (Map reduce, default), tez, spark. While MR
      remains the default engine for historical reasons, it is itself a historical engine
      and is deprecated in Hive 2 line. It may be removed without further warning.
    </description>
  </property>

  <property>
    <name>hive.tez.container.size</name>
    <value>4096</value>
    <description>By default Tez will spawn containers of the size of a mapper. This can be used to overwrite.</description>
  </property>

  <property>
    <name>hive.cli.tez.session.async</name>
    <value>false</value>
    <description>
      Whether to start Tez
      session in background when running CLI with Tez, allowing CLI to be available earlier.
    </description>
  </property>

7.解决log4j冲突问题
由于hadoop、hive、tez包中都包含了log4j的依赖,一起搭配使用会造成冲突

故只保留hadoop自带的即可,将hive、tez对应的jar包重命名即可

cd /hive/tez/lib

将log4j对应jar包进行重命名(这里不用删除,凡事留个万一)

mv slf4j-log4j12-1.7.25.jar slf4j-log4j12-1.7.25.jar.bak
mv slf4j-reload4j-1.7.36.jar slf4j-reload4j-1.7.36.jar.bak

8.重启hadoop,重启hive:

start-all.sh #hadoop集群启动
#nohup启动hive,后台运行
nohup hive --service metastore > /hive/apache-hive-4.0.1-bin/logs/metastore.log &
nohup hive --service hiveserver2 > /hive/apache-hive-4.0.1-bin/logs/hiveserver2.log &

http://www.kler.cn/a/441784.html

相关文章:

  • FFmpeg 4.3 音视频-多路H265监控录放C++开发二十一.3,RTCP协议, RTCP协议概述,RTCP协议详情
  • 图数据库 | 15、可扩展的图数据库设计(上)
  • C# 读取EXCEL的数据批量插入单个PDF里的多个位置
  • 系统可观测性——Logback日志框架
  • Spring Boot 3.x:自动配置类加载机制的变化
  • 如何在Linux上搭建DHCP服务
  • 解决Docker拉取镜像报错问题的详细步骤
  • win10配置子系统Ubuntu子系统(无需通过Windows应用市场)实际操作记录
  • Python中构建全局字典的详细指南
  • docker快速实现ELK的安装和使用
  • Centos gcc 12.3 安装
  • 使用CNN模型训练图片识别(键盘,椅子,眼镜,水杯,鼠标)
  • docker 拉取镜像 | 创建容器 | 容器运行
  • k8s,理解容器中namespace和cgroups的原理
  • Android Scratch分区
  • 力扣hot100——哈希
  • ESP8266 Ubuntu 安装
  • vue2 项目webpack 4升5
  • docker xxxx is using its referenced image ea06665f255d
  • 使用echarts实现3d柱状图+折线图