zoukankan      html  css  js  c++  java
  • hadoop配置含义(继续更新中)

    自己添加:

    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

     

     

     

  • 相关阅读:
    第一节,Django+Xadmin打造上线标准的在线教育平台—创建用户app,在models.py文件生成3张表,用户表、验证码表、轮播图表
    Tensorflow 错误:Unknown command line flag 'f'
    Python 多线程总结
    Git 强制拉取覆盖本地所有文件
    Hive常用函数 傻瓜学习笔记 附完整示例
    Linux 删除指定大小(范围)的文件
    Python 操作 HBase —— Trift Trift2 Happybase 安装使用
    梯度消失 梯度爆炸 梯度偏置 梯度饱和 梯度死亡 文献收藏
    Embedding 文献收藏
    深度学习在CTR预估中的应用 文献收藏
  • 原文地址:https://www.cnblogs.com/serendipity/p/2151031.html
Copyright © 2011-2022 走看看