- 浏览: 218981 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (114)
- hbase (3)
- akka (7)
- hdfs (6)
- mapreduce (1)
- hive (0)
- zookeeper (8)
- storm (0)
- geese (0)
- leaf (0)
- stormbase (0)
- scala (2)
- oozie (11)
- zeromq (1)
- netty (3)
- mongodb (0)
- sqoop (2)
- flume (3)
- mahout (1)
- redis (0)
- lucene (1)
- solr (1)
- ganglia (3)
- 分布式理论 (2)
- hadoop (42)
- others (14)
- mq (1)
- clojure (3)
- flume ng (1)
- linux (1)
- esper (0)
最新评论
-
javalogo:
[b][i][u]引用[list]
[*][*][flash= ...
什么是Flume -
leibnitz:
what are they meanings
Hadoop Ganglia Metric Item -
di1984HIT:
没用过啊。
akka 介绍-Actor 基础 -
di1984HIT:
写的不错。
Hadoop管理-集群维护 -
developerinit:
很好,基本上介绍了
什么是Flume
转发:http://samuschen.iteye.com/blog/871028
Hadoop配置文件设定了Hadoop平台运行时各方面属性。大量实验证明,合理的配置会大大提高Hadoop的性能。在Hadoop-0.19.2版 本中,Hadoop配置文件在conf目录下,包括文件hadoop-default.xml和hadoop-site.xml,前者做了默认配置,不允 许修改,用户需要配置时可以在后者中设置。Hadoop平台启动时首先加载hadoop-site.xml文件来配置系统属性,然后加载hadoop- default.xml文件来配置其它默认属性。属性的结构以及解释如下所示。
<property>
<name>XXX</name> //XXX代表某属性的名称
<value>YYY</value> //YYY代表某属性值,修改属性值以达到优化目的
<description>ZZZ</description> //ZZZ代表某属性的说明
</property>
Hadoop配置文件分为以下几个大类:包括全局(global)属性、日志(logging)属性、输入/输出(i/o)属性、文件系统(file system)属性、MapReduce(map/reduce)属性、进程通信(ipc)属性,以及作业通知(Job Notification)配置、网页界面(web interface)配置、代理(proxy)配置、机架(Rack)配置。
在本节主要关注与MapReduce数据流相关的属性,具体包括I/O属性和MapReduce属性这两类。在开始具体介绍配置属性的优化之前,有几个问题需要首先说明:
(1) 部分属性除了配置文件之外还可以在MapReduce作业中动态修改,将其放在下一节介绍。
(2) 在MapReduce执行过程中,特别是Shuffle阶段,尽量使用内存缓冲区存储数据,减少磁盘溢写次数;同时在作业执行过程中增加并行度,都能够显著提高系统性能,这也是配置优化的一个重要依据。
(3) 由于每个Hadoop集群的机器和硬件之间都存在一定差别,所以Hadoop框架应根据其集群特性做配置优化,可能需要经历大量的实验。在此仅提出部分比较重要的可优化属性,以及其优化的依据。
下面分别介绍I/O属性和MapReduce属性这两个类的部分属性,并指明其优化方向。
1 I/O属性类的优化
I/O属性类主要包括在Shuffle阶段中相关的I/O过程的属性,在分析了每个具体属性后从以下几个属性入手进行优化。
(1) io.sort.factor属性,int类型,Map端和Reduce端使用
该属性设置在Map端和Reduce端都使用到的对文件Sort时一次合并的最大流,其默认值是10,即一次合并10个流。在集群中,将其适当增大能够提高并行度以缩短合并所需时间。将此默认值增加到100是比较常见的。
(2) io.sort.mb属性,int类型,Map端使用
该属性设置对Map输出进行排序时使用的环形内存缓冲区的大小,以M字节为单位,默认是100M。如果允许,应该增加它的值来减少磁盘溢写的次数以提高性能。
(3) io.sort.record.percent属性,float类型,Map端使用
该属性设置保留的io.sort.mb的比例用来存储Map输出的记录边界,剩余的空间用来存储Map输出记录本身,默认是0.05。
(4) io.sort.spill.percent属性,float类型,Map端使用
该属性设置Map输出内存缓冲和边界记录索引两者使用比例的阈值,达到此值后开始溢写磁盘的过程,默认是0.80。
(5) io.file.buffer.size属性,int类型,MapReduce作业使用
该属性设置MapReduce作业的I/O操作中所提供的缓冲区的大小,以字节为单位,默认是4096字节。这是一个比较保守的设置,通过增大它 的大小能够减少I/O次数以提高性能。如果系统允许,64KB(65536字节)至128KB(131072字节)是较普遍的选择。
2 MapReduce属性类的优化
MapReduce属性类主要包括在MapReduce执行过程中相关配置属性,重点从以下的部分属性去分析性能优化。
(1) mapred.reduce.parallel.copies属性,int类型,Reduce端使用
该属性设置将Map输出复制到Reduce的线程的数量,默认为5。根据需要可以将其增大到20-50,增加了Reduce端复制过程的并行数,提高了系统性能。
(2) mapred.child.java.opts属性,String类型,Map和Reduce任务虚拟机使用
该属性设置Map和Reduce任务运行时Java虚拟机指定的内存的大小,默认-Xmx200m,分配给每个任务200MB内存。只要条件允许,应该让任务节点上的内存大小尽量大,可以将其增大到-Xmx512m,即512MB,以提高MapReduce作业的性能。
(3) mapred.job.shuffle.input.buffer.percent属性,float类型,Reduce端使用
该属性设置整个堆空间的百分比,用于Shuffle的复制阶段分配给Map输出缓存,默认是0.70,适当增大比例可以使Map输出不被溢写到磁盘,能够提高系统性能。
(4) mapred.job.shuffle.merge.percent属性,float类型,Reduce端使用
该属性设置Map输出缓存中使用比例的阈值,用于启动合并输出和磁盘溢写的过程,默认是0.66。如果允许,适当增大其比例能够减少磁盘溢写次数,提高系统性能。
(5) mapred.inmem.merge.threshold属性,int类型,Reduce端使用
该属性设置启动合并输出和磁盘溢写过程的最大Map输出数量,默认为1000。由于Reduce端复制的中间值能够全部存在内存中可以获得最佳性 能。如果Reduce函数内存需求很少,可以将该属性设置为0,即没有阈值限制,由mapred.job.shuffle.merge.percent属 性单独控制溢写过程。
(6) mapred.job.reduce.input.buffer.percent属性,float类型,Reduce端使用
该属性设置在Reduce过程中用来在内存中保存Map输出的空间占整个堆空间的比例。Reduce阶段开始时,内存中的Map输出大小不能大于 这个值。默认为0.0,说明在Reduce开始前所有的Map输出都合并到硬盘中以便为Reduce提供尽可能多的内存。然而如果Reduce函数内存需 求较小,可以将该值设置为1.0来提升性能。
(7) tasktracker.http.threads属性,int类型,Map端使用
该属性设置集群中每个tasktracker用于将map输出传给reducer的工作线程的数量,默认是40。可以将其提高至40-50之间,能够增加并线线程数,提高集群性能。
Hadoop配置文件设定了Hadoop平台运行时各方面属性。大量实验证明,合理的配置会大大提高Hadoop的性能。在Hadoop-0.19.2版 本中,Hadoop配置文件在conf目录下,包括文件hadoop-default.xml和hadoop-site.xml,前者做了默认配置,不允 许修改,用户需要配置时可以在后者中设置。Hadoop平台启动时首先加载hadoop-site.xml文件来配置系统属性,然后加载hadoop- default.xml文件来配置其它默认属性。属性的结构以及解释如下所示。
<property>
<name>XXX</name> //XXX代表某属性的名称
<value>YYY</value> //YYY代表某属性值,修改属性值以达到优化目的
<description>ZZZ</description> //ZZZ代表某属性的说明
</property>
Hadoop配置文件分为以下几个大类:包括全局(global)属性、日志(logging)属性、输入/输出(i/o)属性、文件系统(file system)属性、MapReduce(map/reduce)属性、进程通信(ipc)属性,以及作业通知(Job Notification)配置、网页界面(web interface)配置、代理(proxy)配置、机架(Rack)配置。
在本节主要关注与MapReduce数据流相关的属性,具体包括I/O属性和MapReduce属性这两类。在开始具体介绍配置属性的优化之前,有几个问题需要首先说明:
(1) 部分属性除了配置文件之外还可以在MapReduce作业中动态修改,将其放在下一节介绍。
(2) 在MapReduce执行过程中,特别是Shuffle阶段,尽量使用内存缓冲区存储数据,减少磁盘溢写次数;同时在作业执行过程中增加并行度,都能够显著提高系统性能,这也是配置优化的一个重要依据。
(3) 由于每个Hadoop集群的机器和硬件之间都存在一定差别,所以Hadoop框架应根据其集群特性做配置优化,可能需要经历大量的实验。在此仅提出部分比较重要的可优化属性,以及其优化的依据。
下面分别介绍I/O属性和MapReduce属性这两个类的部分属性,并指明其优化方向。
1 I/O属性类的优化
I/O属性类主要包括在Shuffle阶段中相关的I/O过程的属性,在分析了每个具体属性后从以下几个属性入手进行优化。
(1) io.sort.factor属性,int类型,Map端和Reduce端使用
该属性设置在Map端和Reduce端都使用到的对文件Sort时一次合并的最大流,其默认值是10,即一次合并10个流。在集群中,将其适当增大能够提高并行度以缩短合并所需时间。将此默认值增加到100是比较常见的。
(2) io.sort.mb属性,int类型,Map端使用
该属性设置对Map输出进行排序时使用的环形内存缓冲区的大小,以M字节为单位,默认是100M。如果允许,应该增加它的值来减少磁盘溢写的次数以提高性能。
(3) io.sort.record.percent属性,float类型,Map端使用
该属性设置保留的io.sort.mb的比例用来存储Map输出的记录边界,剩余的空间用来存储Map输出记录本身,默认是0.05。
(4) io.sort.spill.percent属性,float类型,Map端使用
该属性设置Map输出内存缓冲和边界记录索引两者使用比例的阈值,达到此值后开始溢写磁盘的过程,默认是0.80。
(5) io.file.buffer.size属性,int类型,MapReduce作业使用
该属性设置MapReduce作业的I/O操作中所提供的缓冲区的大小,以字节为单位,默认是4096字节。这是一个比较保守的设置,通过增大它 的大小能够减少I/O次数以提高性能。如果系统允许,64KB(65536字节)至128KB(131072字节)是较普遍的选择。
2 MapReduce属性类的优化
MapReduce属性类主要包括在MapReduce执行过程中相关配置属性,重点从以下的部分属性去分析性能优化。
(1) mapred.reduce.parallel.copies属性,int类型,Reduce端使用
该属性设置将Map输出复制到Reduce的线程的数量,默认为5。根据需要可以将其增大到20-50,增加了Reduce端复制过程的并行数,提高了系统性能。
(2) mapred.child.java.opts属性,String类型,Map和Reduce任务虚拟机使用
该属性设置Map和Reduce任务运行时Java虚拟机指定的内存的大小,默认-Xmx200m,分配给每个任务200MB内存。只要条件允许,应该让任务节点上的内存大小尽量大,可以将其增大到-Xmx512m,即512MB,以提高MapReduce作业的性能。
(3) mapred.job.shuffle.input.buffer.percent属性,float类型,Reduce端使用
该属性设置整个堆空间的百分比,用于Shuffle的复制阶段分配给Map输出缓存,默认是0.70,适当增大比例可以使Map输出不被溢写到磁盘,能够提高系统性能。
(4) mapred.job.shuffle.merge.percent属性,float类型,Reduce端使用
该属性设置Map输出缓存中使用比例的阈值,用于启动合并输出和磁盘溢写的过程,默认是0.66。如果允许,适当增大其比例能够减少磁盘溢写次数,提高系统性能。
(5) mapred.inmem.merge.threshold属性,int类型,Reduce端使用
该属性设置启动合并输出和磁盘溢写过程的最大Map输出数量,默认为1000。由于Reduce端复制的中间值能够全部存在内存中可以获得最佳性 能。如果Reduce函数内存需求很少,可以将该属性设置为0,即没有阈值限制,由mapred.job.shuffle.merge.percent属 性单独控制溢写过程。
(6) mapred.job.reduce.input.buffer.percent属性,float类型,Reduce端使用
该属性设置在Reduce过程中用来在内存中保存Map输出的空间占整个堆空间的比例。Reduce阶段开始时,内存中的Map输出大小不能大于 这个值。默认为0.0,说明在Reduce开始前所有的Map输出都合并到硬盘中以便为Reduce提供尽可能多的内存。然而如果Reduce函数内存需 求较小,可以将该值设置为1.0来提升性能。
(7) tasktracker.http.threads属性,int类型,Map端使用
该属性设置集群中每个tasktracker用于将map输出传给reducer的工作线程的数量,默认是40。可以将其提高至40-50之间,能够增加并线线程数,提高集群性能。
发表评论
-
Hadoop TestDFSIO
2013-04-21 21:02 2433@VM [bigdata@bigdata hadoo ... -
Hadoop NNBENCH
2013-04-21 20:46 1631@VM [bigdata@bigdata hadoop]$ ... -
Hadoop 安装手册
2013-04-08 15:47 1194Hadoop 安装手册 软件准备 ... -
What do real life hadoop workloads look like
2012-09-10 15:52 833http://www.cloudera.com/blog/20 ... -
CDH4 HA 切换时间
2012-09-05 15:15 4373blocksize:35M filesize 96M zk-s ... -
CDH4 HA 切换
2012-09-05 10:51 1386HA 切换问题 切换时间太长。。。 copy 0 ... ... -
Hadoop CDh4 Standby HA 启动过程
2012-08-02 11:40 2863根据日志: StandBy NN启动过程 1.获得Active ... -
CDH4 HA test
2012-08-01 14:55 2647场景: NN HA 设置成功,HA切换客户端出现异 ... -
Hadoop TextOutput
2012-07-29 21:08 908TextOutputFormat 分隔符参数: mapredu ... -
Hadoop SteamXMLRecordReader
2012-07-28 23:59 705StreamXmlRecordReader 设置属性 str ... -
Hadoop NLineInputFormat
2012-07-28 23:52 1648NLineInputFormat 重写了splits 设置 ... -
KeyValueTextInputFormat
2012-07-28 23:40 954key/value 分割符 mapreduce.input. ... -
Hadoop 控制split尺寸
2012-07-28 23:08 1338三个参数决定Map的Split尺寸 1.mapred.min ... -
Setting up Disks for Hadoop
2012-07-22 12:13 874Setting up Disks for Hadoop He ... -
Upgrade hadoop need think about it
2012-07-21 17:17 884Compatibility When movin ... -
Hadoop 0.23 config differ from 0.20.205
2012-07-21 17:14 923http://hadoop.apache.org/common ... -
Hadoop hdfs block 状态
2012-07-15 13:37 7231.In Service -
Hadoop 配置不当引起集群不稳
2012-07-05 15:35 1026配置不当内容 资源配置不当:内存、文件句柄数量、磁盘空间 ... -
Hadoop管理-集群维护
2012-07-03 15:27 50051.检查HDFS状态 fsck命令 1)f ... -
Hadoop Ganglia Metric Item
2012-06-27 11:13 2026dfs.FSDirectory.files_delete ...
相关推荐
- **集群配置与优化**:根据业务需求合理配置Hadoop集群参数,以达到最佳性能。 - **故障恢复机制**:设计有效的故障恢复策略,确保在出现硬件故障时能够快速恢复服务。 - **安全性增强**:通过加密通信、访问控制等...
在Hadoop生态系统中,参数配置优化对于提升系统性能和稳定性至关重要。以下是一些关键的Hadoop配置参数及其详细解释: 1. **hadoop.tmp.dir**: 默认值为`/tmp`,应手动配置为一个专门的目录,尤其是当服务器有多...
HDFS相关的配置都在这里,如副本数(`dfs.replication`)、数据块大小(`dfs.blocksize`)、名称节点和数据节点的相关参数等。这些配置直接影响HDFS的性能和可靠性。 4. **yarn-site.xml** YARN是Hadoop的资源调度器...
4. 性能优化:实验可能包括如何调整Hadoop参数以优化性能,如修改Map和Reduce的任务数量,设置内存大小等。 三、Hadoop作业 作业通常涉及解决特定的问题或实现特定的功能,可能涵盖以下内容: 1. 数据分析:使用...
在分布式计算领域,Hadoop是一个不可或缺的...总结起来,Hadoop的默认配置文件是管理和优化Hadoop集群的基石,它们详细定义了HDFS、Hadoop核心、MapReduce和YARN的各项默认参数,对深入理解和使用Hadoop具有深远影响。
在本节中,我们主要关注与MapReduce数据流相关的属性,包括I/O属性和MapReduce属性这两类。 在开始介绍配置属性的优化之前,需要注意以下几点: 1. 部分属性除了配置文件之外还可以在MapReduce作业中动态修改。 2....
在安装Hadoop时,根据服务器的架构选择32位或64位版本,并进行相应的配置优化,比如调整内存分配、网络通信参数等,以提高Hadoop集群的性能。 一旦Hadoop集群运行稳定,就可以引入Hive进行数据分析平台的构建。Hive...
Python作为解释型语言,非常适合编写这类任务,因为可以轻松地处理文本数据流。 以下是使用Hadoop Streaming运行Python MapReduce程序的基本步骤: 1. **设置环境**:首先确保你已经安装了Hadoop,并配置好了...
Hadoop是一款开源的大数据处理框架,由Apache基金会开发,它主要设计用于分布式存储和处理海量数据。这个"hadop jar包.rar"文件很显然是包含了运行Hadoop相关程序所需的jar包集合,用户解压后可以直接使用,省去了...
总之,将OpenStack私有云与Hadoop MapReduce相结合能够有效提升企业的数据分析能力和业务灵活性。尽管实施过程中会遇到各种挑战,但只要合理规划并采取有效的解决方案,就能够充分发挥这些技术的潜力。
通过在本地配置MapReduce环境,开发者可以方便地进行程序调试和测试,而无需每次都在完整的Hadoop集群上执行。 首先,我们需要了解Hadoop MapReduce的基本概念。MapReduce是一种编程模型,用于大规模数据集的并行...
Pig,高级数据流语言等。 5. **Hadoop安装与配置**:学习Hadoop首先需要了解如何在多节点集群上安装和配置Hadoop环境,包括设置环境变量、配置集群文件、启动和停止服务等。 6. **数据分发与容错**:Hadoop通过...
在Hadoop的配置中,需要修改`core-site.xml`来定义HDFS的默认FS(文件系统),`hdfs-site.xml`来设置HDFS的相关参数,如副本数量和数据节点位置,以及`mapred-site.xml`来配置MapReduce的相关参数。此外,还需要确保...
Hadoop是大数据处理领域的重要工具,它提供了一个分布式文件系统(HDFS)和MapReduce计算框架,使得在大规模数据集上进行并行处理成为可能。Eclipse是一款流行的Java集成开发环境(IDE),对于Hadoop开发者来说,...
本文主要针对Hadoop相关知识进行总结,涵盖了大数据的基本特征、Hadoop组件、Hadoop集群部署、环境配置、HDFS操作、MapReduce工作流程、Zookeeper、YARN、数据仓库、Hive、Flume、Azkaban以及Sqoop等多个知识点。...
2. 配置文件:如core-site.xml, hdfs-site.xml, yarn-site.xml等,定义Hadoop集群的配置参数。 3. Eclipse插件:jb51相关的Eclipse插件文件,用于在IDE中集成Hadoop功能。 4. 示例代码:演示如何使用Hadoop API编写...
8. **性能优化**:研究如何通过调整Hadoop参数来提高数据处理速度,如增大MapReduce的槽位数量、优化数据块大小等。 9. **故障排查与维护**:学习如何监控Hadoop集群的运行状态,识别和解决常见的运行问题,确保...
理解Hadoop的配置参数至关重要,因为它们决定了Hadoop的行为和性能。 六、Hadoop实战 通过实际案例,可以更深入地理解和运用Hadoop。例如,使用Hadoop进行日志分析、用户行为分析、推荐系统等。在这些实践中,会...
Hadoop广泛应用于大数据处理场景,如日志分析、机器学习、实时流处理、数据挖掘等。其分布式处理能力使得处理PB级别的数据成为可能,帮助企业从海量数据中发现价值。 三、Hadoop底层实现原理 MapReduce是Hadoop的...