首页 > 其他分享 >hive-3.1.2分布式搭建

hive-3.1.2分布式搭建

时间:2024-06-06 09:34:49浏览次数:13  
标签:hadoop hive 3.1 local log4j ### 分布式

hive-3.1.2分布式搭建文档

谷歌浏览器下载网址:Google Chrome – Download the fast, secure browser from Google

华为云镜像站:https://mirrors.huaweicloud.com/home

1、上传解压配置环境变量

       # 1、解压
       tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /usr/local/soft/

       # 2、重名名
       mv apache-hive-3.1.2-bin hive-3.1.2

       # 3、配置环境变量
       vim /etc/profile

       # 4、在最后增加配置
       export HIVE_HOME=/usr/local/soft/hive-3.1.2
       export PATH=$PATH:$HIVE_HOME/bin

       # 5、使环境变量剩下
       source /etc/profile

2、修改配置文件

    ### 1、进入hive配置文件所在目录

    ```shell
    cd /usr/local/soft/hive-3.1.2/conf
    ```

    ### 2、创建hive-site.xml配置文件

    vim hive-site.xml

    ```xml
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
      <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
      </property>
      <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://master:3306/hive?useSSL=false&amp;createDatabaseIfNotExist=true&amp;characterEncoding=utf8&amp;useUnicode=true</value>
      </property>
      <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
      </property>
      <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
      </property>
      <property>
        <name>hive.metastore.uris</name>
        <value>thrift://master:9083</value>
      </property>
      <property>
    	<name>hive.server2.enable.doAs</name>
    	<value>false</value>
      </property>
        
    <property>
    <name>hive.querylog.location</name>
    <value/>
    </property>

     

    (同上)
    <property>
    <name>hive.exec.local.scratchdir</name>
    <value/>
    </property>

     

    (同上)
    <property>
    <name>hive.downloaded.resources.dir</name>
    <value/>
    </property>
    </configuration>
    ```

    ### 3、创建log4j.properties配置文件

    ```properties
    # 将日志级别改成WARN,避免执行sql出现很多日志
    log4j.rootLogger=WARN,CA
    log4j.appender.CA=org.apache.log4j.ConsoleAppender
    log4j.appender.CA.layout=org.apache.log4j.PatternLayout
    log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n%
    ```

3、上传mysql驱动

  ```shell
  # 将nysql驱动包上传到hive的lib目录下
  mysql-connector-java-8.0.29.jar
  ```

  ### 1.3.6	将hadoop的jline-0.9.94.jar的jar替换成hive的版本。

  ```
  cp /usr/local/soft/hive-3.1.2/lib/jline-2.12.jar /usr/local/soft/hadoop-3.1.1/share/hadoop/yarn/lib/
  ```

4、初始化hive元数据库

  ```shell
  # 2、初始化hive的元数据(表结构)到mysql中
  schematool -dbType mysql -initSchema
  ```

5、启动hive元数据服务

  ```shell
  # 后台启动元数据服务
  nohup hive --service metastore &
  ```

