找回密码
 立即注册
首页 业界区 安全 HDFS读写过程和HIVE的优点

HDFS读写过程和HIVE的优点

翁谌缜 3 天前
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):混合执行模型,实现亚秒级查询

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册