Hive安装超详细教程

Hive安装超详细教程Hive3 1 2 安装教程前言初始准备安装 Hive 的具体步骤 1 下载 hive 安装包 2 解压 3 添加 Hive 核心配置 选择远程 MySQL 模式 4 下载连接 MySQL 的驱动包到 hive 的 lib 目录下 5 在 MySQL 上创建 Hive 的元数据存储库 6 执行 Hive 的初始化工作 7 验证初始化是否成功 8 使用 hive9 使用 beeline

前言

在上篇《Spark集群搭建超详细教程》提到了Hive安装,那么今天就带领大家进行Hive的安装,闲言少叙,撸起袖子加油干!

初始准备

还是需要准备3台虚拟机,并且还需要做如下准备工作:

  1. 需要安装好java 运行环境 JDK
  2. 需要搭建配置好Hadoop集群并启动,如果有不熟悉Hadoop集群搭建的朋友,可以参考我的另一篇文章《Hadoop集群搭建配置教程》
  3. hadoop1这个虚拟机节点上安装MySQL服务,可以参考《Ubuntu18.04 MySQL5.7 安装步骤详解》

安装Hive的具体步骤

1、下载hive安装包

cd /opt/module # 下载hive安装包 wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz 

2、解压

tar -zxvf apache-hive-3.1.2-bin.tar.gz mv apache-hive-3.1.2-bin hive 

3、添加Hive核心配置,选择远程MySQL模式

cd /opt/module/hive/conf vim hive-site.xml 

添加如下内容:

<property> <name>javax.jdo.option.ConnectionURL 
     name> <value>jdbc:mysql://hadoop1:3306/hivedb?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT 
      value>  
       property> <property> <name>javax.jdo.option.ConnectionDriverName 
        name> <value>com.mysql.cj.jdbc.Driver 
         value>  
          property>  
          <property> <name>javax.jdo.option.ConnectionUserName 
           name> <value>root 
            value>  
             property>  
             <property> <name>javax.jdo.option.ConnectionPassword 
              name> <value> 
               value>  
                property>  
                <property> <name>hive.metastore.schema.verification 
                 name> <value>false 
                  value>  
                   property> <property> <name>hive.cli.print.current.db 
                    name> <value>true 
                     value>  
                      property> <property> <name>hive.cli.print.header 
                       name> <value>true 
                        value>  
                         property>  
                         <property> <name>hive.server2.thrift.port 
                          name> <value>10000 
                           value>  
                            property> <property> <name>hive.server2.thrift.bind.host 
                             name> <value>hadoop1 
                              value>  
                               property> 

4、下载连接MySQL的驱动包到hive的lib目录下

cd /opt/module # 下载MySQL驱动包 wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17.jar 

5、在MySQL上创建Hive的元数据存储库

create database hivedb; 

6、执行Hive的初始化工作

cd /opt/module/hive/bin ./schematool -initSchema -dbType mysql 

7、验证初始化是否成功

初始化完成后,在MySQLhivedb数据库中查看是否初始化成功:

# 若展示多个数据表,即代表初始化成功 show tables; 

8、使用hive

# 启动hive cd /opt/module/hive/bin ./hive 
# 启动后 # 建表 create table student(id int, name string); # 插入数据 insert into table student(1, 'abc'); # 插入成功后,查询 select * from student; 

9、使用beeline

首先启动hiveserver2服务:

nohup ./bin/hiveserver2>> hiveserver2.log 2>&1 & 

hiveserver2服务启动后,使用beeline客户端访问hiveserver2服务:

cd /opt/module/hive # 进入beeline客户端 bin/beeline # 执行连接hiveserver2操作 beeline> !connect jdbc:hive2://hadoop1:10000/default # 或者 bin/beeline -u jdbc:hive2://hadoop1:10000/default -n root 

注意:hive的默认引擎为MR!!!

至此,我们就完成了Hive的安装。

