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):混合执行模型,实现亚秒级查询
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]