Performance Idea&x27;s用于平衡HDFS->;HBase映射减少作业
对于一个客户,我一直在研究在AWSEC2上运行Cloudera风格的hadoop集群的短期可行性。在大多数情况下,结果是预期的,逻辑卷的性能大多不可靠,也就是说,尽我所能使集群在这种情况下运行得相当好 昨晚,我对他们的导入器脚本进行了全面测试,从指定的HDFS路径提取数据并将其推送到Hbase中。他们的数据有些不寻常,因为这些记录少于1KB的一个片段,并被压缩成9MB的压缩块。总共有大约500K条文本记录从GZIP中提取出来,检查是否正常,然后推送到reducer阶段 作业在环境的预期范围内运行(溢出记录的数量是我预期的),但一个真正奇怪的问题是,当作业运行时,它使用8个减速机运行,而2个减速机完成99%的工作,而其余6个减速机只完成部分工作 我目前尚未验证的假设是,我在作业配置中缺少了一个关键的无序排列或块大小设置,这会导致大多数数据被推送到块中,而这些块只能由2个还原器使用。不幸的是,上次我在Hadoop上工作时,另一个客户端的数据集位于物理托管集群上的256GB lzo文件中Performance Idea&x27;s用于平衡HDFS->;HBase映射减少作业,performance,configuration,hadoop,mapreduce,hbase,Performance,Configuration,Hadoop,Mapreduce,Hbase,对于一个客户,我一直在研究在AWSEC2上运行Cloudera风格的hadoop集群的短期可行性。在大多数情况下,结果是预期的,逻辑卷的性能大多不可靠,也就是说,尽我所能使集群在这种情况下运行得相当好 昨晚,我对他们的导入器脚本进行了全面测试,从指定的HDFS路径提取数据并将其推送到Hbase中。他们的数据有些不寻常,因为这些记录少于1KB的一个片段,并被压缩成9MB的压缩块。总共有大约500K条文本记录从GZIP中提取出来,检查是否正常,然后推送到reducer阶段 作业在环境的预期范围内运行
澄清一下,我的问题;是否有一种方法可以调整M/R作业,通过降低映射的输出大小或使每个减速机减少其将解析的数据量,来实际利用更多可用的减速机。即使是在目前的2个减速机基础上改进4个减速机,也将是一个重大改进。看起来您的减速机出现了热点。这可能是因为某个特定的键非常流行。作为映射器输出的键是什么 您在这里有几个选项:
- 尝试更多的减速器。有时,在散列的随机性中会出现奇怪的伪影,因此拥有一个素数的减数器有时会有所帮助。这可能无法解决问题
- 编写一个自定义分区器,以更好地展开工作
- 找出为什么你的一堆数据被分成两个键。有没有一种方法可以使您的密钥更独特,以分割工作
- 您是否可以使用合并器来减少流向合并器的通信量