HIVE3.X版本讲解与部署

目录

一、核心功能

二、主要特性

三、部署方式

四、安全升级

五、应用场景

六、学习资源与文档

1.hive3.1.2部署于Hadoop2.10.2

2.hive3.1.2部署于Hadoop3.2.4


一、核心功能

Hive 3.1.2能够将存储在Hadoop分布式文件系统(HDFS)中的大规模数据进行结构化查询和分析。它提供了类似SQL的查询语言,称为HiveQL(或HQL),用户可以通过HiveQL语句快速地对数据进行提取、转换和加载(ETL)操作。Hive的核心功能是将HiveQL转换为MapReduce任务(或其他执行引擎如Spark、Flink等,取决于配置),然后提交到Hadoop集群上执行,从而利用Hadoop的分布式计算能力处理大规模数据集。

二、主要特性

  1. 可扩展性:Hive可以自由地扩展集群的规模,一般情况下不需要重启服务。
  2. 延申性:Hive支持自定义函数,用户可以根据自己的需求来实现自己的函数。
  3. 容错性:即使节点出现错误,SQL仍然可以完成执行。
  4. 易用性:操作接口采用类SQL语法,提供快速开发的能力,避免了去写MapReduce,减少开发人员的学习成本。

此外,Hive 3.1.2版本还对ACID支持进行了加强,使得Hive更加适用于处理需要高并发和强一致性的事务型应用场景。

三、部署方式

Hive 3.1.2支持多种部署方式,包括内嵌模式、本地模式和远程模式:

  1. 内嵌模式:这是Hive的默认部署模式,元数据存储在内置的Derby数据库中,并且Derby数据库和Metastore服务都嵌入在主HiveServer进程中。这种模式适用于测试环境,但不适用于生产环境,因为它一次只能支持一个活动用户。
  2. 本地模式:在本地模式下,Hive Metastore服务与主HiveServer进程在同一进程中运行,但存储元数据的数据库在单独的进程中运行,并且可以在单独的主机上。本地模式推荐使用MySQL作为外部数据库来存储元数据。
  3. 远程模式:在远程模式下,Metastore服务在其自己的单独JVM上运行,而不在HiveServer的JVM中运行。这种模式适用于生产环境,因为它可以支持多个客户端同时连接。

四、安全升级

针对日益重要的数据安全问题,Hive 3.1.2的安全升级版对内部依赖的Jetty进行了升级,显著提升了系统级别的安全性与稳定性。通过升级Jetty版本,解决了旧版本中存在的多个安全漏洞,如跨站脚本攻击(XSS)、拒绝服务攻击(DoS)以及信息泄露等。

五、应用场景

Hive 3.1.2广泛应用于大数据处理场景中,尤其是在需要对海量数据进行存储、查询和分析的场景下。例如:

  1. 日志分析:大部分互联网公司使用Hive进行日志分析,如统计一个网站一个时间段内的PV(Page View,页面浏览量)、UV(Unique Visitor,独立访客)等。
  2. 多维度数据分析:Hive可用于构建数据仓库,并进行多维度数据分析。
  3. 海量结构化数据离线分析:Hive适用于对海量结构化数据进行离线分析。

六、学习资源与文档

Hive 3.1.2提供了丰富的学习资源和文档,包括官方文档、在线教程、社区论坛等。用户可以通过这些资源快速上手Hive,并深入了解其高级特性和最佳实践。

总的来说,Hive 3.1.2是一个功能强大、易于使用且高度可扩展的数据仓库软件,适用于处理大规模数据集和进行复杂的数据分析任务。

前置:搭建hadoop和mysql

1.hive3.1.2部署于Hadoop2.10.2

上传压缩包

解压hive压缩包:(/opt/software)

tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module

改名:(/opt/module)

mv /opt/module/apache-hive-3.1.2-bin /opt/module/hive

配置环境变量:

vi /etc/profile

