Hive安装超详细教程

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 带领大家进行Hive的安装

前言

在上篇《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&amp;characterEncoding=UTF-8&amp;useSSL=false&amp;serverTimezone=GMT</value>
</property>
<property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
</property>
<!-- 修改为你自己的Mysql账号 -->
<property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
</property>
<!-- 修改为你自己的Mysql密码 -->
<property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
</property>
<!-- 忽略HIVE 元数据库版本的校验,如果非要校验就得进入MYSQL升级版本 -->
<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>
<!-- hiveserver2 -->
<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>
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8月前
|
SQL Java 数据库连接
Hive教程(08)- JDBC操作Hive
Hive教程(08)- JDBC操作Hive
370 0
|
8月前
|
SQL 分布式计算 Java
Hive教程(07)- Hive自定义用户名密码验证(已开源)
Hive教程(07)- Hive自定义用户名密码验证(已开源)
211 0
|
8月前
|
SQL 分布式计算 Shell
Hive教程(05)- Hive命令汇总(上)
Hive教程(05)- Hive命令汇总(上)
152 0
|
8月前
|
SQL 关系型数据库 MySQL
Mac下安装hive
Mac下安装hive
263 0
|
2月前
|
SQL HIVE
Hive的安装
Hive的安装
29 1
|
9天前
|
SQL 分布式计算 关系型数据库
分布式系统详解 -- Hive1.2.1 安装
分布式系统详解 -- Hive1.2.1 安装
10 1
|
2月前
|
SQL 分布式计算 关系型数据库
Ubuntu上安装MySQL以及hive
Ubuntu上安装MySQL以及hive
31 1
|
8月前
|
SQL 存储 Java
Hive教程(09)- 彻底解决小文件的问题
Hive教程(09)- 彻底解决小文件的问题
341 0
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.15 安装HIVE
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
132 1
Hadoop学习笔记(HDP)-Part.15 安装HIVE
|
2月前
|
SQL 分布式计算 关系型数据库
Hive安装
Hive安装
75 1