HDFS读写过程和HIVE的优点

HDFS(Hadoop分布式文件系统) HDFS是Hadoop和核心组件之一,用于存储大规模的数据集,并提供了高容错性和高可靠性。他将数据分布式存储在多台服务器上,并通过块(blok)的方式进行管理。HDFS采用主从架构,包括一个主节点(NameNode)和多个从节点(DataNode).NameNode负责管理文件系统的命名空间和访问控制,二DataNode负责实际的数据存储和处理。

HDFS写数据过程

1.客户端请求:

  • 客户端向NameNode发起请求
  • NameNode检查权限和文件是否存在
  • NameNode返回可写的DataNode列表

2.管道建立:

  • 客户端将数据分成多个数据块(默认128MB)
  • 建立DataNode写入管道(pipeline)
  • 数据按副本因子(默认3)复制到多个DataNode

3.数据写入

  • 数据以数据包(packet) 为单位传输
  • 采用“就近写入”原则,优先写入本地节点
  • 数据先写入内存缓冲区,再刷写到磁盘

4.确认流程:

  • DataNode之间通过ACK包确认写入成功
  • 最终确认返回客户端
  • NameNode更新元数据

HDFS读数据过程

1.客户端请求

  • 客户端向NameNode请求文件位置信息
  • NameNode返回包含文件块的DataNode列表

2.数据读取

  • 客户端直接联系最近的DataNode读取数据
  • 数据以流方式传输
  • 自动校验数据完整性

3.并行读取

  • 多个数据块可并行读取
  • 客户端自动处理故障转移(如某个DataNode不可用)

Hive的主要特点

1. 数据仓库架构

  • 表结构定义:支持Schema-on-Read,数据加载时才验证格式
  • 多种存储格式:支持TextFile、ORC、Parquet等
  • 元数据管理:使用独立的关系型数据库存储元数据

2. SQL兼容性

  • 类SQL语言(HQL):大部分标准SQL语法支持
  • 复杂查询支持:JOIN、子查询、窗口函数等
  • UDF扩展:支持自定义函数开发

3.大数据处理能力

  • MapReduce/Tez/Spark集成:多种执行引擎支持
  • 分区与分桶:支持数据分区(partition)和分桶(bucket)
  • 并行处理:自动将查询转换为分布式任务

4. 数据管理特性

  • ACID支持:Hive 3.0+支持完整的事务特性(限ORC格式)
  • 动态分区:自动根据数据值创建分区
  • 视图与物化视图:支持逻辑视图和物化视图

5. 扩展性与集成

  • 多种接口:CLI、JDBC、ODBC、Web UI等
  • 生态集成:与HBase、Spark、Kafka等大数据组件集成
  • 多种序列化格式:支持JSON、Avro、Protocol Buffers等

6. 优化特性

  • 成本优化器:基于代价的优化(CBO)
  • 向量化执行:提高CPU利用率
  • LLAP(Live Long and Process):混合执行模型,实现亚秒级查询
posted @ 2025-06-06 20:28  L#  阅读(19)  评论(0)    收藏  举报