安装过程中,我们可能会遇到以下问题:

  • 问题 1
    com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)
    错误原因:系统找不到这个类所在的jar包或者jar包的版本不一样系统不知道使用哪个。hive启动报错的原因是后者。
    解决办法
    1)com.google.common.base.Preconditions.checkArgument这个类所在的jar包为:guava.jar
    2)hadoop-3.1.3(路径:hadoop/share/hadoop/common/lib)中该jar包为 guava-27.0-jre.jar;而hive-3.1.2(路径:hive/lib)中该jar包为guava-19.0.jar
    3)将jar包变成一致的版本:删除hive中低版本jar包,将hadoop中高版本的复制到hivelib中。
    再次启动问题得到解决!














  • 问题2:
    Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop1:10000/default: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous (state=08S01,code=0)

    解决办法:
    1)修改hadoop 配置文件 /opt/module/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> 

    然后将core-site.xml 分发到集群的其他节点。

    2)重启hadoop集群

  • 问题3:用beeline操作hive时,如何关闭打印的info日志信息?
    解决办法:
    1)在使用beeline时加入以下设置即可--hiveconf hive.server2.logging.operation.level=NONE




    2)在hive-site.xml中修改如下配置也可以禁用在beeline中显示额外信息

    <property> <name>hive.server2.logging.operation.level 
           name> <value>NONE 
            value> <description> Expects one of [none, execution, performance, verbose]. HS2 operation logging mode available to clients to be set at session level. For this to work, hive.server2.logging.operation.enabled should be set to true. NONE: Ignore any logging EXECUTION: Log completion of tasks PERFORMANCE: Execution + Performance logs VERBOSE: All logs  
             description>  
              property> 

微信公众号:扫描下方二维码 或 搜索 笑看风云路 关注
公众号

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221044.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:03
下一篇 2026年3月17日 下午7:03


相关推荐

  • C#第七回:DialogResult

    C#第七回:DialogResult一直没太搞明白这个逻辑是什么意思,今天无意中看到个例子,终于小小的理解了一下。下面这段代码很好理解,//createanewdialog,andgetthevaluebyusingdialogResultDialogResultdialogResult=MessageBox.Show("是否要创建目录"+textBox1…

    2022年6月22日
    29
  • 《语音信号处理》整理[通俗易懂]

    reference《spokenlanguageprocessing》1语音基础 名词解释 pitch音调以HZ为单位基频又称音高能量又称音强说话的声音(声带震动)和其他声音相比,有独特的时域和频域模式。声带的震动产生基频(fundamentalfrequency),口腔共振(thepharyngealandoralresonancecav…

    2022年4月3日
    406
  • 图形验证码安全

    图形验证码安全目录图形验证码图形验证码的作用和原理图形验证码的分类图形验证码的验证过程图形验证码的安全问题静态图形验证码的激活成功教程利用Python脚本激活成功教程静态图形验证码图形验证码我们经常在登录app或者网页的时候,都会需要我们输入图形验证码上的内容,以验证登录。有些是纯数字的图形验证码,有些是字母和数字,有些是图案,有些是数学表达式……不同的网站,采用的图形验证码的形式也…

    2022年7月14日
    29
  • VGGNet详述

    VGGNet详述本文介绍卷积神经网络中非常经典的 VGGNet 并代码实现

    2026年3月26日
    1
  • spring aop实例讲解_abaqus实例详解pdf

    spring aop实例讲解_abaqus实例详解pdfSpringAOP原理详解及实例1.SpringAOP简介在软件业,AOP为AspectOrientedProgramming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻…

    2022年8月11日
    9
  • 虚拟货币二维码骗局_数字货币交易骗局套路

    虚拟货币二维码骗局_数字货币交易骗局套路最近,网络上出现了一种新的诈骗模式,对象仍然是比特币。原理很简单,因为比特币等虚拟货币的地址非常长,每次交易如果纯靠手输会比较麻烦,因此很多人都会选择将…

    2025年9月22日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号