hadoop优化

查看linux的服务,可以关闭不必要的服务
ntsysv

停止打印服务

#/etc/init.d/cups stop

#chkconfig cups off

关闭ipv6

#vim /etc/modprobe.conf

添加内容

alias net-pf-10 off

alias ipv6 off


调整文件最大打开数
查看: ulimit -a    结果: open files (-n) 1024
临时修改:  ulimit -n 4096
持久修改:
vi /etc/security/ limits.conf 在文件最后加上两行

* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535

修改linux内核参数
vi /etc/sysctl.conf
添加

net.core.somaxconn = 32768

#web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128,而nginx定义的NGX_LISTEN_BACKLOG默认为511,所以有必要调整这个值。

调整swap分区什么时候使用:

查看:cat /proc/sys/vm/swappiness

设置:vi /etc/sysctl.conf 

            在这个文档的最后加上这样一行: vm.swappiness=10

            表示物理内存使用到90%(100-10=90)的时候才使用swap交换区

关闭noatime

vi /etc/fstab

/dev/sda2    /data     ext3  noatime,nodiratime  0 0

设置readahead buffer

blockdev --setra READAHEAD 512 /dev/sda

修改最大槽位数

槽位数是在各个tasktracker上的mapred-site.xml上设置的,默认都是2

<property>  

            <name>mapred.tasktracker.map.tasks.maximum</name>  #++++maptask的最大数

            <value>2</value>  

        </property>                  

     <property>  

            <name>mapred.tasktracker.reduce.tasks.maximum</name>  #++++reducetask的最大数

                <value>2</value>  

      </property>  

调整心跳间隔

集群规模小于300是,心跳间隔为300毫秒

mapreduce.jobtracker.heartbeat.interval.min  心跳时间

mapred.heartbeats.in.second  集群每增加多少节点,时间增加下面的值

mapreduce.jobtracker.heartbeat.scaling.factor 集群每增加上面的个数,心跳增多少

启动带外心跳

mapreduce.tasktracker.outofband.heartbeat  默认是false

配置多块磁盘

mapreduce.local.dir

配置RPC hander数目

mapred.job.tracker.handler.count 默认是10,可以改成50,根据机器的能力

配置HTTP线程数目

tasktracker.http.threads  默认是40,可以改成100 根据机器的能力

选择合适的压缩方式

以snappy为例:

<property>  

            <name>mapred.compress.map.output</name>

            <value>true</value>  

        </property>                  

     <property>  

            <name>mapred.map.output.compression.codec</name> 

                <value>org.apache.hadoop.io.compress.SnappyCodec</value>  

      </property>  

启用推测执行机制

mapred.map.tasks.speculative.execution  默认是true

mapred.rduce.tasks.speculative.execution  默认是true

设置是失败容忍度

mapred.max.map.failures.percent   作业允许失败的map最大比例  默认值0,即0%

mapred.max.reduce.failures.percent  作业允许失败的reduce最大比例  默认值0,即0%

mapred.map.max.attemps  失败后最多重新尝试的次数 默认是4

mapred.reduce.max.attemps  失败后最多重新尝试的次数 默认是4

启动jvm重用功能

mapred.job.reuse.jvm.num.tasks  默认值1,表示只能启动一个task,若为-1,表示可以最多运行数不限制

设置任务超时时间

mapred.task.timeout  默认值600000毫秒,也就是10分钟。

合理的控制reduce的启动时间

mapred.reduce.slowstart.completed.maps  默认值0.05  表示map任务完成5%时,开始启动reduce任务

跳过坏记录

 当任务失败次数达到该值时,才会进入skip mode,即启用跳过坏记录数功能,也就是先试几次,不行就开启

mapred.skip.attempts.to.start.skipping 默认值 2

map最多允许跳过的记录数

mapred.skip.map.max.skip.records 默认值0,为不启用

reduce最多允许跳过的记录数

mapred.skip.reduce.max.skip.records 默认值0,为不启用

换记录存放的目录

mapred.skip.out.dir  默认值${mapred.output.dir}/_logs/ 

























  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值