您现在的位置 >> Hadoop教程 >> Hadoop实战 >> 专题  
 

hadoop配置含义(继续更新中)

【作者:Hadoop实战专家】【关键词:配置 文件 数据 参数 TaskTracker 】 【点击:43563次】【2013-05-2】
:各个datanode的节点名称,一般各个机器配置成自己的ip,用于在web页面中hdfs执行具体的datanode的连接地址,在web管理页面 的mapreduce中为指向具体map(reduce)task的连接的机器地址,不配置时候为机器的名称 。hadoop集群的默认配置, 通常不需要修改这个配置文件.  

相关热门搜索:

大数据标签:hadoop hdfs mapreduce bigdata

问题导读:
1、Hadoop高效配置,哪些是必要的?

2、各个参数又是什么意思 ?

自己添加:
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    参考地址 ; 该节点启动是否是伪分布式系统,用于调试

slave.host.name  :各个datanode的节点名称,一般各个机器配置成自己的ip,用于在web页面中hdfs执行具体的datanode的连接地址,在web管理页面 的mapreduce中为指向具体map(reduce)task的连接的机器地址,不配置时候为机器的名称 。

dfs.datanode.failed.volumes.tolerated  :datanode允许磁盘损坏的个数 ,datanode在启动时候会使用dfs.data.dir下配置的文件夹(用于存储block的),若是有一些不可以用且个数>上面配置的那个 值,这启动失败,代码见:org.apache.hadoop.hdfs.server.datanode.FSDataset代码的980-997 ,如下:

1. final int volFailuresTolerated =

2.       conf.getInt("dfs.datanode.failed.volumes.tolerated",

3.                   0);

4.

5.     String[] dataDirs = conf.getStrings(DataNode.DATA_DIR_KEY);

6.

7.     int volsConfigured=0;

8.

9.     if(dataDirs != null)

10.        volsConfigured = dataDirs.length;

11.

12.     int volsFailed =  volsConfigured - storage.getNumStorageDirs();

13.

14.     if( volsFailed < 0 ||

15.         volsFailed > volFailuresTolerated ) {

16.         throw new DiskErrorException("Invalid value for volsFailed : "

17.                 + volsFailed + " , Volumes tolerated : " + volFailuresTolerated);

18.     }

复制代码

dfs.blockreport.intervalMsec

Datanode会定期将当前该结点上所有的BLOCK信息报告给Namenode,参数dfs.blockreport.intervalMsec就是控制这个报告间隔的参数。

dfs.blockreport.initialDelay
和上一个参数一起使用的,datanode启动后第一次报告自己的block信息的时间是在(0,$(dfs.blockreport.initialDelay ))之间的一个随机数 initTime,然后从initTime(不同datanode上的这个随即肯定是不一样的)开始每隔dfs.blockreport.intervalMsec ,该datanode会向namenode报告自己的所有block的信息。

如果没有initTime,多有datanode都从启动的那一刻开始发,这样会造成大量数据发往nn,造成堵塞 。是以用此参数来控制 。

job运行中可以得到的一些参数:

mapred.job.id                     作业ID,如job_201104121233_0001

mapred.tip.id                      任务ID,如task_201104121233_0001_m_000003

mapred.task.id                    任务尝试ID,如attempt_201104121233_0001_m_000003_0

mapred.task.partition          作业中任务的序号,如3

mapred.task.is.map             此任务是否为map任务,如true

mapred.job.queue.name    该任务所属的队列,一般是对于不同用户的client将该属性值写在配置文件中。

dfs.client.max.block.acquire.failures
DFSClient在读取hadoop上的文件时候,会从datanode上读取具体的block信息,如果读取的节点失败(socket无法连接等等),client会多次尝试,这个就是设置尝试的次数,超过这个次数会抛出异常 。

Hadoop版本
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.name NameNode 的URI。
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.dir Map/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.tracker JobTracker 的主机(或者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

大数据系列相关文章:

最新评论
冷雨寒池2014-09-09 11:08:38
前端 不是js吗
额外2014-09-08 08:09:18
相比x86,Isilon支持Hadoop有五大优势 RPy9yxY
hadoop-bigdata-freshairpeng2014-09-07 05:56:48
你是不是没配置哦
长风大侠2014-09-07 03:32:02
我就不懂 年薪没在10W 以下
pyinx2014-09-07 12:21:31
发表了博文 《hadoop伪分布环境》 - 安装前准备软件 jdk-6u24-linux-xxx.bin hadoop-1.1.2.tar.gz 关闭防火墙 service iptables st http://t.cn/8sIUT2Z
跟随下雨天2014-09-06 07:56:39
Hadoop教程
seraphliu2014-09-06 04:43:36
2.熟练运用开源软件包(Spring/Hibernate/JGroups/Struts);
雪舞飞扬2014-09-05 05:19:12
。。。。。
小强2014-09-04 10:04:12
hadoop 常见错误及解决方案: 1:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out Answer: 程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)... http://t.cn/8FHFUBi
土豆2014-09-04 10:17:34
【Hadoop、Spark、HBase与Redis的适用性讨论(全文)】 RPCgtG2 (分享自@无觅阅读)
 
  • Hadoop生态系统资料推荐