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

Hive安装配置笔记

版本说明

hadoop-3.3.6(已安装)
mysql-8(已安装)
hive-3.1.3
将hive解压到对应目录后做如下配置:

基本配置与操作

1、hive-site


<configuration>
    <!-- jdbc连接的URL -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://chdp01:3306/hive?useSSL=false</value>
    </property>
    
    <!-- jdbc连接的Driver-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
    </property>
    
        <!-- jdbc连接的username-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <!-- jdbc连接的password -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>MyPwd123@</value>
    </property>

    <!-- Hive默认在HDFS的工作目录 -->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>

</configuration>

2、下载mysql-connector-j-8.1.0.jar放到HIVE_HOME/lib/目录下
3、元数据初始化

bin/schematool -dbType mysql -initSchema -verbose

4、启动hive

bin/hive

5、测试建表与数据操作

create database sty;
use sty;
create table userInfo(
name string,
age int
)
partitioned by (dt string);

set Hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
insert into table userInfo partition(dt='2023-10-23') values('zhangsan',23);

结果
在这里插入图片描述

HiveServer与MetaStore配置

(1)Hadoop端配置
hivesever2的模拟用户功能,依赖于Hadoop提供的proxy user(代理用户功能),只有Hadoop中的代理用户才能模拟其他用户的身份访问Hadoop集群。因此,需要将hiveserver2的启动用户设置为Hadoop的代理用户,配置方式如下:

修改配置文件core-site.xml

<property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
</property>
<property>
        <name>hadoop.proxyuser.root.users</name>
        <value>*</value>
</property>

(2)Hive端配置

在hive-site.xml文件中添加如下配置信息:

<property>
        <name>hive.server2.thrift.bind.host</name>
        <value>chdp02</value>
</property>
<property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
</property>
<property>
        <name>hive.metastore.uris</name>
        <value>thrift://chdp02:9083</value>
</property>
  <property>
    <name>hive.server2.active.passive.ha.enable</name>
    <value>true</value>
    <description>Whether HiveServer2 Active/Passive High Availability be enabled when Hive Interactive sessions are enabled.This will also require hive.server2.support.dynamic.service.discovery to be enabled.</description>
  </property>

(3) mapred-site.xml配置
该配置项用于hive跑MR任务,否则报如下错误:

Error: Could not find or load main class
org.apache.hadoop.mapreduce.v2.app.MRAppMaster

    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
    <property>
      <name>yarn.app.mapreduce.am.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
      <name>mapreduce.map.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
      <name>mapreduce.reduce.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
<property>
    <name>yarn.application.classpath</name>
    <value>/usr/sft/hadoop-3.3.6/etc/hadoop,
    /usr/sft/hadoop-3.3.6/share/hadoop/common/lib/*,
    /usr/sft/hadoop-3.3.6/share/hadoop/common/*,
    /usr/sft/hadoop-3.3.6/share/hadoop/hdfs,
    /usr/sft/hadoop-3.3.6/share/hadoop/hdfs/lib/*,
    /usr/sft/hadoop-3.3.6/share/hadoop/hdfs/*,
    /usr/sft/hadoop-3.3.6/share/hadoop/mapreduce/lib/*,
    /usr/sft/hadoop-3.3.6/share/hadoop/mapreduce/*,
    /usr/sft/hadoop-3.3.6/share/hadoop/yarn,
    /usr/sft/hadoop-3.3.6/share/hadoop/yarn/lib/*,
    /usr/sft/hadoop-3.3.6/share/hadoop/yarn/*
    </value>
  </property>

(4)结果测试
对应节点先后启动metastore、hiveserver2服务

nohup hive --service metastore 2>&1 &
nohup hive --service hiveserver2  2>&1 &

启动beeline客户端连接

beeline -u jdbc:hive2://chdp02:10000 -n root

在这里插入图片描述


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

相关文章:

  • vs2022 使用git同步报错以及解决每次推送要输入密码问题
  • 如何理解某一个开发框架的意图,从而去写和落代码文件位置不会出错
  • Debezium系列之:在K8s集群中部署Debezium Operator运行Debezium Server的详细步骤
  • Java学习 2.Java-数据类型与运算符
  • (三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行
  • 【JavaEE】网络编程---TCP数据报套接字编程
  • 13.4 DirectX内部劫持绘制
  • CentOS 7 安装Java环境
  • vue2中,下拉框多选和全选的实现
  • html5语义化标签
  • AI基础软件:如何自主构建大+小模型?
  • 启动两个线程,用另一个线程以通知的终止另一个线程
  • 云原生Docker Cgroups资源控制操作
  • 【多线程】Java如何实现多线程?如何保证线程安全?如何自定义线程池?
  • Matlab读写操作
  • 面试题之在async await中如何捕获到reject的Promise?
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • BadNets:基于数据投毒的模型后门攻击代码(Pytorch)以MNIST为例
  • 封装一个vue3 Toast组件,支持组件和api调用
  • 北京等保测评:携手守护网络安全!