站长网站统计,场景营销,openshift 安装 wordpress,地推十大推广app平台MR数据压缩
MR支持的压缩编码
压缩格式是否可切片特点DEFLATE否Gzip否比较好用#xff0c;存储方面比较优秀Bzip2是压缩的最小#xff0c;速度最慢LZO是需要安装和建立索引Snappy否最好用#xff0c;速度最快
数据压缩的位置 输入端采用压缩#xff1a; 数据量小于块大小…MR数据压缩
MR支持的压缩编码
压缩格式是否可切片特点DEFLATE否Gzip否比较好用存储方面比较优秀Bzip2是压缩的最小速度最慢LZO是需要安装和建立索引Snappy否最好用速度最快
数据压缩的位置 输入端采用压缩 数据量小于块大小重点考虑压缩速度最快的snappy数据量非常大考虑是否可以支持切片比如LZO Mapper输出采用压缩考虑压缩和解压缩的速度比如snappy Reducer输出采用压缩 热数据一般不压缩或者选择压缩解压速度很块的冷数据考虑压缩比较高的比如Bzip2和Gzip
使用压缩
hadoop checknative: 查看hadoop支持的压缩算法在Driver类中开启在Mapper输出进行压缩设置压缩算法的全类名为Bzip2, 这个压缩算法速度很慢而且会占用CPU和内存Driver类中在reducer输出端也可以开启压缩算法也可以设置相应的压缩算法
企业开发优化
Map优化
输入时采用CombineTextInputFormat切片规则合并小文件自定义分区实现Partitioner接口重写getPartition方法减少数据倾斜减少溢写的次数 提高环形缓冲区的大小跟MapTask的内存空间保持1:10的关系提高环形缓冲区的阈值提高到90% 增加每次Merge合并次数默认是10提高到20在不影响业务结果的前提下可以提前采用Combiner 加法、乘法运算一般不影响 为了减少磁盘IO可以采用snappy压缩提高MapTask内存的 上限默认是1GMapTask任务重试次数可以修改但一般不修改默认4次
Reducer优化
Reducer拉取数据的并行度默认是每次拉取5个可以适当提高一点Buffer大小占Reduce可用内存的比例默认是0.7当内存增加时可以适当提高Buffer中数据达到多少比例开始写入磁盘默认是0.66比上一个参数小可以提高一点提高ReduceTask的内存上限默认是1G根据128M数据对应1G内存的原则适当提高。MapTask完成的比例达到该值后才会为ReduceTask申请资源默认是0.05.设置Task卡死后的等待时间默认是10分钟可以调小一点最小不能小于3分钟。
数据倾斜问题
数据倾斜现象 某一个区域的数据量要远远大于其他区域如何查看是否出现数据倾斜 进行抽样检查将数据进行wordcount 解决方案 自定义分区将倾斜数据分化建议直接随机函数分区使用Combiner预聚合采用Map Join尽量避免Reduce Join
大量小文件问题优化
小文件较多时会产生很多的元数据文件导致寻址索引速度变慢。 解决方案
存储方面Hadoop Archive文件归档计算方面使用CombinerText输入数据到Map
Hadoop扩展新特性
集群迁移
老集群的NameNode位置为hadoop102新集群的NameNode位置为hadoop105distcp hdfs://hadoop102:8020/* hdfs://hadoop105:8020/*
存档和压缩
存档只是将文件拼接在一起没有压缩文件的大小。存档后需要生成对应的文件索引可能比原文件还会大一点。
hadoop archive -archiveName input.har -p 原文件路径 归档后路径hadoop fs -ls /small/small.har: 查看三个文件hadoop fs -ls har:///small/small.har: 查看原文件目录hadoop fs -cp har:///small/small.har /input : 拷贝后就会变回成归档前的文件
回收站
开启回收站功能防止误删除linux和HDFS默认是关闭的。 fs.trash.interval 0, 表示文件的存活时间 fs.trash.checkpoint.interval0, 检查回收站的间隔时间。必须小于文件的存活时间否则文件的存活时间没有意义。
启用回收站在core-site.xml文件中添加
propertynamefs.trash.interval/namevalue1/value
/property注意回收站权限仅限命令行使用网页界面删除不会经过回收站。