大数据之HIVE,一次HIVESQL执行的过程(四)

在hive中执行如下sql

INSERT OVERWRITE TABLE  XXX
SELECT * from  XXX

数据最终是怎么存储到hdfs上的过程

执行的过程当中,打印出如下的日志过程,本质上是一个在MapReduce中进行Shuffle的过程

 

所以下面就Shuffle的过程进行分析

Shuffle 描述的是数据从 Map 端到 Reduce 端的过程,大致分为排序(sort)、溢写(spill)、合并(merge)、拉取拷贝(Copy)、合并排序(merge sort)这几个过程,大体流程如下:

上图的 Map 的输出的文件被分片为红绿蓝三个分片,这个分片的就是根据 Key 为条件来分片的,分片算法可以自己实现,例如 Hash、Range 等,最终 Reduce 任务只拉取对应颜色的数据来进行处理,就实现把相同的 Key 拉取到相同的 Reduce 节点处理的功能。下面分开来说 Shuffle 的的各个过程。

注意:

sqoop import实际上是把数据存放到hdfs对应路径上了,而不是“直接导入表里”,
查询时,hive会从hdfs的路径上提取数据,再根据hive表的结构和定义,来向我们展示出类似表格的形式。

相关推荐

  1. 数据 Hive 快速搭建详细步骤

    2024-06-06 23:36:04       42 阅读
  2. 条SQL执行过程

    2024-06-06 23:36:04       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 23:36:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 23:36:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 23:36:04       82 阅读
  4. Python语言-面向对象

    2024-06-06 23:36:04       91 阅读

热门阅读

  1. TensorRT教程(1)初探TensorRT

    2024-06-06 23:36:04       31 阅读
  2. Docker迁移默认存储目录(GPT-4o)

    2024-06-06 23:36:04       30 阅读
  3. 常见的项目模块以及项目流程

    2024-06-06 23:36:04       22 阅读
  4. vue基础知识点

    2024-06-06 23:36:04       35 阅读
  5. ubuntu22 部署zookeeper + kafka集群 & 配置开机自启动

    2024-06-06 23:36:04       31 阅读
  6. UML类图

    UML类图

    2024-06-06 23:36:04      26 阅读
  7. 第七章 Python-函数进阶

    2024-06-06 23:36:04       22 阅读
  8. Ubuntu22.04显卡驱动与内核版本不一致解决方案

    2024-06-06 23:36:04       55 阅读
  9. php计模式之工厂模式详解

    2024-06-06 23:36:04       29 阅读