Hadoop搭建优化

问题描述

操作系统(os)1.禁用Linux逻辑管理卷(LVM)2.挂载数据分区时禁用文件atime和目录atime3.Linux内核参数调整(/etc/sysctl.conf)vm.swappiness=0;HDFS参数优化无特别标识均为:hdfs-site.xml属性。1.fs.default.name(core-site.xml)定义客户端所使用的默认文件系统的URL2.dfs.name.dir(重要)定义了一个用逗号(中间不加空格)分割的不同的本地文件路径,NameNode要在这些路径上保存一个HDFS文件数据的备份。3.dfs.data.dir定义了DataNode在哪里存放HDFS数据块4.Io.file.buffer.size(core-site.xml)用来设置hadoop访问文件IO的缓存大小。默认值为:4kb。参考值:64mb(65536byte)5.dfs.balance.bandwidthPerSec定义了HDFS平衡器(balancer)平衡每个DataNode平衡操作所允许的最大带宽,单位是byte6.dfs.block.size定义了所有新建文件的默认数据块大小。默认值:64MB参考值:128MB(134217728)7.dfs.DataNode.du.reserved定义了每个dfs.data.dir所定义的硬盘空间需要保留的大小。以byte为大小默认值为0,参考值:107374182408.dfs.NameNode.handler.count定义NameNode工作线程池(用来处理客户端的远程过程调用及集群守护进程调用)工作线程大小。该值一般原则是将值设为集群的自然对数乘以20即:20logNN为集群大小。9.dfs.DataNode.failed.volumes.tolerated定义整个DataNode声明失败前,允许多少个硬盘出现故障。默认值为:0参考值:110.fs.trash.interval(core-site.xml)定义.Trash目录文件下文件被永久删除前保留的时间。默认值:0(不保存)推荐值:1440(24小时)注意:垃圾回收功能只是针对命令式。对javaApi调用的删除无效。MapReduce无特别声明均为mapred-site.xml属性。1.mapred.job.tracker定义了主机名和端口信息,jobtracker在该端口监听远程过程调用(RPC)。2.mapred.local.dir定义了map端中间结果文件存储路径。如果设置路径为专有硬盘,那么就没必要配置hdfs-site.xml中的dfs.DataNode.du.reserved属性了3.mapred.java.child.optsTasktracker是在一个独立的JVM进程里启动子任务的,启动时可以把一些参数传递给它。比较常见的是设置内存的使用。默认值为:200MB参考值为:-Xms2g.4.mapred.child.ulimit可以对JVM子任务最大堆栈大小进行补充(即它规定一个进程在它运行结束前可以使用的最大虚拟内存)该值一般大致可设为JVM最大堆栈大小的1.5倍。5.mapred.tasktracker.map(和reduce).tasks.maximum6.hadoopmapreduce任务并发数可能等于mapred.tasktracker.map.tasks.7.maximum和mapred.tasktracker.reduce.tasks.maximum之和每个任务都在一个独立的JVM上运行。根据mapred.java.child.opts设置的内存,如果mapred.java.child.opts设置为2g,mapred.tasktracker.map.tasks.maximum设置为12则map任务就消耗24g内存。该值一般情况下为每个物理CPU配置1.5个任务,cup*1.5=mapreduce并发任务总个数,然后将三分之二处理时间分片给map任务三分之一留给reduce任务8.io.sort.mbmap任务的一些输出会写在循环缓冲区内,该缓冲区大小是由该属性指定的,当该缓冲区使用率达到80%时,就会启动一个后台进程将溢出数据写到mapred.local.dir指定的路径下。默认值为:100MB同时注意该数据所指定的内存是包含在子任务的JVM堆栈空间中的。9.io.sort.factor它定义了一次性能合并的文件数目,以下两种情况会触发MapReduce的文件合并操作:第一种是map任务执行完毕spill文件需要合并,第二种是在reduces获取了所有map任务输出文件后以及用户调用reduce代码之前。增大每一轮打开文件个数进行合并可以减少数据读取和写入硬盘的时间,也减少了硬盘IO的操作。但合并更多的文件意味着需要更多的内存。10.mapred.compress.map.output启用map端的压缩参考值:true11.mapred.map.output.compression.codec定义了在MapReduce任务中使用的map输出压缩码,如果该值为空则org.apache.hadoop.io.compress.defaultCodec会被调用参考值:org.apache.hadoop.io.compress.SnappyCodec12.mapred.output.compression.type如果MapReduce任务的输出需要写成SequenceFile格式,那么该参数会确定所使用的压缩类型。可配值有三个:第一种是记录(RECORD),该值会使得SequenceFile的每个数据都被单独压缩。第二种值是块(BLOCK)该值会使得所有关键数据按固定大小分块压缩。第三种是无(NONE)设置该值就不会为数据进行压缩。参考值:BLOCK。13.mapred.job.tracker.handler.countjobtracker会维护一个工作线程池来处理远程过程调用,该值用来控制线程池大小。参考值20logNN为集群大小。14.mapred.reduce.parallel.copies在MapReduce作业洗牌(shuffle)过程中,每个reducer任务需要从各个tasktrackers中获取同一作业运行map任务产生的中间数据。该参数可以设置reducer可以并行获取数据个数。一般可以设置为4*logNN为集群大小。15.mapred.reduce.tasks该参数规定了作业要产生的reduce个数。16.Tasktracker.http.threads控制每个tasktracker用于处理请求的并行工作线程数。HTTP线程的个数与集群reduce槽的数量,和被许可并行处理的数据份数是成正比的。17.Mapred.reduce.slowstart.completed.maps一旦一些map任务生成了中间结果,就可以提前让reducer对这些数据进行洗牌(shuffle),尽可能早的拷贝数据,可以使reduce任务在最后一个map任务完成时就可以直接运行。该属性定义允许启动reduce进程时map任务完成的百分比。参考值:0.8即80%

