设为首页 收藏本站
查看: 1299|回复: 0

[经验分享] hadoop配置含义(继续更新中)

[复制链接]

尚未签到

发表于 2015-7-11 10:54:03 | 显示全部楼层 |阅读模式
  
  自己添加:
  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的连接的机器地址,不配置时候为机器的名称 。

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




    final int volFailuresTolerated =
conf.getInt("dfs.datanode.failed.volumes.tolerated",
0);
String[] dataDirs = conf.getStrings(DataNode.DATA_DIR_KEY);
int volsConfigured=0;
if(dataDirs != null)
volsConfigured = dataDirs.length;
int volsFailed =  volsConfigured - storage.getNumStorageDirs();
if( volsFailed < 0 ||
volsFailed > volFailuresTolerated ) {
throw new DiskErrorException("Invalid value for volsFailed : "
+ volsFailed + " , Volumes tolerated : " + volFailuresTolerated);
}
  
  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会多次尝试,这个就是设置尝试的次数,超过这个次数会抛出异常 。
  ============================================================================================
  以下是转载自: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.name
NameNode 的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.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
  
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-85481-1-1.html 上篇帖子: Hadoop实战之二~ hadoop作业调度详解(1) 下篇帖子: Hadoop伪分布式与集群式安装配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表