第一部分:core-site.xml
•core-site.xml为Hadoop的核心属性文件,参数为Hadoop的核心功能,独立于HDFS与MapReduce。
参数列表
•fs.default.name
•默认值 file:///
•说明:设置Hadoop namenode的hostname及port,预设是Standalone mode,如果是伪分布式文件系统要设置成
hdfs://localhost:9000,如果使用集群模式则配置为 hdfs://hostname:9000
•hadoop.tmp.dir
•默认值/tmp/hadoop-${user.name}
•会在tmp下根据username生成不同的目录
•fs.checkpoint.dir
•默认值${hadoop.tmp.dir}/dfs/namesecondary
•Sencondary NameNode 镜像存储目录
•fs.checkpoint.period
•默认值: 3600(秒)
• 控制 secondary namenode 的 checkpoint 时间间隔。如果距离上次 checkpoint 的时间大于这个参数的设定,就会触发 checkpoint。secondary namenode 會把 namenode 的 fsimage 和 editlog 做 snapshot。如果存取 Hadoop 的次数频繁或为了減少重起 namenode 的 downtime,可以把這个值设小一点。
•fs.checkpoint.size
•默认值67108864(byte)
•如果 Hadoop 非常的忙碌,editlog 可能会在短时间內变的很大,fs.checkpoint.period 的设定不见得可以完全预测这个状况,所以保险的做法会多设定这个值,以保证当数据大到超过 fs.checkpoint.size 的值也会触发 checkpoint。
•io.file.buffer.size
•默认值 4096
•這是读写 sequence file 的 buffer size, 可减少 I/O 次数。在大型的 Hadoop cluster,建议可设定为 65536 到 131072。
•ipc.client.connection.maxidletime
•默认值 10000(毫秒)
•设定 Hadoop client 连接時最大的闲置,默认是是 10 秒。如果 Hadoop cluster 的网络联系不稳,可以把这个值设到 60000(60秒)
•ipc.server.tcpnodelay
•默认值 false
•在 Hadoop server 是否启动 Nagle’s 算法。设 true 会 disable 这个演算法,关掉会减少延迟,但是会增加小数据包的传输。server site 不太需要这定这个值。
•hadoop.security.authorization
•默认值 false
•是不是要开启 账号验证机制,开启之后 Hadoop 在执行任何动作之前都会先确认是否有权限。详細的权限设定会放在 hadoop-policy.xml 裡。例如要让 fenriswolf 这个 account 及 mapreduce group 可以 submit M/R jobs,要设定security.job.submission.protocol.acl
•hadoop.security.authentication
•默认值 simple
• simple 表示沒有 authentication,Hadoop 會用 system account 及 group 來控管q权限。另外可以指定為 kerberos,这部分相对比較复杂,要有一個 kerberos server 并产生 account keytab,在执行任何操作前 client 要先用 kinit 指令對 kerberos server 認證,之後的任何操作都是以 kerberos account 來執行。
•fs.trash.interval
•默认值 0(分)
•清掉垃圾筒的时间。预设是不清, 所以在刪除文件时要自己执行
•hadoop.native.lib
•默认值 true
• 默认 Hadoop 会去找所有可用的 native libraries 并自动 load 进來使用,例如压缩类的 libraries 像 GZIP, LZO 等等。
第二部分:hdfs-site.xml
参数列表
•dfs.block.size
•默认值67108864(字节)
•默认每個 block 是 64MB。如果確定存取的文件块都很大可以改為 134217728(128MB)。Client 也可自行决定要使用的 block size 而不需要更改整個 cluster 的设定。
•dfs.safemode.threshold.pct
•默认值 0.999f
• Hadoop 启动时会进入 safe mode,也就是安全模式,這时是不能写入数据的。只有当99.9% 的 blocks 达到最小的 dfs.replication.min 数量(默认是3)才会离开safe mode。在 dfs.replication.min 设的比较大或 data nodes 数量比较多时会等比较久。
•dfs.namenode.handler.count
•默认值 10
•设定 namenode server threads 的数量,这些 threads 會用 RPC 跟其他的 datanodes 沟通。当 datanodes 数量太多时会发現很容易出現 RPC timeout,解決方法是提升网络速度或提高这个值,但要注意的是 thread 数量多也表示 namenode 消耗的内存也随着增加
•dfs.datanode.handler.count
•默认值 3
• 指定 data node 上用的 thread 数量。
•dfs.datanode.max.xcievers
•默认值 256
•这个值是指定 datanode 可同時处理的最大文件数量、
•dfs.datanode.du.reserved
•默认值 0
•默认值表示 data nodes 会使用整个 磁盘,写满之后会导致无法再写入 M/R jobs。如果还有其他程式共用这些目录也会受到影响。建议保留至少 1073741824(1G) 的空间。
第三部分:mapred-site.xml
参数列表
•io.sort.mb
•默认值100
•缓存map中间结果的buffer大小(in MB)
•io.sort.record.percent
•默认值 0.05
•io.sort.mb中用来保存map output记录边界的百分比,其他缓存用来保存数据
•io.sort.spill.percent
•默认值0.80
•map开始做spill操作的阈值
•io.sort.factor
•默认值 10
•做merge操作时同时操作的stream数上限。
•min.num.spill.for.combine
•默认值3
•combiner函数运行的最小spill数
•mapred.compress.map.output
•默认值 false
•map中间结果是否采用压缩
•mapred.map.output.compression.codec
•org.apache.hadoop.io.compress.DefaultCodec
•min.num.spill.for.combine
•默认值3
•combiner函数运行的最小spill数
•mapred.compress.map.output
•默认值 false
•map中间结果是否采用压缩
•mapred.map.output.compression.codec
•org.apache.hadoop.io.compress.DefaultCodec
•mapred.reduce.parallel.copies
•默认值5
•每个reduce并行下载map结果的最大线程数
•mapred.reduce.copy.backoff
•默认值 300
•reduce下载线程最大等待时间(in sec)
•io.sort.factor
•默认值10
•org.apache.hadoop.io.compress.DefaultCodec
•mapred.job.shuffle.input.buffer.percent
•默认值0.7
•用来缓存shuffle数据的reduce task heap百分比
•mapred.job.shuffle.merge.percent
•默认值 0.66
•缓存的内存中多少百分比后开始做merge操作
•mapred.job.reduce.input.buffer.percent
•默认值0.0
•sort完成后reduce计算阶段用来缓存数据的百分比
相关推荐
Hadoop作业调优是提升大数据处理效率的关键环节,通过对Hadoop MapReduce框架中的参数进行精细调整,可以显著改善作业的性能。以下是对标题和描述中涉及的参数及原理的详细说明: 1. **MapTask运行内部原理** - **...
标题《Hive及Hadoop作业调优》与描述《阿里巴巴内部hive优化经验文档》指明了本文档的核心内容,它涉及到了在大数据处理领域内,如何针对Hive以及Hadoop作业进行优化的详细方法和经验分享。标签“hive”, “hadoop”...
3. **策略生成**:基于数据分析结果,构建一系列参数调整策略,每个策略对应特定的集群状态或作业类型。 4. **实时调整**:当新的作业提交至集群时,策略感知层根据作业特征和当前集群状态,自动选择最合适的策略,...
**负载**:用户可以通过配置文件或命令行参数向Map-Reduce作业添加自定义的负载,如设置Map或Reduce任务的数量,调整数据的分区策略等,以适应不同规模的数据处理需求。 **作业配置**:作业配置是控制Map-Reduce...
- **性能调优**:通过对Hadoop集群的各项参数进行调整,以及优化MapReduce作业的设计,可以显著提高Hadoop集群的处理效率。 - **数据本地性**:Hadoop作业调度时优先选择与数据节点距离较近的任务执行器,可以减少...
9. **Hadoop配置与调优**:理解和调整Hadoop的配置参数对于优化性能至关重要,如Map和Reduce任务的数量、内存分配、磁盘I/O等。 10. **实战案例**:书中可能会包含实际项目中的应用示例,帮助读者理解如何在实际...
- 性能调优:学习如何通过调整参数和优化代码来提升Hadoop集群的性能。 通过深入学习和理解Hadoop源码,你将能够更好地驾驭这个强大的大数据处理工具,解决实际项目中的问题,甚至为Hadoop社区贡献自己的改进和...
9. **性能优化**:探讨如何调整Hadoop参数以提升系统性能,包括数据块大小的设定、内存分配、网络调优等。 10. **故障诊断与处理**:提供解决Hadoop运行中可能出现的问题的方法,帮助用户进行故障排查。 通过阅读...
7. **Hadoop优化**:讨论性能调优策略,包括配置参数调整、数据本地化、作业并行度控制等。 8. **Hadoop扩展组件**:介绍Hadoop生态中的其他组件,如HBase(分布式数据库)、Hive(数据仓库工具)、Pig(数据分析...
在大数据处理领域,Hadoop MapReduce 是一个至关重要的组件,它为海量数据的...通过研究这些代码,你可以学习到如何处理Hadoop集群上的大规模数据,如何编写高效的Mapper和Reducer,以及如何设置和调优MapReduce作业。
通过上述知识点的学习,读者可以全面了解Hadoop的基本概念、安装配置方法、数据处理流程以及性能调优技巧。此外,本书还提供了丰富的实战案例,帮助读者将理论知识应用于实际场景中。掌握这些内容后,无论是从事...
- **性能调优**:根据实际负载情况调整HDFS副本数、Block大小、YARN内存分配等参数。 - **容错性**:通过设置HA、故障切换策略,提高系统的健壮性。 6. **总结** 64位Hadoop2.4.1的出现,为大数据处理带来了更高...
源代码中包含的例子可能涉及到如何调整参数、优化数据块大小、选择合适的压缩算法等,以提升Hadoop的运行效率。 总的来说,"tomwhite-hadoop-book-src"这个压缩包内的源代码是学习Hadoop理论知识与实践经验的宝贵...
性能分析的目标是识别Hadoop作业中的瓶颈,这可能来自网络延迟、磁盘I/O、CPU利用率或内存限制等。通过对任务执行日志的分析,我们可以找出导致性能下降的因素。 3. **监控工具**: 在Hadoop生态系统中,有多种...
通过阅读这本书,你可以深入理解Hadoop的工作原理,包括HDFS的数据块管理、MapReduce的作业调度等,从而更好地进行二次开发和性能调优。 接下来,我们转向Hadoop生态中的其他重要组件。Hive是基于Hadoop的数据仓库...