Hadoop集群的配置调优

一、背景

 

Hadoop的集群使用也有些时候了,不过都是小集群的使用(数量小于30台)。在这个过程中不断的进行着配置调优的操作。最早的时候,在网上也没有找到一些合适的配置调优方法,于是,我在这里列举一些基本的调优配置,以供参考。最后,还有一个我自己的测试环境的配置说明,也可以参看一下。

 

二、环境和配置

 

1.       版本和环境

 

Ø  Hadoop版本:apache发布的0.21

 

Ø  操作系统:Linux

 

Ø  JDK:1.6

 

Ø  网络环境为千兆网络

 

2.       hdfs-site.xml配置文件

 

Ø  dfs.block.size

 

这个是块大小的设置,也就是说文件按照多大的size来切分块。一般来说,块的大小也决定了你map的数量。举个例子:我现在有一个1T的文件,如果我的块size设置是默认的64M,那么在HDFS上产生的块将有1024000/64=16000块。

 

如果我们以TextInputFormat来处理该1T的文件,那么将会产生16000个map来处理。这样的多的map明显是不合理的。所以,如果我们将block的size设置成512M,那么,将1T的文件作为输入文件,将产生2000个map,计算的时候效率将提升不少。

 

因此,block size的大小是需要根据输入文件的大小以及计算是产生的map来综合考量的。一般来说,文件大,集群数量少,还是建议将block size设置大一些的好。

 

Ø  dfs.replication

 

复制数量的设置,不能为0。这个名字说实话很迷惑人,最开始的时候我以为就是备份数量,后来才发现,原来就是存放数据文件的份数。

 

设置为1,就是在集群中存一份。如果设置为2,即做一份备份,也就是说数据在集群中有2份。还是以1T的数据为例,如果设置1,集群中就存在1T的文件,如果设置为2,那么集群占用空间为2T。

 

当然,这个备份还有个基于机架感知的备份机制(本地存放、同机架存放、异机架存放)如果不配置机架,默认都在一个机架上,之所以做机架感知的备份就是为了做到异地容灾。因为我现在的集群都在一个机房,就是做了机架配置,也不能做异地容灾。要是机房断电,谁也不能容灾谁。但是如果你的集群分别存放在2个机房,还是可以考虑做机架配置,然后将备份数量设置为3。

 

备份数量有利有弊,备份数量多,节点挂个几个没影响,数据依然完整。但是你的冗余数据会增加。如果只设置为1,那就是节点一旦有挂掉的,就是block miss。一般来说,测试情况下建议设置为1,如果实际使用,所有机器都在一个机房,建议配置为2,如果集群分布在不同机房,还是试试配置为3吧。

 

3.       mapred-site.xml配置文件

 

Ø  mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum

 

这个2个参数分别是用来设置的map和reduce的并发数量。实际作用的就是控制同时运行的task的数量。这2个参数实际上在配置的时候是需要结合计算节点的硬件配置以及任务调度模式来配置的。

 

举个例子吧。我现在有5台机器,1台master,4太slave,配置都是2个4核CPU,8G内存,1T硬盘。我配置任务调度模式是默认的FIFO模式。在这样的模式下,我配置并发map为6,并发的reduce为2。    其实这样配置不难看出,map和reduce的并发数就等于CPU的总核数。

 

前段时间看到网上有篇文章说map和reduce的并发数应该设置为相同。最后我考虑了一下,如果使用fair的调度模式,设置成相同,应该是可以的,但是如果是FIFO模式,我个人认为在map或是reduce阶段,CPU的核数没有得到充分的利用,有些可惜,所以,FIFO模式下,还是尽量配置的map并发数量多于redcue并发数量。

 

因此,我说这个参数的配置不仅仅要考虑硬件配置,还需要考虑到Job的调度模式。需要说明的是,这个配置参数不同的节点可以配置不同。适用于硬件异构的集群。见下图:

 

 

 

Ø  mapred.child.java.opts

 

这个参数是配置每个map或reduce使用的内存数量。默认的是200M。对于这个参数,我个人认为,如果内存是8G,CPU有8个核,那么就设置成1G就可以了。实际上,在map和reduce的过程中对内存的消耗并不大,但是如果配置的太小,则有可能出现”无可分配内存”的错误。所以,对于这个配置我总结了一个简单的公式:map/reduce的并发数量(总和不大于CPU核数)×mapred.child.java.opts < 该节点机器的总内存。当然也可以等于,不过有点风险而已。

 

Ø  mapred.reduce.tasks

 

设置reduce的数量。一般来说在job里面都会通过conf来设置reduce的数量,不采用这个参数。至于reduce的数量,可以根据自己的reduce业务逻辑复杂度以及输出的数据量来调整。

 

4.       core-sit.xml配置文件

 

Ø  webinterface.private.actions

 

这个参数实际上就是为了方便测试用。允许在web页面上对任务设置优先级以及kill任务。需要注意的是,kill任务是个缓慢的过程,它需要杀掉所有的任务task然后才是任务结束。如果task数量多,可能有点慢,需要一些耐心等待。

 