export HIVE_HOME=/opt/module/hive

export PATH=$HIVE_HOME/bin:$PATH

使环境变量生效:

source /etc/profile

初始化元数据库:(/opt/module/hive)

bin/schematool -dbType derby -initSchema

配置元数据到数据库

mysql -uroot -p123456

create database metastore;

quit;

将MySQL的JDBC驱动拷贝到Hive的lib目录下:(/opt/software)

cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib

新建hive-site.xml文件:(/opt/mouble/hive/conf)

vi $HIVE_HOME/conf/hive-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>



<configuration>

    <property>

        <name>javax.jdo.option.ConnectionURL</name>

        <value>jdbc:mysql://master:3306/metastore?useSSL=false</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionDriverName</name>

        <value>com.mysql.jdbc.Driver</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.warehouse.dir</name>

        <value>/user/hive/warehouse</value>

    </property>

</configuration>

初始化Hive元数据库(修改为采用MySQL存储元数据):(/opt/module/hive)

bin/schematool -dbType mysql -initSchema -verbose

前20行

后20行

!!!!!初始化报错的话请检查mysql是否为任意连接(本地连接就会报错)

如果是则进行修改

进入mysql后

update mysql.user set host="%" where user="root";

flush privileges;

退出MySQL后再次尝试初始化

初始化Hive元数据库(修改为采用MySQL存储元数据):(/opt/module/hive)

bin/schematool -dbType mysql -initSchema -verbose

启动:

hive

验证:

查看数据库

show databases;

使用数据库

use default;

在默认数据库中创建一张表

create table student(id int,name string);

查看表的结构

desc student;

向表中插入数据

insert into student values(1,"张三");

查询表中数据

select * from student;

退出:

quit;

2.hive3.1.2部署于Hadoop3.2.4

上传压缩包

解压hive压缩包:(/opt/software)

tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module

改名:(/opt/module)

mv opt/module/apache-hive-3.1.2-bin /opt/module/hive

配置环境变量:

vi /etc/profile

export HIVE_HOME=/opt/module/hive

export PATH=$HIVE_HOME/bin:$PATH

使环境变量生效:

source /etc/profile

删除旧的驱动:

cd /opt/module/hive/lib

rm -rf guava-19.0.jar

复制新的驱动:

cp /opt/module/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /opt/module/hive/lib/

初始化元数据库:(/opt/module/hive)

bin/schematool -dbType derby -initSchema

配置元数据到数据库

mysql -uroot -p123456

create database metastore;

quit;

将MySQL的JDBC驱动拷贝到Hive的lib目录下:(/opt/software)(可能在其它地方,例如在(sqoop))

cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib

新建hive-site.xml文件:(/opt/module/hive/conf)

vi $HIVE_HOME/conf/hive-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>



<configuration>

    <property>

        <name>javax.jdo.option.ConnectionURL</name>

        <value>jdbc:mysql://master:3306/metastore?useSSL=false</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionDriverName</name>

        <value>com.mysql.jdbc.Driver</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.warehouse.dir</name>

        <value>/user/hive/warehouse</value>

    </property>

</configuration>

初始化Hive元数据库(修改为采用MySQL存储元数据):(/opt/module/hive)

bin/schematool -dbType mysql -initSchema -verbose

!!!!!初始化报错的话请检查mysql是否为任意连接(本地连接就会报错)

如果是则进行修改

进入mysql后

update mysql.user set host="%" where user="root";

flush privileges;

退出MySQL后再次尝试初始化

初始化Hive元数据库(修改为采用MySQL存储元数据):(/opt/module/hive)

bin/schematool -dbType mysql -initSchema -verbose

启动:

hive

验证:

查看数据库

show databases;

使用数据库

use default;

在默认数据库中创建一张表

create table student(id int,name string);

查看表的结构

desc student;

向表中插入数据

insert into student values(1,"ls");

查询表中数据

select * from student;

退出:

quit;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值