时间: 2024-08-19 00:15:53

Hadoop搭建优化的相关文章

脚本-Hadoop搭建集群环境用start-all.sh启动时报如下错误

问题描述 Hadoop搭建集群环境用start-all.sh启动时报如下错误 看了下,应该是start-dfs.sh脚本的问题,但是里面没有配置绝对路径.... 解决方案 hadoop中的start-all.sh小看 解决方案二: 有相应的目录或文件吗?或者.sh是否有执行权限 解决方案三: 没相应的目录和文件,在hadoop中的复制一份hadoop1.1.2到hadoop1和hadoop2中去

能否利用Hadoop搭建完整的云计算平台?

Hadoop并不完全代表云计算,所以,要用Hadoop搭建完整的云计算平台,答案是不够.我们常说云计算,实际上还是通过计算机的大规模或者说海量处理来为生活中各式各样的人和各行各业服务--所以,核心在"服务".关于服务,展开来就是常用的那3种(也是事实上的标准):SaaS,PaaS,IaaS.对云计算来说,公有和私有,虚拟和存储,这其实是相对讨论的核心. 回头说Hadoop.在Google三大论文的直接刺激下,Hadoop社区兴起,而在众多的开源实现中,Hadoop(主项目)可以说是所有

基于调度器的Hadoop性能优化方法研究

基于调度器的Hadoop性能优化方法研究 刘娟: 豆育升: 何晨: 唐红 为了提高Hadoop调度器的调度性能,缩短Hadoop集群的任务整体响应时间,提出了一种基于CPU占用率的动态调度改进算法.首先对Hadoop传统的性能优化方法进行了对比,指出其存在问题的关键是缺乏动态性和灵活性.在此基础上,深入分析Hadoop默认任务调度模型,提出了一种以CPU占用率作为负载指标,在循环分配任务时根据反馈的负载指标判断节点负载情况的算法,动态适应负载变化.实验结果表明,该算法在Hadoop集群中,能有效

Hadoop搭建开发环境图文教程

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; Hadoop日记Day2---搭建开发环境       一.Hadoop配置软件(我的电脑是Windows7旗舰--64bit) 1. VMWare专用CentOS镜像(Centos是Linux操作系统的一种) 2. VMware-workstation10 3. hadoop-1.1.2.tar.gz 4. jdk-6u24-linux-i586.bin 5. P

用Hadoop搭建分布式存储和分布式运算集群

1. 列出使用的机器 普通PC,要求:cpu: 750M-1Gmem: >128Mdisk: >10G不需要太昂贵的机器. 机器名:finewine01finewine02finewine03 将finewine01设为主节点,其它的机器为从节点. 2. 下载和生成 从这里checkout,我选择trunkhttp://svn.apache.org/repos/asf/lucene/hadoop/使用ant进行生成 3. 部署前的准备工作在主节点的start-all.sh脚本执行后,主节点和从

hadoop搭建,上传文件时出现错误,没有到主机的路由

问题描述 [hadoop@Masterfile]$hadoopfs-mkdirinput3[hadoop@Masterfile]$hadoopfs-put./file*.txtinput315/03/1822:54:00INFOhdfs.DFSClient:ExceptionincreateBlockOutputStreamjava.net.NoRouteToHostException:没有到主机的路由15/03/1822:54:00INFOhdfs.DFSClient:Abandoningbl

英特尔进军云计算 推出Hadoop CPU优化版

继Cloudera与Hortonworks之后,英特尔在2月底全球同步宣布推出Intel专属的Hadoop分布式计算软件,包括Hadoop发行版(Intel Distribution)以及Hadoop管理工具Intel Manager与Intel Active Tuner,这是英特尔从2009年开始投入巨资研究云计算以来,首度发布的相关软件产品,英特尔将以开源分布式资料分析平台Hadoop进军云数据市场. 英特尔DCSG亚太区总经理Jason Fedder表示,Hadoop发行版是以英特尔的硬件

【转载】hadoop/hbase 搭建

本文转载自http://shift-alt-ctrl.iteye.com/blog/2073581    因为工作需要,我们使用hbase + hadoop存储基于用户内容的数据(UGC),本文将描述如何逐步搭建此平台,仅作参考.   1. 环境     操作系统:Red hat 6.3,300G硬盘,双核CPU     JAVA:JDK1.6                         HBASE:hbase-0.98.1     Hadoop:hadoop-2.2.0       现在我

【转】hadoop/hbase搭建

1. 环境     操作系统:Red hat 6.3,300G硬盘,双核CPU     JAVA:JDK1.6                         HBASE:hbase-0.98.1     Hadoop:hadoop-2.2.0       现在我们使用3台机器(虚拟机),来搭建hadoop环境,如下为机器列表,首先我们需要在三台机器上hosts文件中都增加如下信息,同时需要注意,局域网内的机器都需要设定网卡为"静态IP",以防止机器重启后IP不断变化.本例中所有机器使