三、总结

 

需要说明一下,配置文件的加载顺序是:先加载默认的配置项(看看default文件就知道默认配置项了),然后加载site文件里的配置项,最后加载MR代码里的配置项。所以,个性化的配置还是放在MR代码中通过cong.set方法来设置比较合适。

 

其他的还有一些配置,例如task心跳响应延迟时间(默认10分钟)、task失败尝试次数等等,这个有兴趣可以改改试下。对于集群,hadoop还自带一些测试的工具,例如集群的I/O测试,这个是最常用的。用法一般为hadoop jar hadoop-mapred-test-0.21.0.jar TestDFSIO -write -nrFiles 10 -fileSize 1000。执行完成之后会在同级目录下有TestDFSIO_results.log文件,查看就行。

 

四、附件

 

这个是我的测试环境,大家可以参考一下:

 

Ø  数据量:1.3T文本文件,约31亿条数据,每条数据70个字段。

 

Ø  业务:过滤所有数据,然后去重排序。

 

Ø  硬件:集群共5台设备(8G内存、2个4核CPU、1T硬盘、千兆网卡,千兆交换机器)

 

Ø  软件配置见下表:

 

字段

 

值

 

blocksize

 

512M

 

调度模式

 

FIFO(就一个任务)

 

mapred.child.java.opts

 

1024M

 

mapred.tasktracker.map.tasks.maximum

 

6

 

mapred.tasktracker.reduce.tasks.maximum

 

2

 

Reduce数量

 

200

 

dfs.replication

 

1(硬盘空间不够,就设置了1)

 

Ø  任务耗时:3小时30分钟左右。

Hadoop集群高可用与性能优化 立即下载

相关推荐

新疆地形数据下载:30米、12.5米、5米DEM地形数据

新疆是我国陆地面积最大的省级行政区,总面积达166万平方公里。新疆的地形也十分的复杂,新疆的地形呈山脉与盆地相间排列,盆地被高山环抱,,俗称“三山夹两盆”。三山指阿尔泰山、昆仑山、天山,两盆是指塔里木盆地和准噶尔盆地。 对精度要求不高的话,可以直接使用图新地球下载 新疆30米地形数据 大小:9.26GB 来自ASTER v3的新疆30米地形数据 30米地形数据下载 新疆12.5米地形数据 12.5米DEM数据由于精度比较高,一般不会用到全省的数据,通常用的是一个地区的,因此,可以单独分

LocaSpace的博客 3495

Hadoop的优化

0)HDFS 小文件影响 (1)影响 NameNode 的寿命,因为文件元数据存储在 NameNode 的内存中 (2)影响计算引擎的任务数量,比如每个小的文件都会生成一个 Map 任务 1)数据输入小文件处理: (1)合并小文件:对小文件进行归档(Har)、自定义 Inputformat 将小文件存储成SequenceFile 文件。 (2)采用 ConbinFileInputFormat 来作...

weixin_45061942的博客 499

RK3588上rknn_toolkit_lite2报错解决:手把手教你更新librknnrt.so的正确姿势

本文针对在RK3588平台上使用rknn_toolkit_lite2时遇到的“Invalid RKNN model version”等常见错误,提供了完整的诊断与解决方案。文章深入剖析了RKNN生态系统各组件(如librknnrt.so、RKNN Server)版本不兼容的根源,并手把手指导如何安全、正确地更新librknnrt.so运行时库,确保AI模型在RK3588 NPU上实现高效推理。

weixin_29189003的博客 518

HDFS Block块大小限定依据及原则

@Author : Spinach | GHB @Link : http://blog.csdn.net/bocai8058 文章目录前言 前言

GSpinach的博客 1万+

UE4游戏逆向实战:从HOOK明文包到自定义发包的完整流程(附加密算法解析)

本文详细解析了UE4游戏网络通信的逆向工程完整流程。从定位线程发包点、HOOK拦截明文封包,到逆向分析加密解密算法,最终实现自定义组包与加密发送。文章结合实战案例,为游戏安全研究和技术人员提供了一套清晰、可操作的方法论。

weixin_29009081的博客 1234

新手必看:如何用PhaGCN2和vConTACT2搞定宏病毒组注释(附避坑指南)

本文为宏病毒组研究新手提供了使用PhaGCN2和vConTACT2进行病毒注释的完整实战指南。内容涵盖从Conda环境配置、软件安装、参数解析到结果解读的全流程,并重点分享了整合双工具进行交叉验证的策略与常见报错解决方案,旨在帮助研究者高效、准确地完成病毒分类注释工作。

j2k3l4的博客 795

进击大数据系列(十六)Hadoop 性能优化与运维

点击下方名片,设为星标!回复“1024”获取2TB学习资源!前面介绍了 Hadoop数据库 Hbase、任务调度器 Oozie、数据同步工具 Sqoop、分布式日志采集系统 Flume、数据分析引擎 Apache Pig、图形化管理系统 Hue 等相关的知识点,今天我将详细的为大家介绍 大数据 Hadoop 性能优化与运维 相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!...

