栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

决赛前的准备------Hadoop性能调优

决赛前的准备------Hadoop性能调优

一、hdfs调优:

在hdfs-site.xml文件中修改配置文件:

1.dfs.namenode.handler.count:调整namenode处理客户端的线程数

value = 20*logN,N为集群大小

二、yarn调优

在yarn-site.xml文件中修改配置文件:

1.yarn.nodemanager.resource:表示该节点上YARN可使用的物理内存总量,默认是8192 (MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。

2.yarn.scheduler.maximum-allocation-mb:单个任务可申请的最多物理内存量,默认是8192 (MB)。

三、MapReduce 调优:

1.mapreduce.map.memory.mb:一个MapTask可使用的资源上限((单位:MB),默认为1024。如果MaplasK实际使用的资源量超过该值,则会被强制杀死。

2.mapreduce.reduce.memory.mb:一个ReduceTask可使用的资源上限(单位:MB),默认为1024。如果ReduceTask实际使用的资源量超过该值,则会被强制杀死。

3.mapreduce.map.cpu.vcores:每个MapTask可使用的最多cpu core数目,默认值:1

4.mapreduce.reduce.cpu.vcores:每个ReduceTask可使用的最多cpu core数目,默认值: 1

5.mapreduce.reduce.shuffle.parallelcopies:每个Reduce去Map中取数据的并行数。默认值是5

6.mapreduce.reduce.shuffle.merge.percent:Buffer中的数据达到多少比例开始写入磁盘。默认值0.66

7.mapreduce.reduce.shuffle.input.buffer.percent:Buffer大小占Reduce可用内存的比例。默认值0.7

8.mapreduce.reduce.input.buffer.percent:指定多少比例的内存用来存放Buffer中的数据,默认值是0.0

思路二:

我猜测那些集群的参数调优不是修改参数,而是将配置文件升级为高可用:

1.core-site.xml



fs.defaultFS

hdfs://master





io.file.buffer.size

65536

读写缓存大小设定,该属性值单位为KB,65536KB即为默认的64M





hadoop.tmp.dir

file:/home/hadoopdir/tmp/

临时文件路径,默认为/tmp,在虚拟机中必须指定这一项为其他目录,否则随着虚拟机的重启,/tmp目录会自动消失





ha.zookeeper.quorum

masterNode1:2181,slaveNode1:2181,slaveNode2:2181



2.hdfs-site.xml



dfs.namenode.name.dir

file:///home/hadoopdir/dfs/name

hdfs元数据存存储目录





dfs.datanode.data.dir

/home/hadoopdir/dfs/data,/home/hadoopdir/dfs/data2

DataNode在本地文件系统中存放块的路径,如果是多个路径,请用逗号隔开,会自动选用多个目录进行数据存储





dfs.replication

2

备份数量,伪分布式则将其配置成1





dfs.blocksize

33554432

设置大文件系统HDFS块,默认值为64M





dfs.namenode.handler.count

100

NameNode服务器线程数,用于处理来自DataNodes的RPC





dfs.webhdfs.enabled

true

是否开通HDFS的Web接口,默认端口是50070





dfs.nameservices

master







dfs.ha.namenodes.master

nn1,nn2







dfs.namenode.rpc-address.master.nn1

masterNode1:9000







dfs.namenode.rpc-address.master.nn2

slaveNode1:9000







dfs.namenode.http-address.master.nn1

masterNode1:50070







dfs.namenode.http-address.master.nn2

slaveNode1:50070







dfs.namenode.servicerpc-address.master.nn1

masterNode1:53310





dfs.namenode.servicerpc-address.master.nn2

slaveNode1:53310





dfs.namenode.shared.edits.dir

qjournal://masterNode1:8485;slaveNode1:8485;slaveNode2:8485/master







dfs.journalnode.edits.dir

/home/hadoop/Jnode







dfs.ha.automatic-failover.enabled

true







dfs.client.failover.proxy.provider.master

org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider







dfs.ha.fencing.methods

sshfence

shell(true)







dfs.ha.fencing.ssh.private-key-files

/root/.ssh/id_rsa







dfs.ha.fencing.ssh.connect-timeout

3000



3.mapred-site.xml



mapreduce.framework.name

yarn

执行框架设置为Hadoop的YARN





mapreduce.map.memory.mb

1024

对maps的资源限制,单位mb





mapreduce.map.java.opts

-Xmx819M

maps中对jvm child设置堆大小





mapreduce.reduce.memory.mb

2048

设置 reduces的资源限制,单位mb





mapreduce.reduce.java.opts

-Xmx1638M

reduces对 jvm child设置的堆大小





mapreduce.task.io.sort.mb

256

更高的内存限制,而对数据进行排序的效率,单位mb





mapreduce.task.io.sort.factor

50

在文件排序中更多的流合并为一次





mapreduce.reduce.shuffle.parallelcopies

50

通过reduces从很多的map中读取较多的平行副本

4.yarn-site.xml



yarn.resourcemanager.ha.enabled

true









yarn.resourcemanager.ha.automatic-failover.enabled

true







yarn.resourcemanager.ha.automatic-failover.embedded

true





yarn.resourcemanager.cluster-id

yrc







yarn.resourcemanager.ha.rm-ids

rm1,rm2







yarn.resourcemanager.hostname.rm1

masterNode1







yarn.resourcemanager.hostname.rm2

slaveNode1







yarn.resourcemanager.recovery.enabled

true





yarn.resourcemanager.store.class

org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore





yarn.resourcemanager.zk-address

masterNode1:2181,slaveNode1:2181,slaveNode2:2181







yarn.log-aggregation-enable

true







yarn.nodemanager.aux-services

mapreduce_shuffle

NodeManager上运行的附属服务。需配置成mapreduce_shuffle才可运行MapReduce程序





yarn.nodemanager.aux-services.mapreduce.shuffle.class

org.apache.hadoop.mapred.ShuffleHandler

启用的资源调度器主类





yarn.nodemanager.resource.memory-mb

4096





yarn.scheduler.minimum-allocation-mb

1024





yarn.scheduler.maximum-allocation-mb

4096





yarn.nodemanager.vmem-check-enabled

false

是否强制检查虚拟内存的使用配额,如果内存不够的时候系统就会使用swap空间内存,而hadoop会强制检查使用的虚拟内存的数额,如果使用的虚拟内存的数量大于真实内存的2.1倍,会自动杀死相关字进程。





yarn.nodemanager.pmem-check-enabled

false





yarn.nodemanager.resource.cpu-vcores

1

表示该节点上YARN可使用的虚拟CPU个数,默认是8,注意,目前推荐将该值设值为与物理CPU核数数目相同。如果你的节点CPU核数不够8个,则需要调减小这个值,而YARN不会智能的探测节点的物理CPU总数。推荐在slaveNode中将这个数值设定为1





yarn.scheduler.maximum-allocation-vcores

3

单个任务可申请的最多虚拟CPU个数,默认是32。

嗯嗯嗯~~~~大概就是这样子了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/612351.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号