`
szjian
  • 浏览: 72044 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Hadoop集群的配置调优

阅读更多
一、背景
HADOOP的配置优化,涉及到多方面,本部分主要针对HADOOP集群的配置优化进行汇总,以供参考。

二、配置
1、hdfs-site.xml配置文件
1)、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 设置大一些的好。

2)、dfs.replication:存放数据文件的份数。
设置为1,就是在集群中存一份。如果设置为2,即做一份备份,也就是说数据在集群中有2
份。还是以1T 的数据为例,如果设置1,集群中就存在1T 的文件,如果设置为2,那么集群占用空间为2T。
当然,这个备份还有个基于机架感知的备份机制(本地存放、同机架存放、异机架存放)如果
不配置机架,默认都在一个机架上,之所以做机架感知的备份就是为了做到异地容灾。因为我现在的集群都在一个机房,就是做了机架配置,也不能做异地容灾。要是机房断电,谁也不能容灾谁。
但是如果你的集群分别存放在2 个机房,还是可以考虑做机架配置,然后将备份数量设置为3。
备份数量有利有弊,备份数量多,节点挂个几个没影响,数据依然完整。但是你的冗余数据会
增加。如果只设置为1,那就是节点一旦有挂掉的,就是block miss。
一般来说,测试情况下建议设置为1,如果实际使用,所有机器都在一个机房,建议配置为2,如果集群分布在不同机房,还是试试配置为3 吧。

2、mapred-site.xml配置文件
1)、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 的总核数。
网上有牛人建议:如果使用fair 的调度模式,设置成相同,应该是可以的,但是如果是FIFO 模式,建议在map或是reduce 阶段,CPU 的核数没有得到充分的利用,有些可惜,所以,FIFO 模式下,还是尽量配置的map 并发数量多于redcue 并发数量。因此,我说这个参数的配置不仅仅要考虑硬件配置,还需要考虑到Job 的调度模式。需要说明的是,这个配置参数不同的节点可以配置不同。适用于硬件异构的集群。

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

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

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

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

相关推荐

    论文研究-基于资源签名与遗传算法的Hadoop参数自动调优系统.pdf

    针对以上问题,构建了Hadoop集群自动调优系统,其中在系统中设计了资源获取器与参数配置库,分别用于获取各作业的资源消耗与存储分发配置方案。该系统利用MapReduce作业的小规模数据集资源签名将任务分类,在遗传...

    五分钟学大数据-Hadoop企业级调优手册1

    1.3 开启回收站配置 6 2.1 测试 HDFS 写性能 9 2.2 测试 HDFS 读性能 11 3.3 集群数据均衡之磁盘间数据均衡13 4.1 添加白名

    Hadoop开发者第四期

    Hadoop开发者第四期: 海量数据处理平台架构演变;...Hadoop 集群的配置调优; Hadoop 平台的Java 规范及经验; MapReduce 开发经验总结; Hadoop 中的tar 命令的实现; Hadoop 技术论坛运营数据分享

    Hadoop性能调优

    从Hadoop配置文件入手,经历大量的实验,以求通过改变一些配置参数以提高Hadoop集群的性能。 从Hadoop作业调度入手,优化集群作业调度算法。

    Hadoop权威指南 第二版(中文版)

     本书是Hadoop权威参考,程序员可从中探索如何分析海量数据集,管理员可以从中了解如何安装与运行Hadoop集群。 目录 第1章 初识Hadoop  数据!数据!  数据存储与分析  与其他系统相比  关系型数据库管理系统...

    Hadoop实战中文版

    9.4 在EC2 上运行MapReduce 程序 9.4.1 将代码转移到Hadoop集群上 9.4.2 访问Hadoop集群上的数据 9.5 清空和关闭EC2 实例 9.6 Amazon Elastic MapReduce 和其他AWS 服务 9.6.1 Amazon Elastic MapReduce 9.6.2...

    大数据技术之新能源汽车数仓 视频教程 下载

    17_hadoop的参数调优.mp4 18_kafka的安装部署.mp4 19_kafka命令行简单介绍.mp4 20_flume的安装及内存的调整.mp4 21_mysql的安装部署.mp4 22_mysql远程软件连接的问题解决.mp4 23_采集数据模拟生成展示.mp4 24...

    Hadoop权威指南(中文版)2015上传.rar

    利用基准测试程序测试Hadoop集群 Hadoop基准测试程序 用户的作业 云上的Hadoop Amazon EC2上的Hadoop 第10章 管理Hadoop HDFS 永久性数据结构 安全模式 日志审计 工具 监控 日志 度量 Java管理扩展(JMX) 维护 日常...

    基于AWS云平台大规模集群千亿数据调优方案视频教程

    1,大规模集群调优(150台服务器)、千亿级别数据量的规模 2,全程实操,以需求为目标,逐步实现。 3,贴近真实企业开发的工作流程。 4,基于AWS云平台实现,学习如何在云上实践大数据。 适用人群 1、对大数据技术感...

    Hadoop实战中文版.PDF

    1649.2.2 获得命令行工具 1669.2.3 准备SSH密钥对 1689.3 在EC2上安装Hadoop 1699.3.1 配置安全参数 1699.3.2 配置集群类型 1699.4 在EC2上运行MapReduce程序 1719.4.1 将代码转移到Hadoop集群上 1719...

    《Hadoop开发者》第四期

    Hadoop 集群的配置调优................................ 60 Hadoop 平台的Java 规范及经验......................... 63 MapReduce 开发经验总结............................... 67 Hadoop 中的tar 命令的实现.......

    hadoop和yarn原理笔记.docx

    在培训班整理的笔记 涉及到实际工作中的调优和基本原理对比hadoop1.0和2.0区别,集群的配置要求。yarn的原理和各部分的作用

    Hadoop实战(陆嘉恒)译

    在云上运行Hadoop9.1 Amazon Web Services 简介9.2 安装AWS9.2.1 获得AWS身份认证凭据9.2.2 获得命令行工具9.2.3 准备SSH密钥对9.3 在EC2 上安装Hadoop9.3.1 配置安全参数9.3.2 配置集群类型9.4 在EC2 上运行...

    Hadoop实战

    1699.3.2 配置集群类型 1699.4 在EC2上运行MapReduce程序 1719.4.1 将代码转移到Hadoop集群上 1719.4.2 访问Hadoop集群上的数据 1729.5 清空和关闭EC2实例 1759.6 Amazon Elastic MapReduce和其他AWS服务 1769.6.1 ...

    大数据课程体系.pdf

    Java 基础 JAVA 开发基础知识 Eclipse 开发环境 多线程技术 Socket 网络...未来 Hadoop 核心组成介绍及 hdfs、mapreduce 体系结构 Hadoop 的集群结构 Hadoop 独立模式安装与测试 Hadoop 启动与停止 SSH 安装与配置 Ha

    大数据知识仓库涉及到数据仓库建模、实时计算、大数据、数据中台、系统设计、Java、算法等代码

    Hadoop高可用配置 HadoopCommon分析 HDFS集群相关管理 HDFS Shell 5.2 MapReduce 分布式处理框架MapReduce MapReduce概览 MapReduce调优 MapReduce数据相关操作 MapReduce输入输出剖析 MapReduce的工作机制 5.3 Yarn...

    [详细完整版]大数据运维.docx

    3、基于大数据应用需求,不断调整和优化Hadoop框架及组件的配置,提升性能; 4、为数据仓库、数据挖掘建模等数据应用项目提供运行环境支持; 5、负责大数据平台内部所涉及到的各类数据库、数据存储的搭建、备份、...

    IT十八掌课程-徐培成-大数据-配套PPT

    '[IT18掌www.it18zhang.com]010.Hadoop配置-独立与伪分布式模式.pptx' '[IT18掌www.it18zhang.com]Ambari Hadoop集群管理工具.pptx' '[IT18掌www.it18zhang.com]Spark调优.pptx' '[IT18掌www.it18zhang.com]011....

    【hive on spark Error】return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask.

    在成功消除Cloudare管理界面上那些可恶的警告之后,我又对yarn的一些参数进行调优,最后重启了集群。当我提个任务(spark on yarn)并且看到并发及资源的分配情况正如自己先前所料的时候,我长舒了一口气,端起杯子...

Global site tag (gtag.js) - Google Analytics