民工哥的博客 1166

汇川机器人与PLC通信-ModbusTCP超详细案例

通过汇川机器人与PLC的ModbusTCP通信项目案例,我们可以了解通讯配置的过程,地址映射的方式,对接信号的转换,运行时序的逻辑等注意事项,帮助我们快速应用到项目中。

weixin_44166380的博客 1万+

Hadoop参数调优,性能优化。

Hadoop参数调优 一、 hdfs-site.xml 配置文件 1、 dfs.blocksize 参数:hadoop文件块大小 描述:新文件的默认块大小,以字节为单位,默认 134217728 字节。 可以使用以下后缀(大小写不敏感):k(kilo)、m(mega)、g(giga)、t(tera)、p(peta)、e(exa)来指定大小(如128k、512m、1g等), 或者以字节为单位提供完整的大小。 2、 dfs.namenode.handler.count 参数:namenode的

东城庞太师 2225

别再只玩积木了!用乐高EV3和官方软件,手把手教你做个能巡线的小车(附完整代码)

本文详细介绍了如何利用乐高EV3套件和官方软件制作智能巡线机器人,从硬件组装到软件编程全面覆盖。通过传感器原理讲解、控制算法调试等工程化细节,帮助读者掌握机器人开发的核心理念,特别适合STEAM教育和硬件编程爱好者实践。

weixin_30776273的博客 449

DIY天文摄影:如何用NMP溶剂安全去除佳能CMOS传感器的拜耳滤镜(附详细步骤)

本文为天文摄影爱好者提供了一份详尽的DIY指南,介绍如何使用NMP溶剂安全去除佳能CMOS传感器的拜耳滤镜,将其改造为高灵敏度单色相机。文章深入剖析了NMP溶剂的作用原理与关键风险,并系统性地拆解了从材料准备、分步操作到后期验证的完整实践流程,旨在帮助具备动手能力的爱好者实现深空天体摄影的进阶目标。

w3x4y的博客 306

Hadoop集群性能调优实战:从原理到参数配置的完整指南

在大数据生态系统中,分布式存储与计算框架是处理海量数据的核心基础设施。其工作原理基于将数据分片存储与并行计算,通过资源统一调度来提升吞吐量。这项技术的核心价值在于,能够以横向扩展的方式,高效、稳定地处理PB级数据,并显著降低海量数据处理的硬件与运维成本。其典型应用场景包括企业级数据仓库、实时数据分析平台以及机器学习训练管道。本文将聚焦于Hadoop这一经典框架,深入探讨如何通过系统化的性能调优,解决数据倾斜与资源利用率低下等常见工程挑战,从而充分挖掘集群潜力,实现从“能用”到“好用”的跨越。

culiao2169的博客 525

【ComfyUI】Wan 2.2 14B 首尾帧转视频 平滑过渡

本文介绍了基于 Wan2.2 ComfyUI 的视频生成工作流,通过预训练模型、提示词与参考图像的结合,实现高质量视频合成。工作流采用高低噪声模型与 LoRA 模块优化风格与细节,确保画面过渡平滑稳定。核心流程包括模型加载、图像输入、提示词编码、潜空间采样、解码与视频合成,最终生成动态转场视频。节点设计涵盖 CLIPTextEncode、KSamplerAdvanced 等关键模块,协同完成从文本到视频的全链路生成。正向提示词作为核心驱动力,直接影响视频的动作、镜头与画面变化。

Mr数据杨 1701

hadoop集群配置与MapReduce性能调优

Hadoop安装 1. 安装前的准备 安装hadoop首先需要在机器上安装合适版本的java(最新版本肯定没问题),并从Apache镜像中下载稳定版本的hadoop安装包。在集群中安装hadoop通常需要在所有机器上拷贝一份hadoop安装包,并解压缩到安装目...

chigui2571的博客 193

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

FreeBSD下安装配置Hadoop集群(性能调优)

hadoop的性能调优是个比较艰难的事情,由于这个系统的整个环境比较复杂,对于接触时间不长的人来说,配置都很难,更别说找出性能优化的点了。性能优化涉及的方面很广,操作系统,网络配置,配置文件,调度器等等,抓出几点来说,但不敢说这几点就是别人所遇到的性能瓶颈,抛砖引玉而已。应用场景不同,优化配置肯定是各不相同的。对于操作系统和网络环境的调优,这个需要讲的东西就太多了,无法在一篇文章里赘述。集中于几个...

weixin_34183910的博客 76

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Hadoop 3.3.4集群性能调优实战:基于1主3从架构的CentOS7配置详解

本文详细介绍了Hadoop 3.3.4集群在CentOS7环境下的性能调优实战,基于1主3从架构(NameNode和DataNode)的配置优化。通过硬件规划、系统调优、HDFS和YARN参数深度优化,以及监控体系的建立,显著提升电商日志处理效率,适合大数据处理场景的运维人员和开发者参考。

weixin_29054195的博客 245

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: hadoop笔记
下一篇: centos关机与重启命令详解
java_doom
博客等级 码龄20年 6粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值