• Hive基础知识


    Hive和数据库比较

    由于Hive采用了类似SQL的查询语言HQL(Hive Query Language),因此很容易将hive理解为数据库。其实从结构上来看,Hive和数据库除了拥有类似的查询语言,再无类似之处。将从多个方面来阐述Hive和数据库的差异。数据库可以用在Online的应用中,但是Hive是为数据仓库而设计的,清楚这一点,有助于从应用角度理解Hive的特性。

    查询语言

    由于SQL被广泛的应用在数据仓库中,因此,专门针对Hive的特性设计了类SQL的查询语言HQL。熟悉SQL开发的开发者可以方便使用Hive进行开发。

    数据更新

    由于 Hive 是针对数据仓库应用设计的,而数据仓库的内容是读多写少的。因此,Hive 中 不建议对数据的改写,所有的数据都是在加载的时候确定好的。而数据库中的数据通常是需 要经常进行修改的,因此可以使用 INSERT INTO … VALUES 添加数据,使用 UPDATE … SET 修 改数据。

    执行延迟

    Hive 在查询数据的时候,由于没有索引,需要扫描整个表,因此延迟较高。另外一个导 致 Hive 执行延迟高的因素是 MapReduce 框架。由于 MapReduce 本身具有较高的延迟,因此 在利用 MapReduce 执行 Hive 查询时,也会有较高的延迟。相对的,数据库的执行延迟较低。 当然,这个低是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive 的并行计算显然能体现出优势。

    数据规模

    用于Hive建立在集群上并可以利用MapReduce进行并行计算,因此可以支持很大规模的数据;对应的,数据库可以支持的数据规模大小。

    Hive安装

    1、Hive官网地址:http://hive.apache.org/

    2、把apache-hive-3.1.2-bin.tar.gz上传到linux的/opt/software目录下

    3、将apache-hive-3.1.2-bin.tar.gz解压到/opt/module/目录下

    [atguigu@hadoop102 software]$ tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/
    

    4、修改apache-hive-3.1.2-bin.tar.gz的名称为hive

    [atguigu@hadoop102 software]$ mv /opt/module/apache-hive-3.1.2-bin/ /opt/module/hive

    5、修改/etc/profile.d/my_env.sh,添加环境变量

    [atguigu@hadoop102 software]$ sudo vim /etc/profile.d/my_env.sh

    添加内容如下:

    #HIVE_HOME

    export HIVE_HOME=/opt/module/hive

    export PATH=$PATH:$HIVE_HOME/bin

     

     

    6、解决日志jar包冲突

    [atguigu@hadoop102 software]$ mv $HIVE_HOME/lib/log4j-slf4j-impl2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak

    7、初始化源数据库

    [atguigu@hadoop102 hive]$ bin/schematool -dbType derby -initSchema

    启动并使用Hive

    启动Hive之前一定要先启动Hadoop集群

    1. 启动Hadoop集群
    2. [atguigu@hadoop102 module]$ myhadoop.sh start

    使用Hive

    [atguigu@hadoop102 hive]$ bin/hive

    使用Hive

    1. hive> show databases;
    2. hive> show tables;
    3. hive> create table test(id int);
    4. hive> insert into test values(1);
    5. hive> select * from test;

     

  • 相关阅读:
    Redis实现消息队列
    语音控制-循迹跟随避障前进后退左转右转
    QT+OSG/osgEarth编译之五十一:osgShadow+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5工具库osgShadow)
    Centos7 部署Jenkins
    网课题库接口API—小白专用
    @Async注解
    面试:Android广播相关
    前端快速学习记录:实现一个原神时钟(简易版)
    Nginx 防盗链
    UniApp 在 iOS 16 下真机自定义基座调试指南,可解决模拟器无法输出调试日志问题
  • 原文地址:https://blog.csdn.net/qq_70085330/article/details/125494963