首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

Hadoop功课调优参数调整及原理

2014-01-21 
Hadoop作业调优参数调整及原理高清视频地址:http://v.gotomao.com/video-search?qhadoop第一部分:core-si

Hadoop作业调优参数调整及原理
高清视频地址:http://v.gotomao.com/video-search?q=hadoop第一部分: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计算阶段用来缓存数据的百分比

热点排行