2021/2/7周总结

开源的分布式系统基础架构
优点

对大量数据进行分布式处理
可靠, 假设硬件失效为常态, 针对失败节点进行重新分布处理
高效, 并行处理提高处理速度
可伸缩, 在横向扩展至上千个节点, 可处理PB级数据
低成本, 项目开源,与同类产品比较成本低廉

相关组件包括

HDFS
MapReduce
Yarn
Hive
HBase
ZooKeeper
Sqoop
Flume

1. Hadoop性能优化
影响性能的主要因素

数据倾斜,如reduce端接收的某个key包含多个值,另一个key则很少值
job数量多,数据表的关联过多
求和,计数操作不存在数据倾斜的可能
count(distinct)无法处理大量数据

优化的方向

数据模型
避免数据倾斜,如自定义对key分组,需要对数据深入理解
减少job数量
设定合理的task数
hive中提供了自动优化解决数据倾斜,但该方法可能导致业务出错,set hive.groupby.skewindata=true;
拒绝使用count(distinct)
小文件合并处理,map端建立缓存

优化的手段,调整reducers数量

hive.exec.reducers.bytes.per.reducer
默认1G, 依据输入文件的总大小为一个job分配多少个reducer
hive.exec.reducers.max
默认999, 程序允许的reducers最大数量,只有当 input / bytes per reduce > max 才会触发
mapred.reduce.tasks
默认-1, 完全自定义reducer的数量,否则由程序自动分配

reducers的影响

太少
数据量大时运行缓慢,甚至溢出
太多
小文件过多时,合并成本高,namenode存储压力大

posted @ 2021-08-07 20:32  小强哥in  阅读(33)  评论(0编辑  收藏  举报