您的位置:首页 > 娱乐 > 八卦 > 设计素材网站哪个好_长春自助建站软件_海南网站制作公司_郑州百度推广seo

设计素材网站哪个好_长春自助建站软件_海南网站制作公司_郑州百度推广seo

2025/1/10 6:53:40 来源:https://blog.csdn.net/little_TianYe/article/details/144978477  浏览:    关键词:设计素材网站哪个好_长春自助建站软件_海南网站制作公司_郑州百度推广seo
设计素材网站哪个好_长春自助建站软件_海南网站制作公司_郑州百度推广seo

什么是hadoop
Hadoop是一个分布式系统基础架构,主要解决海量数据的存储和海量数据的分析计算问题
Hadoop运行模式
本地模式和为分布式模式都是单机运行
完全分布模式即是多台服务器组成分布式环境
Hadoop集群中的组件
Name Node-负责存储文件的元数据,例如文件位置,文件目录结构
Data Node-负责存储文件块数据
Secondary Name Node-负责对Name Node的数据进行备份
Node Manger-执行任务
Resource Manager负责资源调度
HDFS定义
是一个分布式文件系统,适合一次写入多次写出的场景,对于文件只能追加不能修改,适合用于数据分析
HDFS优缺点
优点:
高容错性-能够自动保存多个副本,在一个副本丢失时可以进行恢复
适合进行大规模数据的处理
可以在廉价机器上构建,有可靠性
缺点:
不适合低延迟数据访问
无法高效的存储大量小文件
不支持文件并发写入
仅支持数据追加,不支持数据修改
HDFS中的组件
Name Node负责管理名称空间,管理数据映射信息,处理客户端的请求
Data Node负责存储数据,执行数据读写操作
Client负责与前两个组件进行交互,获取文件信息并读取或者写入数据,同时提供一些命令操作HDFS
Secondary Name Node负责备份Name Node,在紧急情况下,可以接替Name Node的工作
*H DFS采用块存储,2.0中一个块大小是128MB
HDFS写数据流程
1)客户端通过分布式文件系统模块(Distributed FileSystem)向NameNode请求上传文件,NameNode检查目标文件是否存在,父目录是否存在;
2)NameNode返回是否可以上传文件;
3)客户端请求第一个Block上传到哪几个DataNode服务器上;
4)NameNode返回3个DataNode节点,分别为dn1,dn2,dn3;
5)客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,dn2调用dn3,将这个通信管道建立完;
6)dn1,dn2,dn3逐级应答客户端;
7)客户端开始往dn1上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以Packet为单位,dn1收到一个Packet传给dn2,dn2传给dn3,dn1每传一个packet会放入一个应答队列等待应答;
8)当一个Block传输完成后,客户端再次请求NameNode上传第二个Block的服务器(重复执行3-7步)。
HDFS数据备份
Name Node内存中的元数据序列化后会形成Fsimage文件,用于在磁盘中备份元数据
每当有元数据更新或者添加元数据的时候,修改元数据同时追加到edit文件中,记录客户端更新元数据的每一步操作
一旦Name Node断电,系统会合并Fsimage文件和Edits文件,合成新的元数据,其中Secondary Name Node专门用于合并两个文件,接替Name Node的工作
小文件对HDFS的危害
小文件过多会占用Name Node的内存,因为每一个元数据都会占用一份内存,会造成内存空间不足
如果有大量小文件,会造成寻道时间大于读取文件的时间,这与其设计原理相悖,并且会严重影响运行速度
如果访问小文件,必须跳转Data Node,严重降低读取性能
Mapreduce原理
它是一个分布式运算框架,其中Map函数用于数据预处理,输入和输出都是键值对形式,处理好的数据会送入Reduce阶段,对每一组简直进行处理,形成最后的输出
Mapreduce优缺点
优点:易于编程,有良好的扩展性
具备高容错性适合处理海量数据
缺点:不擅长实时计算和流使式计算,只能处理静态数据
不擅长有向图计算(spark擅长),因为需要将数据写入磁盘,会造成大量磁盘IO
Hadoop数据压缩的方式
deflate,Gzip,Bzip,前两种不支持切片
mapreduce性能瓶颈
1.计算机性能
2.IO操作优化
数据倾斜,任务设置不合理,Map时间过长,小文件过多,大文件过多等
MapReduce优化方法
在数据输入阶段,合并小文件,减少数据装载次数
在Map阶段减少溢写和合并次数,缩短整体时间,减少IO
合理设置Map和reduce任务数量,避免造成资源竞争或者处理超时
数据倾斜
一种是某一区域的数据量远远大于区域
一种是部分记录的大小的大小远远大于平均值
导致大部分的任务运行速度快,小部分的任务运行速度很慢,或者出现内存异常
如何缓解数据倾斜?
1抽样和范围分区
2自定义分区
3使用combine减少数据倾斜,聚合并精简数据,例如将相同key的数据进行合并
4尽量采用Map Join避免使用Reduce join这样可以省略shuffle阶段,提高磁盘IO效率
5通过随机前缀重新设计键值,针对聚合类的数据倾斜,可以在map阶段添加随机后缀,是的分区的时候能够分到不同节点,然后再重新进行一次全局聚合
HDFS小文件优化方法
HDFS上每个文件都需要建立一个索引,文件过多就会产生大量的索引文件,不仅占用内存空间,也会导致索引速度大幅度降低
优化方法:
在数据采集阶段将小文件合并成大文件再上传
在业务处理钱,在HDFS上使用Map Reduce进行文件合并
可以使用CombineTextInputFormat提高效率
参考博客https://blog.csdn.net/weixin_44123362/article/details/130230531

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com