waid 发表于 2016-12-5 10:18:24

Hadoop的配置详解

Hadoop的配置详解
   大家经过搭建单节点、伪分布、完全分布模式的集群环境,基本上会用到以下几个配置,core-site.xm/hdfs-site.xml/mapred-site.xml.
   相信大家已经使用了其中的一些参数,下面我们来详细介绍一下各个配置中的参数,介绍的参数是大家可能用到的,当然还有很多没介绍到(学习hadoop不久,如果哪里错了,请提出来,谢谢拉)
  1.core-site.xml
   常用的设置
    fs.default.name    hdfs://mastername:9000
    hadoop.tmp.dir     /tmp/hadoop-${user.name}
   
    优化设置
    hadoop.logfile.size  
    hadoop.logfile.count
    fs.checkpoint.dir   ${hadoop.tmp.dir}/dfs/namesecondary
    fs.checkpoint.size
    fs.checkpoint.period
     
   
   (1)hadoop.tmp.dir  参数 /tmp/hadoop-${user.name}          临时目录设定
      hadoop.tmp.dir是hadoop文件系统依赖的基础设置,很多路径都依赖它,如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中,所以最好设置,而且设置到持久目录中。
       使用默认的路径会根据不同的用户名生成不同的临时目录
   (2)hadoop.native.lib            true                       使用本地hadoop库标识。
   (3)hadoop.http.filter.initializers     http服务器过滤链设置                         
   (4)hadoop.security.group.mapping      org.apache.hadoop.security.ShellBasedUnixGroupsMapping   组内用户的列表的类设定
   (5)hadoop.security.authorization      false            服务端认证开启
      如果开启在做任何事情之前,会现验证该帐号是否有权限。如果不开启,则不经过任何验证,所有用户拥有任何权限
  (6)hadoop.logfile.size               10000000                     日志文件最大为10M
      hadoop跑了很多任务之后,可以通过设置hadoop.logfile.size和hadoop.logfile.count来设定最大的日志大小和数量来自动清楚日志
  (7)hadoop.logfile.count       10               日志文件数量为10个
   (8)io.file.buffer.size         4096             流文件的缓冲区为4K  
       这是读写sequence file的buffer size,可以减少I/O次数,在大型的Hadoop cluster,建议使用更大的值  
   (9)fs.default.name  默认值是 file:///  The name of default file system
      默认的文件系统的名称
      默认的是设置单机配置,如果是伪分布式则设置成hdfs://localhost:9000,如果是完全分布式则设置成hdfs://mastername:9000
   (10)fs.checkpoint.dir
       默认值是${hadoop.tmp.dir}/dfs/namesecondary
       Secondary NameNode的镜像存储目录
       fs.checkpoint.period  默认是3600秒
       控制secondary namenode的checkpoint的时间间隔,如果距离上次checkpoint的时间大于这个参数,就会触发checkpoint.secondary namenode会把namenode的fsimage和editlog做snapshot.如果存取hadoop的次数频繁或为了减少重启namenode的时间,可以设置的小一点。
       fs.checkpoint.size
       默认值:67109964b
       如果hadoop非常忙碌,则editlog可能会在短时间内变的很大,fs.checkpoint.period的设定不一定会触发checkpoint。设置这个数,保证editlog超过改数也会checkpoint
   (11)io.skip.checksum.errors     false    校验出错后是抛出异常还是略过标识。True则略过。
   (12)io.compression.codecs        org.apache.hadoop.io.compress.DefaultCodec,
      org.apache.hadoop.io.compress.GzipCodec,
      org.apache.hadoop.io.compress.BZip2Codec,
       org.apache.hadoop.io.compress.SnappyCodec
      压缩和解压的方式设置
   (13)io.serializations   org.apache.hadoop.io.serializer.WritableSerialization   序例化和反序列化的类设定
   (14)fs.trash.interval 0            文件废弃标识设定,0为禁止此功能
       清掉垃圾的时间,默认0是不清除。所以在删除文件时要自己执行。
   (15)fs.file.impl             org.apache.hadoop.fs.LocalFileSystem    本地文件操作类设置
   (16)fs.hdfs.impl           org.apache.hadoop.hdfs.DistributedFileSystem    HDFS文件操作类设置
   
      
  2.hdfs-site.xml
     常用设置
     dfs.name.dir                   ${hadoop.tmp.dir}/dfs/name
     dfs.data.dir                   ${hadoop.tmp.dir}/dfs/data  
     dfs.permissions                true                 
     dfs.replication                3             
     dfs.block.size                 67108864 
     dfs.namenode.logging.level     info 
    
     优化设置    
      dfs.df.interval                 60000         
      dfs.client.block.write.retries    3           
      dfs.heartbeat.interval            3          
      dfs.balance.bandwidthPerSec      1048576    
      dfs.datanode.failed.volumes.tolerated      0       
   
   
    (1)dfs.namenode.logging.level      info        输出日志类型
    (2)dfs.secondary.http.address       0.0.0.0:50090  备份名称节点的http协议访问地址与端口                                                                                    
    (3)dfs.datanode.address             0.0.0.0:50010   数据节点的TCP管理服务地址和端口
    (4)dfs.datanode.http.address        0.0.0.0:50075    数据节点的HTTP协议访问地址和端口
    (5)dfs.datanode.ipc.address         0.0.0.0:50020    数据节点的IPC服务访问地址和端口
    (6)dfs.datanode.handler.count       3               数据节点的服务连接处理线程数
    (7)dfs.http.address                 0.0.0.0:50070    名称节点的http协议访问地址与端口
    (8)dfs.https.enable                 false            支持https访问方式标识
    (9)dfs.https.need.client.auth       false        客户端指定https访问标识
    (10)dfs.default.chunk.view.size     32768        浏览时的文件块大小设置为32K
    (11)dfs.datanode.du.reserved         0           每个卷预留的空闲空间数量
    (12)dfs.name.dir                   ${hadoop.tmp.dir}/dfs/name
      存贮在本地的名字节点数据镜象的目录,作为名字节点的冗余备份
    (13)dfs.web.ugi                  webuser,webgroup    Web接口访问的用户名和组的帐户设定
    (14)dfs.permissions              true                文件操作时的权限检查标识。
      控制读写权限,false不控制读写权限
    (15)dfs.data.dir             ${hadoop.tmp.dir}/dfs/data  数据节点的块本地存放目录
    (16)dfs.datanode.data.dir.perm  755          数据节点的存贮块的目录访问权限设置
    (17)dfs.replication              3            缺省的块复制数量
    (18)dfs.block.size               67108864          缺省的文件块大小为64M
    (19)dfs.df.interval                 60000         磁盘空间统计间隔为6秒
    (20)dfs.client.block.write.retries    3           块写入出错时的重试次数
    (21)dfs.heartbeat.interval            3          数据节点的心跳检测间隔时间
    (22)dfs.balance.bandwidthPerSec      1048576     启动负载均衡的数据节点可利用带宽最大值为1M
    (23)dfs.datanode.failed.volumes.tolerated      0       
     决定停止数据节点提供服务充许卷的出错次数。0次则任何卷出错都要停止数据节点
   
  3.mapred-site.xml
   
    常用设置
    mapred.job.tracker    mastername:9001
    
    优化设置
    mapred.tasktracker.map.tasks.maximum   
    mapred.tasktracker.reduce.tasks.maximum  
   
    (1)io.sort.mb       100       排序文件的内存缓存大小为100M
    (2)io.sort.record.percent    0.05    排序线程阻塞的内存缓存剩余比率
    (3)io.sort.spill.percent   0.80    当缓冲占用量为该值时,线程需要将内容先备份到磁盘中。
    (4)mapred.job.tracker      mastername:9001  作业跟踪管理器是否和MR任务在一个进程中
      The host and port that the MapReduce job tracker runs   at.  If "local", then jobs are run in-process as a single map
      and reduce task.
      默认值是local,单节点。Job 运行的host和端口号
    (5)mapred.job.tracker.http.address    0.0.0.0:50030  作业跟踪管理器的HTTP服务器访问端口和地址   
    (6)mapred.local.dir                   ${hadoop.tmp.dir}/mapred/local   MR的中介数据文件存放目录
    (7)mapred.system.dir                  ${hadoop.tmp.dir}/mapred/system  MR的控制文件存放目录
    (8)mapred.temp.dir                    ${hadoop.tmp.dir}/mapred/temp    MR临时共享文件存放区   
    (9)mapred.tasktracker.expiry.interval   600000           任务管理跟踪器不发送心跳的累计时间间隔超过600秒,则任务管理跟踪器失效
    (10)mapred.map.tasks                  2      每个作业缺省的map任务数为2
    (11)mapred.reduce.tasks               1      每个作业缺省的reduce任务数为1
    (12)mapred.jobtracker.taskScheduler.maxRunningTasksPerJob  作业同时运行的任务数的最大值    32
    (13)mapreduce.reduce.shuffle.read.timeout         180000   REDUCE任务等待map输出数据的总耗时是3分钟
    (14)mapred.tasktracker.map.tasks.maximum          2        任管管理器可同时运行map任务数为2
    (15)mapred.tasktracker.reduce.tasks.maximum       2        任管管理器可同时运行reduce任务数为2
    (16)mapred.task.tracker.http.address              0.0.0.0:50060  任务管理跟踪器的http服务器的地址和端口
    (17)mapred.output.compress                        false          作业的输出是否压缩 
    (18)mapred.compress.map.output                    false          Map的输出是否压缩
    (19)mapred.user.jobconf.limit                     5242880        Jobconf的大小为5M
    (20)mapred.heartbeats.in.second                   100            作业管理跟踪器的每秒中到达的心跳数量为100
页: [1]
查看完整版本: Hadoop的配置详解