6、进入hive命令行

  ```shell
  # 进入hive
  hive

测试

1、创建表

CREATE TABLE IF NOT EXISTS bigdata30.student_test2(
id string ,
name string ,
age string ,
gender string ,
clazz string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
location '/data/student';

2、执行sql查询数据

select clazz,count(1) as num from student group by clazz;


## 解决 log4j 兼容性问题

> 警告信息,不影响使用
> LF4J: Class path contains multiple SLF4J bindings.

      ````shell
      cd /usr/local/soft/hive-3.1.2/lib

      # hive 与 Hadoop 在运行时会出现 log4j 兼容性问题,这是因为 hive 的 log4j 版本与 Hadoop 的产生了冲突,我们这里将 hive 的 log4j 设置为备份。
      mv log4j-slf4j-impl-2.10.0.jar log4j-slf4j-impl-2.10.0.jar.bak

      hadoop的etc/hadoop/core-site.xml
      <property>
              <name>hadoop.proxyuser.root.hosts</name>
              <value>*</value>
      </property>
      <property>
              <name>hadoop.proxyuser.root.groups</name>
              <value>*</value>
      </property>
      ````

## hive常见问题

### 1、hadoop未启动,就开始执行hive命令

![image-20240408112306610](https://gitee.com/xiaohuya1/image29_demo1/raw/master/img/image-20240408112306610.png)

> 解决方案:启动hadoop

### 2、hadoop处于安全模式

![](https://gitee.com/xiaohuya1/image29_demo1/raw/master/img/image-20240408112306610.png)

> 解决方案:
>
> 1、等着,等hadoop日志和快照数据恢复完毕,自动离开安全模式
>
> 2、使用命令强制离开

### 3、元数据服务没开,操作不了sql语句

![image-20240408112344560](https://gitee.com/xiaohuya1/image29_demo1/raw/master/img/image-20240408112344560.png)

> 解决方案:nohup hive --service metastore &

标签:hadoop,hive,3.1,local,log4j,###,分布式
From: https://www.cnblogs.com/justice-pro/p/18234438

相关文章

  • hive概述与基础操作
    Hive3.1.2概述与基本操作(此笔记使用MD文档写的,可直接复制到MD中,方便查看)1、Hive基本概念1.1 Hive简介Hive本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据存储,说白了hive可以理解为一个将SQL转换为MapReduce的任务的工具,甚至更近一步说hive就是一个MapReduce......
  • 分布式搜索引擎ElasticSearch学习笔记
    一、Elasticsearch介绍什么是elasticsearch?一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能什么是elasticstack(ELK)?是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch什么是Lucene?是Apache的开源搜索引擎类库,提......
  • Spring Boot集成RocketMQ实现分布式事务
            RocketMQ是由阿里巴巴集团开发的一款高性能、高可靠、分布式的开源消息中间件,它在2012年对外开源,并于2016年捐赠给Apache软件基金会,随后在2017年成为了Apache的顶级项目。RocketMQ的设计旨在满足互联网业务场景中的海量消息传递需求,尤其擅长处理高并发、大数据......
  • 14-ShardingSphere的分布式主键实现
    1ShardingSphere自动生成键MySQL自增键、Oracle自增序列等。分片场景下问题就复杂了,不能依靠单实例上的自增键来实现不同数据节点之间的全局唯一主键,分布式主键的需求应运而生。ShardingSphere作为一款优秀分库分表开源软件,同样提供分布式主键实现机制。1.1GeneratedKey使用......
  • Hadoop完全分布式安装
    Hadoop完全分布式安装一.集群搭建前期准备1.三台机器防火墙都是关闭的2.确保三台机器网络配置畅通3.三台机器确保/etc/hosts⽂件配置了ip和hostname的映射关系4.确保三台机器配置了ssh免密登录认证二.前期环境搭建免密登录1.修改主机名为server1,配置hosts文件vi/e......
  • 基于redis实现可重入分布式锁
    前提redis+lua原理采用redishash数据类型,实现分布式可重入锁hash结构中存储字段value,countvalue:加锁的值,重入加锁时判断当前value和传入的value是否相等,相等情况下认为是重入锁,将count加一,不等属于其他场景抢占锁,该情况下获取锁失败锁释放时,判断value是否相等,相等情况下是......
  • 【数据库】StarRocks、Hive、ClickHouse、Tidb的对比及使用场景
    特性StarRocksHiveClickHouseTiDB数据存储列存储(ColumnarStorage)行存储(RowStorage)列存储(ColumnarStorage)混合存储(行存储和列存储)查询性能高低高高主要用途实时分析(Real-timeAnalytics)大数据批处理(BatchProcessing)实时分析(Real-timeAnalytics)OLTP与O......
  • 7 | 史上最全大数据笔记-Hive函数
    第八章Hive函数在Hive中,函数主要分两大类型,一种是内置函数,一种是用户自定义函数。8.1Hive内置函数8.1.1函数查看 showfunctions; descfunctionfunctionName;8.1.2日期函数1)当前系统时间函数:current_date()、current_timestamp()、unix_timestamp() --函......
  • 如何在 Hive 中存储类列表?
    我有一个通过模型类从api获取的itemlist,现在我想将该列表保存到hive中,并添加一些其他属性,如客户名称、客户地址和itemsList。import'package:hive/hive.dart';导入'.../item_model.dart';导入'hive_model.dart';part'saved_hive_model.g.dart';@HiveType(typeId:15)......
  • synchronized、Lock本地锁和Redisson分布式锁的简单使用
    文章目录概念准备工作synchronized本地锁演示JUC包的Lock本地锁演示Redisson的RLock分布式锁演示源码地址参考来源概念redisson是一个简单易用的Redis客户端工具。不仅如此,它还具备分布式锁的功能准备工作快速整合SSMP请参考我这篇文章SpringBoot快速整合Spring......