Hadoop生态圈拓展内容(二)

7. Hadoop的Block大小及原因

Hadoop的块默认大小是128MB。在Hadoop 1.x和2.x版本中默认为64MB。原因如下:

  • 文件块越大,寻址时间越短,但磁盘的传输时间越长。
  • 文件块越小,寻址时间越长,但磁盘传输时间越短。
  • 块大小的设置需要在寻址时间和传输时间之间找到平衡。

8. Hadoop中Block划分的原因

  1. 分布式存储:将文件划分为块,可以将这些块分散存储在不同的节点上,实现数据的分布式存储和并行处理。
  2. 数据冗余:通过副本机制确保数据的可靠性和容错性。
  3. 数据局限性:将计算任务分配给存储数据的节点,以减少数据的网络传输和提高计算效率。
  4. 管理和调度:块的大小可以根据具体应用和硬件配置进行调整,以优化数据处理和存储性能。

9. Hadoop中常见的压缩算法

  1. Gzip:可以减小文件的大小,但无法进行并行处理。
  2. Snappy:谷歌开发,具有很高的压缩和解压缩速度。
  3. LZO:较快的压缩算法,适用于大数据压缩。
  4. Bzip2:较高压缩比,速度较慢。
  5. LZ4:极快压缩速度,压缩比较低。

10. Hadoop作业提交到YARN的流程

  1. ResourceManager接收到作业请求后,生成唯一ApplicationID,并为作业分配一个ApplicationMaster。
  2. ResourceManager将ApplicationID和ApplicationMaster的地址返回给客户端。
  3. 客户端与ApplicationMaster建立通信,发送资源请求。
  4. ApplicationMaster收到作业资源需求和启动命令,向ResourceManager申请资源。
  5. ResourceManager为ApplicationMaster分配所需资源。
  6. ApplicationMaster收到资源位置信息后,与NodeManager通信,将作业所需的资源分配给具体的任务。
  7. 每个任务在独立的Container中运行,通过心跳机制汇报任务情况。
  8. ApplicationMaster收到所有任务完成的信息,向ResourceManager注销自己。
  9. ResourceManager将作业从YARN状态存储中删除,释放相关资源。

11. Hadoop的Combiner的作用

Combiner是在Map阶段之后,Reduce阶段之前,对Map输出的中间数据进行本地合并和压缩,减少数据传输量,提高整体性能。Combiner可以将相同Key的多个Map输出结果进行合并,减少网络传输的数据量,降低Reduce的负载,提高效率。

12. Hadoop序列化和反序列化

序列化 是将数据转换为字节流的过程,以便在网络传输或存储时占用更少的空间。反序列化则是将字节流重新转换成数据的过程,以便在各个节点之间传输时恢复原始数据。

13. Hadoop小文件处理问题

导致的问题

  1. 存储开销:每个小文件需要占据磁盘空间,默认的块大小是128MB,大部分小文件会浪费磁盘空间。
  2. 元数据开销:NameNode会为每个文件分配一个元数据块,小文件数量过多时,元数据存储和访问的开销会增加。
  3. 数据读取效率低:小文件数量庞大,导致大量的寻址时间和网络传输开销。
  4. 任务调度:MapReduce任务是以块为单位进行调度的,小文件数量庞大会导致任务调度的开销增加。

处理办法

  1. 合并小文件:使用工具HAR(Hadoop Archive)或者自定义脚本进行合并操作,减少存储和元数据开销(将多个小文件打包成一个HAR文件,NameNode中的元数据也就存储一份)。
  2. SequenceFile格式:将小文件转换成SequenceFile格式,将多个小文件合并成一个SequenceFile文件,有效处理小文件。
  3. 数据归档:将多个小文件合并为一个大文件,进行归档存储。
  4. 数据压缩:压缩小文件,减少存储空间和网络传输开销。
相关推荐
珈和info几秒前
珈和科技助力“农险提效200%”!“遥感+”技术创新融合省级示范项目荣登《湖北卫视》!
大数据·科技·无人机·智慧农业
盈达科技5 分钟前
盈达科技:登顶GEO优化全球制高点,以AICC定义AI时代内容智能优化新标杆
大数据·人工智能
橘猫云计算机设计1 小时前
springboot基于hadoop的酷狗音乐爬虫大数据分析可视化系统(源码+lw+部署文档+讲解),源码可白嫖!
数据库·hadoop·spring boot·爬虫·python·数据分析·毕业设计
冰^2 小时前
MySQL VS SQL Server:优缺点全解析
数据库·数据仓库·redis·sql·mysql·json·数据库开发
电商数据girl2 小时前
产品经理对于电商接口的梳理||电商接口文档梳理与接入
大数据·数据库·python·自动化·产品经理
敖云岚2 小时前
【AI】SpringAI 第五弹:接入千帆大模型
java·大数据·人工智能·spring boot·后端
宅小海2 小时前
spark和Hadoop的区别和联系
大数据·hadoop·spark
root666/2 小时前
【大数据技术-联邦集群RBF】DFSRouter日志一直打印修改Membership为EXPIRED状态的日志分析
java·大数据·hadoop
24k小善3 小时前
FlinkUDF用户自定义函数深度剖析
java·大数据·spring·flink·云计算
IT成长日记3 小时前
【Hive入门】Hive数据模型与存储格式深度解析:从理论到实践的最佳选择
数据仓库·hive·hadoop·数据模型·存储格式