hadoop 配置
转载自:http://blog.chinaunix.net/space.php?uid=22477743&do=blog&cuid=2046639 ;http://longmans1985.blog.163.com/blog/static/7060547520113652122555/
?
0. 版本?? ?0.19.2?1. hadoop cluster组成?? ?1.1. HDFS?? ??? ?1.1.1 Name Node (1台)?? ??? ?1.1.2 Secondary Name Node (1台, 可选)?? ??? ?1.1.3 Data Node (若干台)?? ?1.2. MR?? ??? ?1.2.1 Master [JobTracker] (1台)?? ??? ?1.2.2 Slave [TaskTracker] (若干台)?2. 配置文件?? ?2.1 hadoop-default.xml?? ??? ?hadoop集群的默认配置, 通常不需要修改这个配置文件.?? ?2.2 hadoop-site.xml?? ??? ?hadoop集群里面的机器个性化配置文件, 通常在这里指定机器的个性化配置.?3. 配置项?? ?3.1 fs.default.name?? ??? ?定义: Name Node的URI?? ??? ?描述: hdfs://hostname/?
?? ?3.2 mapred.job.tracker?? ??? ?定义: JobTracker的地址
?? ??? ?描述: hostname:port??? ?3.3 dfs.name.dir?? ??? ?定义: Name Node 保存元数据和事务日志的本地目录?? ??? ?描述: 逗号分隔的目录列表用于指定多份数据的冗余备份.??? ?3.4 dfs.data.dir?? ??? ?定义: Data Node 保存块文件的本地目录?? ??? ?描述: 逗号分隔的目录列表指定这些目录用于保存块文件.??? ?3.5 mapred.system.dir?? ??? ?定义: HDFS上MapReduce保存系统文件的目录.?? ??? ?描述:???? ?3.6 mapred.local.dir?? ??? ?定义: 保存MapReduce临时文件的本地目录?? ??? ?描述: 逗号分隔的目录列表用于指定多个目录同时做为临时数据空间
??? ?3.7 mapred.tasktracker.{map|reduce}.tasks.maximum?? ??? ?定义: TaskTracker上最多能够同时运行的map/reduce task数目.?? ??? ?描述: 默认map/reduce task数目各为2.?
?? ?3.8 dfs.hosts/dfs.hosts.exclude?? ??? ?定义: Data Node白名单/黑名单文件?? ??? ?描述:???? ?3.9 mapred.hosts/mapred.hosts.exclude?? ??? ?定义: MapReduce白名单/黑名单文件?? ??? ?描述:??? ?3.10 mapred.queue.names?? ??? ?定义: 队列名?? ??? ?描述: hadoop MapReduce系统默认有一个"default"的Job队列(pool).
??? 3.11 dfs.block.size
?? ???? 定义: hdfs默认块大小
?? ???? 描述: 默认是128M
??? 3.12 dfs.namenode.handler.count
?? ???? 定义: namenode同时和datanode通信的线程数
?? ???? 描述:?
??? 3.13 mapred.reduce.parallel.copies
?? ???? 定义: reducer同时从mapper上拉取的文件数
?? ???? 描述:?
??? 3.14 mapred.child.java.opts
?? ???? 定义: child jvm的堆大小
?? ???? 描述:
??? 3.15 fs.inmemory.size.mb
?? ???? 定义: reducer在合并map输出数据使用的内存空间
?? ???? 描述: 默认使用200M
??? 3.16 io.sort.factor
?? ???? 定义: 排序因子。同时合并的数据流的数量
?? ???? 描述:?
??? 3.17 io.sort.mb
?? ???? 定义: 排序使用的最大内存
?? ???? 描述:?
??? 3.18 io.file.buffer.size
?? ???? 定义: 读写文件的缓冲区大小
?? ???? 描述:?
??? 3.19 mapred.job.tracker.handler.count
?? ??? ?定义: jobtracker同时与tasktracker通信的线程数
?? ???? 描述:?
?? ?3.20 tasktracker.http.threads
?? ??? ?定义: tasktracker开http服务的线程数。用于reduce拉取map输出数据。
?? ???? 描述:
?
其中红色的配置为必须配置参数
?
参数取值备注fs.default.nameNameNode?的URI。hdfs://主机名/dfs.hosts/dfs.hosts.exclude许可/拒绝DataNode列表。如有必要,用这个文件控制许可的datanode列表。dfs.replication默认: 3数据复制的分数dfs.name.dir举例:/home/username/hadoop/namenode
默认:/tmp
当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。dfs.data.dir举例:/home/username/hadoop/datanode
默认: /tmp
当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。???mapred.system.dirMap/Reduce框架存储系统文件的HDFS路径。比如/hadoop/mapred/system/?。这个路径是默认文件系统(HDFS)下的路径, 须从服务器和客户端上均可访问。mapred.local.dir本地文件系统下逗号分割的路径列表,Map/Reduce临时数据存放的地方。多路径有助于利用磁盘i/o。mapred.tasktracker.{map|reduce}.tasks.maximum某一TaskTracker?上可运行的最大Map/Reduce任务数,这些任务将同时各自运行。默认为2(2个map和2个reduce),可依据硬件情况更改。mapred.job.trackerJobTracker?的主机(或者IP)和端口。主机:端口?。mapred.hosts/mapred.hosts.exclude许可/拒绝TaskTracker列表。如有必要,用这个文件控制许可的TaskTracker列表。???hadoop.job.history.user.location默认:mapred.output.dir/_logs/history
也可以设置为none 来停用
作业的历史文件记录目录?
conf/slaves 写入全部的slave的机器名或者IP
?
nameNode记住每个文件被映射成的 blockId。每个blockId对应的block会被复制到不同的机器上多余一份。
hadoop 默认的block 是 64MB
?
添加:
dfs.datanode.du.reserved :表示在datanode对磁盘写时候,保留多少非dfs的磁盘空间,从而避免dfs将所在的磁盘写满 ,但在0.19.2中该参数存在bug 。
I introduced "ipc.server.listen.queue.size" which defines how many calls per handler are allowed in the?queue. The default is wtill 100. So there is no change for current users.?? 启动rpc服务时候每个hadler处理栈中最多的请求数目,多了的client就需要等待 。
dfs.datanode.simulateddatastorage???? https://issues.apache.org/jira/browse/HADOOP-1989 ; 该节点启动是否是伪分布式系统,用于调试
slave.host.name? :各个datanode的节点名称,一般各个机器配置成自己的ip,用于在web页面中hdfs执行具体的datanode的连接地址,在web管理页面的mapreduce中为指向具体map(reduce)task的连接的机器地址,不配置时候为机器的名称 。
?
另:
所有默认配置:
core:http://hadoop.apache.org/common/docs/current/core-default.html
hdfs:http://hadoop.apache.org/common/docs/current/hdfs-default.html
mapred:http://hadoop.apache.org/common/docs/current/mapred-default.html