Hadoop集群部署配置文档(第2部分)
发布日期:2021-11-04 22:04:18 浏览次数:5 分类:技术文章

本文共 17080 字,大约阅读时间需要 56 分钟。

1. CentOS配置

1.1 同步时间

1) 配置时间同步

crontab -e

   5 2 * * * /usr/sbin/ntpdate cn.pool.ntp.org && /sbin/hwclock -w

2) 手动同步时间

/usr/sbin/ntpdate cn.pool.ntp.org

1.2 关闭防火墙

1.3 调整openfiles

1) 查看: ulimit -a

2) 修改: echo 65535 > /proc/sys/fs/file-max 

3) vi /etc/security/limits.conf

    增加 * - nofile  65535  

4) vi /etc/sysctl.conf

    增加fs.file-max =  65535 

1.4 修改主机名

    注意主机名不能有下划线,否则启动hadoop会报错

    参考命令:   

     修改hostname:#hostname  nn.xxxx.com 

     修改hostname:#vi /etc/sysconfig/network

                    hostname=nn.xxxx.com 

                    删除127.0.0.1的映射

     增加host:#vi /etc/hosts

               10.1.55.64 nn.xxxx.com nn.xxxx.com

     重启网卡:#/etc/init.d/network restart

1.5 修改/etc/hosts

10.2.55.64   nn.xxxx.com

10.2.55.68   snn.xxxx.com

10.2.55.64   jt.xxxx.com

10.2.55.60   dn60.xxxx.com

10.2.55.61   dn61.xxxx.com

10.2.55.62   dn62.xxxx.com

10.2.55.63   dn63.xxxx.com

10.2.55.65   dn65.xxxx.com

10.2.55.66   dn66.xxxx.com

10.2.55.67   dn67.xxxx.com

1.6 创建hadoop用户与目录

1) 增加hadoop用户

       groupadd hadoop

       useradd hadoop -G hadoop

2) 创建hadoop使用的目录

    mkdir  /opt/hadoop

mkdir  /opt/hadoop/dfs

mkdir  /opt/hadoop/dfs/name

mkdir  /opt/hadoop/dfs/namesecondary

mkdir  /opt/hadoop/logs

mkdir  /opt/hadoop/tmp

mkdir  /opt/hadoop/conf

mkdir  /var/lib/hadoop-0.20/

mkdir  /var/lib/hadoop-0.20/cache/

3) 修改目录权限

       chown hadoop:hadoop  /usr/local/hadoop-0.20.2-cdh3u3  -R

       chown hadoop:hadoop  /opt/hadoop -R

       chown hadoop:hadoop  /var/lib/hadoop-0.20/ -R

       chmod 700 -R /opt/hadoop

1.7 ssh配置

   su - hadoop

   ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

   cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

   需要将密钥分发到所有节点

2. Hadoop配置

2.1 hadoop-env.sh的设置

1) 设置jdk

export JAVA_HOME=/usr/java/jdk1.6.0_31x64

2) 设置log目录

    export HADOOP_LOG_DIR=/opt/hadoop/logs

2.2 core-site.xml的设置

1) 参数fs.default.name

默认值

file:///

说明

设定hadoop namenode的hostname和port,默认是standalone mode,如果是pseudo-distributed mode要指定为hdfs://localhost:9000,在cluster mode,指定为hdfs://hostname:9000。Hadoop是依据hostname去做ip binding,所以需要注意/etc/hosts文件中hostname不能对应127.0.0.1,要对应实际的IP,为了安全可以对应到内网IP。

生产环境配置值

hdfs://nn.xxxx.com:9000

  Tip:linux下使用netstat -nl 可以查看ip和端口的binding状态。 

2) 参数fs.trash.interval

默认值

0

说明

清空垃圾桶的时间间隔,单位分钟。默认0表示hadoop不自动清空垃圾桶。

生产环境配置值

4320(表示3天)

Tip:在为0时,需要在hadoop删除命令中指定不放入垃圾箱,直接删除hadoop fs -rm -skipTrash、hadoop fs -rmr -skipTrash

    或执行hadoop fs -expunge清空垃圾箱。-skipTrash会导致误删除无法挽回,忘记执行-expunge会导致空间不能及时回收。

    Hadoop的垃圾回收机制仅适用于命令行。通过eclipse的hadoop插件删除的文件不会放入垃圾箱。

    垃圾箱目录/user/${user.name}/.Trash,恢复时,直接将要恢复的文件copy回去即可。

3) 参数hadoop.tmp.dir

默认值

/tmp/hadoop-${user.name}

说明

Hadoop存放临时文件的目录,会根据user帐户建不同的子目录,好多目录参数的默认值都以它为根路径。默认放在/tmp目录,一般centos会enable tmpwatch,tmpwatch会定期把/tmp下没有用到的文件删除,如果不希望这样做,可以disable tmpwatch或把hadoop tmp目录指到其他目录。

生产环境配置值

/opt/hadoop/tmp

  Tip: 

4) 参数fs.checkpoint.dir

默认值

${hadoop.tmp.dir}/dfs/namesecondary

说明

secondary namenode存放文件的目录多个用“,”隔开设定多个的好处是Hadoop会把temp image

Filesf分别写到指定的多个目录,以免其中一份资料损坏。seconary namenode不一定需要,甚至hadoop cluster可以 不需要启动secondary namenode。但是重启namenode 时也会做file merge,edit文件大时,重启的时间会非常长为了减少downtime,建议在production site都会启动secondary namenode,而且要起在namenode 不同的机器以保证namenode硬盘坏掉时,可以secondary namenode上把资料备份回来。

生产环境配置值

/opt/hadoop/dfs/namesecondary

    Tip: 

5) 参数fs.checkpoint.period

默认值

3600(秒)

说明

控制secondary namenodecheckpoint时间间隔如果距离上次checkpoint的时间大于这个参数设定的值,就会触发checkpoint。secondary namenode 会把namenode 的 fsimage 和 editlog 做 snapshot。如果存取 Hadoop 的次数频繁或为了减少重启namenode 的 downtime,可以把这个值设小一些。

生产环境配置值

1800

    Tip: 

6) 参数fs.checkpoint.size

默认值

67108864(byte)

说明

如果 Hadoop 非常的忙碌,editlog可能会在短时间内长的很大,fs.checkpoint.period的设定不见得可以完全预测这个状况,所以保险的做法会多设置这个值以保证文件超过fs.checkpoint.size的值也会触发checkpoint。

生产环境配置值

保持默认

    Tip: 

7) 参数io.file.buffer.size

默认值

4096(byte)

说明

Hadoop读写文件的buffer size, 可減I/O次数建议设置为65536 到 131072。

生产环境配置值

65536(64KB)

    Tip: 

8) 参数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.DeflateCodec,

org.apache.hadoop.io.compress.SnappyCodec

说明

压缩算法,默认支持default、gzip、bzip2、deflate、snappy。需要增加lzo的支持

生产环境配置值

org.apache.hadoop.io.compress.DefaultCodec,

org.apache.hadoop.io.compress.GzipCodec,

org.apache.hadoop.io.compress.BZip2Codec,

org.apache.hadoop.io.compress.DeflateCodec,

org.apache.hadoop.io.compress.SnappyCodec,

com.hadoop.compression.lzo.LzoCodec,

com.hadoop.compression.lzo.LzopCodec

    Tip: 

9) 参数io.compression.codec.lzo.class

默认值

说明

使用lzo时,需要配置Lzo压缩类

生产环境配置值

com.hadoop.compression.lzo.LzoCodec

    Tip: 

10) 参数hadoop.security.authorization

默认值

false

说明

是不是开放service-level 帐号验证机制,开启后Hadoop在执行任何动作之前都会先确认是否有权限。详细的权限设定放在hadoop-policy.xml里。

生产环境配置值

true

Tip:比如要让fenriswolf这个account以及mapreduce 这个group可以submit M/R jobs,

     要设定security.job.submission.protocol.acl

11) 参数hadoop.security.authentication

默认值

simple

说明

Simple表示没有authentication,hadoop会用system account以及group来控制权限另外可以设定为kerberos比较复杂,需要专门配置

生产环境配置值

保持默认

    Tip: 

12) 参数hadoop.security.groups.cache.secs

默认值

300000

说明

缓存从hadoop.security.group.mapping 获取的组列表的超时时间,超过此时间就重新获取,单位毫秒

生产环境配置值

保持默认

    Tip: 

13) 参数webinterface.private.actions

默认值

false

说明

设置为true时,JT和NN的web页面将要显示动作按钮,比如:kill job, delete file等,公开环境下一定要关闭改特性,默认关闭。如果用户正确认证后可以使能改参数。

生产环境配置值

保持默认

    Tip: 

14) 参数hadoop.http.filter.initializers

默认值

说明

生产环境配置值

org.apache.hadoop.http.lib.StaticUserWebFilter

    Tip: 另外的选择org.apache.hadoop.security.AuthenticationFilterInitializer

15) 参数hadoop.http.authentication.type

默认值

simple

说明

生产环境配置值

保持默认

    Tip: 

16) 参数hadoop.http.authentication.signature.secret.file

默认值

${user.home}/hadoop-http-auth-signature-secret

说明

The signature secret for signing the authentication tokens. If not set a random secret is generated at startup time. The same secret should be used for JT/NN/DN/TT configurations.IMPORTANT: This file should be readable only by the Unix user running the daemons.

生产环境配置值

保持默认

    Tip:需要在${user.home}建立hadoop-http-auth-signature-secret并且设置为仅读。

17) 参数hadoop.http.authentication.simple.anonymous.allowed

默认值

true

说明

当hadoop.http.authentication.type=simple时,表明是否允许匿名用户访问。默认允许

生产环境配置值

保持默认

    Tip: 

18) 参数topology.script.file.name

默认值

N/A

说明

实现hadoop的Hadoop Rack Awareness。指定一个可执行的脚本文件,输入为一组hostname或ip,返回机架名清单。默认情况下,hadoop会认为所有节点在同一机架

生产环境配置值

目前未使用

Tip: 脚本python示例,其他语言也可。

参考:

19) 参数hadoop.native.lib

默认值

true

说明

默认hadoop会将所有可用的native libraries自动load进来使用,例如压缩类库GZIP、LZO等等。Debug时,设置为false会将native换为相应的java实现执行,方便调试。没有相应的java实现也会加载native libraries。

生产环境配置值

保持默认值

Tip:LZO没有默认的java实现。

2.3 hdfs-site.xml的设置

2.3.1 Namenode相关

1) 参数dfs.name.dir

默认值

${hadoop.tmp.dir}/dfs/name

说明

指定存取fsimage目录,fsimage非常重要,如果损毁将无法访问hdfs,意味着数据丢失。不建议放在 ${hadoop.tmp.dir}目录下生产环境要用“,指定多个目录,Hadoop 会复制fsimage的资料到所有的目录下,如果其中一个损坏,hadoop会自动使用正常的目录并把正确的文件复制到损坏的目录下。写多个目录时是原子性的。需要注意多个目录时,最后的目录名不能相同。

生产环境配置值

/opt/hadoop/dfs/name,/data1/hadoop/dfs/name1(在nfs上)考虑是否需要增加目录

  Tip: WEB UI会显示状态,正常Active,损坏时为Inactive

  

Cdh3u3存在一个BUG:

— Data corruption may occur when storage paths have same final name element

When the NameNode is configured with multiple storage directories, some rare failure scenarios may result in a corrupt namespace if the final elements in the path names are the same, such as /data/1/nn and/data/2/nn.

Bug: 

Severity: Medium

Resolution: Fixed in CDH3u5.

Workaround: Rename the directories so that the final element of the path is different for each; for example, do not use /data/1/nn and /data/2/nn but instead use /data/1/nn1 and /data/2/nn2).

2) 参数dfs.name.edits.dir

默认值

${dfs.name.dir}

说明

存储editlog的根目录,默认与fsimage一样

生产环境配置值

保持默认

  Tip: 

3) 参数dfs.replication

默认值

3

说明

Blocks副本数量,测试环境可以设置为1。Client 端也可以根据使用状况指定该值。如果所设置的值小于 dfs.replication,在执行hadoop fsck指令时会看到该block被标注为Under-Replicated Blocks备份机制请查阅其他文档。

生产环境配置值

3

  Tip: 

4) 参数dfs.block.size

默认值

67108864(64MB)

说明

每个block的大小,默认为64MB。建议修改为134217728(128MB)。Client可自行決定要使用的block size而不需要更改整cluster的设定

生产环境配置值

134217728(128MB)

  Tip: 

5) 参数dfs.safemode.threshold.pct

默认值

0.999f

说明

Hadoop在启动时,预设会进入safe mode,也就是仅读模式,这时是不能写入文件的。只有99.9%blocks 达到最小的 dfs.replication.min数量(默认是 1)才会离开safe mode。dfs.replication.min设置比较大或data nodes数量较多时会等待较长的时间大于1表示永远不离开safe mode,Hadoop cluster需要做migration很好用,即可继续读取服务,又可防止使用者写入文件导致migration不完全。等于表示不启动safe mode。在local测试时会非常方便,不然常常会需要等待一段时间或需要执行hadoop dfsadmin -safemode leave才能离开安全模式。

生产环境配置值

1.0f

  Tip: 

6) 参数dfs.hosts

默认值

N/A

说明

默认情况下只要datanodeshdfs-site.xml指定namenode,mapred-site.xml指定jobtracker的地址就可以加入这个cluster。但是为了安全考虑,系统管理员需要决定仅有特定的nodes可以加入。该值指定一个文件的位置,例如 : /etc/hadoop/conf/dfs-hosts,在该文件中列出所有需要连接namenodenode清单不在清单中的node没有权限。在 mapred-site.xml也有类似的值mapred.hosts指定可以连接jobtrackernode清单

生产环境配置值

/opt/hadoop-conf/datanode-include

  Tip: 

7) 参数dfs.hosts.exclude

默认值

N/A

说明

下线datanode节点时使用,具体参考其他文档说明。

生产环境配置值

/opt/hadoop-conf/datanode-exclude

  Tip:hadoop dfsadmin -refreshNodes

8) 参数dfs.support.append

默认值

true

说明

指定是否可在HDFS原有文件内容之后加入新内容。在 Cloudera 及 MapR 的版本都已经加入该功能使用flume需要设置为true。

生产环境配置值

true

  Tip: 

9) 参数dfs.namenode.handler.count

默认值

10

说明

设定namenode server threads的数量,这些threads使用RPC 跟其他的 datanodes通信。但datanodes数量太多时会发现很容易出现RPC timeout,解决方法是提高网速或调高这个值,但要注意的是thread数量多也表示namenode使用内存也随着增加。在这篇文章中提到900个nodes 只需要设为40,也有人说100个node需要100个thread

生产环境配置值

目前不需要修改,使用默认值

  Tip: 

10) 参数dfs.http.address

默认值

0.0.0.0:50070

说明

Namenode的Web UI用的ip和port。除非是为了security的考虑才会修改binding 的 IP/Port,不然不需要修改。

生产环境配置值

10.1.55.64:50070

  Tip: namenode的WEB UI地址:

11) 参数dfs.namenode.logging.level

默认值

info

说明

指定namenode的logging level。其他的可选取值有:A)dir :看namenode serve的变化。B)block:看blocks新增、删除或副本变化。C)all:显示全部log。除非为了debug,否则不建议修改。

生产环境配置值

保持默认

  Tip: 

2.3.2 Secondary Namenode

1) 参数dfs.secondary.http.address

默认值

0.0.0.0:50090

说明

Secondary Namenode的Web UI用的ip和port。除非是为了security的考虑才会修改binding 的 IP/Port,不然不需要修改。

生产环境配置值

10.2.55.68:50090

  Tip: Secondary namenode的WEB UI地址:

2.3.3 Datanode相关

1) 参数dfs.data.dir

默认值

${hadoop.tmp.dir}/dfs/data

说明

指定本机上数据存储目录,如果指定多个目录,可用“,”分隔production环境会指定多个并设定 dfs.datanode.failed.volumes.tolerated。一般来说,多个目录会对应到系统上不同的partitions,不同的硬盘设定多个可以加快存取速度

生产环境配置值

/data0/hadoop/hdfs,/data1/hadoop/hdfs,/data2/hadoop/hdfs,/data3/hadoop/hdfs,/data4/hadoop/hdfs

  Tip:

2) 参数dfs.datanode.failed.volumes.tolerated

默认值

0

说明

这个参数要对应dfs.data.dir参数设定的目录个数,0 表示只要有任何一个volume坏掉datanode就会被强制停止假设挂载volumns,hadoop会确定n – dfs.datanode.failed.volumes.tolerated不能小于0。

生产环境配置值

3

  Tip:

3) 参数dfs.datanode.du.reserved

默认值

0(byte)

说明

默认值表示data nodes会使用整个volumns,写满后会导致无法再写入M/R jobs或启动data nodes时的临时文件。如果还有其他程序共用这些目录也会影响建议至少保留1073741824(1G) 的空间

生产环境配置值

10737418240(10GB)

  Tip:

4) 参数dfs.datanode.max.xcievers

默认值

256

说明

该参数指定datanode可同时处理的最大文件数量相当于openfiles。

生产环境配置值

4096

  Tip:

5) 参数dfs.datanode.data.dir.perm

默认值

700

说明

这个值设定data node写文件到local disk上的权限使用POSIX表示法production上为了security考虑不建议改这个参数测试环境为了方便其他users用工具分析资料可以改为755。

生产环境配置值

700

  Tip:

6) 参数dfs.heartbeat.interval

默认值

3

说明

Datanode心跳间隔的秒数

生产环境配置值

3

  Tip:

7) 参数dfs.datanode.handler.count

默认值

3

说明

指定data node上用的thread数量production环境建议调到100。

生产环境配置值

100

  Tip:

8) 参数dfs.datanode.address

默认值

0.0.0.0:50010

说明

datanode service监听port,用来传输资料用。除非为了security的考虑才会需要改 binding 的 IP/Port,不然不需要。

生产环境配置值

0.0.0.0:50010

  Tip:

9) 参数dfs.datanode.http.address

默认值

0.0.0.0:50075

说明

Web UI 用的 port。除非为了security的考虑才会需要改 binding 的 IP/Port,不然不需要。

生产环境配置值

0.0.0.0:50075

  Tip:

2.3.4 Permissions参数

1) 参数dfs.umaskmode

默认值

0022

说明

The umask used when creating files and directories. For configuration files, the decimal value 18 may be used.

生产环境配置值

077

    Tip:

2) 参数dfs.permissions

默认值

true

说明

If yes use the permissions system as described here. If no, permission checking is turned off, but all other behavior is unchanged. Switching from one parameter value to the other does not change the mode, owner or group of files or directories. Regardless of whether permissions are on or off, chmod, chgrp and chown always check permissions. These functions are only useful in the permissions context, and so there is no backwards compatibility issue. Furthermore, this allows administrators to reliably set owners and permissions in advance of turning on regular permissions checking.

生产环境配置值

false

  Tip:

3) 参数dfs.permissions.supergroup

默认值

supergroup

说明

超级用户的组名

生产环境配置值

hadoop

  Tip:

4) 参数dfs.cluster.administrators

默认值

说明

The administrators for the cluster specified as an ACL. This controls who can access the default servlets, etc. in the HDFS.

生产环境配置值

hadoop

  Tip:

2.3.5 其他参数

1) 参数dfs.access.time.precision

默认值

3600

说明

The access time for HDFS file is precise to this value. 默认为1小时。值为0disable HDFSaccess times。

生产环境配置值

0

  Tip:

2) 参数dfs.balance.bandwidthPerSec

默认值

1048576(byte)

说明

Balance时使用的带宽,默认1M。建议设置为4194304(4MB)

生产环境配置值

4194304

  Tip:

2.4 mapred-site.xml的设置说明

2.4.1 Jobtracker相关参数

1) 参数mapred.job.tracker

默认值

local

说明

设定jobtrackerhostnameport默认为local,表示所有的job会用local job runner来执行而且只有一个mapper 一个reducer默认设定下,如果要启动jobtracker service反而会失败一般常看到的设定是localhost:9001core-site.xml中的fs.default.name一样建议用 hostname来设定

生产环境配置值

jt.xxxx.com:9001

  Tip:

2) 参数mapred.job.tracker.http.address

默认值

0.0.0.0:50030

说明

jobtracker Web UI用的port除非为了security的考虑才会需要改 binding 的 IP/Port,不然不需要。

生产环境配置值

10.2.55.64:50030

  Tip:

3) 参数mapred.jobtracker.maxtasks.per.job

默认值

说明

每个job的最大任务数

生产环境配置值

200000

  Tip:

4) 参数mapred.jobtracker.completeuserjobs.maximum

默认值

100

说明

jobtracker内存中保存已完成的job个数并让使用者方便在jobtracker UI查询。如果超过这个值的jobs 就会写入disk 并放到job history这个设定值是每个使用者而的,所以使用者多而且 job 也多的情況造成 jobtracker 使用太多的内存,可能会导致full GC 或 OOME建议可以只10

生产环境配置值

30

  Tip:

5) 参数mapred.hosts

默认值

N/A

说明

hdfs-site.xml中的dfs.hosts一样。此值是指定一个文件的位置,名字可任取,例如 : /etc/hadoop/conf/mapred-hosts并列出所有可连接jobtracer的机器清单不在清单上的机器没有权限连接

生产环境配置值

/opt/hadoop/conf/mapred-include

  Tip:

6) 参数mapred.hosts.exclude

默认值

N/A

说明

hdfs-site.xml中的dfs.hosts.exclude一样更换机器时使用。

生产环境配置值

/opt/hadoop/conf/mapred-exclude

  Tip:

7) 参数mapreduce.jobtracker.staging.root.dir

默认值

${hadoop.tmp.dir}/mapred/staging

说明

HDFS上的文件目录,用户提交jobjar等相关信息放置根目录

生产环境配置值

/user

  Tip:

8) 参数mapred.system.dir

默认值

${hadoop.tmp.dir}/mapred/system

说明

HDFS上的文件目录放所有M/R jobs相关的控制文件一个正在运行的M/R job会在这个目录里建立一个子目录

生产环境配置值

/user/hadoop/system

  Tip:

9) 参数mapred.temp.dir

默认值

${hadoop.tmp.dir}/mapred/temp

说明

HDFS上一个共享的文件目录,放所有M/R相关的临时文件

生产环境配置值

/var/lib/hadoop-0.20/cache/mapred/tmp

  Tip:

2.4.2 Tasktracker相关参数

1) 参数mapred.local.dir

默认值

${hadoop.tmp.dir}/mapred/local

说明

tasktracer上存放临时文件的目录hdfs-site.xml中的dfs.data.dir类似指定多个目录(volumes) 可用," 以加快存取速度如果使用distributed cache的话,文件也会放在这里

生产环境配置值

/var/lib/hadoop-0.20/cache/mapred/local

    Tip:

2) 参数mapred.tasktracker.map.tasks.maximum

默认值

2

说明

Tasktracer可同时执行的mapper 数量一般来说设定值会依据CPU core 数而定。例如一台机器有8 core CPU,一core2processes可使用的数量是8×2-2=14 (要减掉datanode 及 tasktracer 使用的 slot)mapper  reducer 数量可设置为7。要注意的是,设的值越高不见的是好事除了CPU utilization 之外,内存使用量也是考虑因素之一。假设datanode使用1Gtasktracker也用1Gmapperreducer都默认200 MB那总内存量为1000+1000+14×200=4800(MB)。因此要看机器规格来决定

生产环境配置值

4

  Tip:

3) 参数mapred.tasktracker.reduce.tasks.maximum

默认值

2

说明

 tasktracer可同时执行的reducer 数量。基本的配置和 mapred.tasktracker.map.tasks.maximum一样。有可以考虑的点是,在执行M/R job里有许多只有 mapper 不需要 reducer 的,例如 HBase import/export。所以可以根据需求加大 mapper 个数并减少 reducer 个数

生产环境配置值

2

  Tip:

4) 参数mapred.child.java.opts

默认值

-Xmx200m

说明

tasktracer会依每个要执行的java task启动独立的child process这个值可以设定每个processJVM参数

生产环境配置值

-server -Xmx640m -Djava.net.preferIPv4Stack=true

  Tip:

5) 参数mapred.reduce.child.java.opts

默认值

-Xmx200m

说明

设定每个reduce child processJVM参数

生产环境配置值

-Xmx1792M

  Tip:

6) 参数mapred.job.reuse.jvm.num.tasks

默认值

1

说明

默认是1,表示一个JVM上最多可以顺序执行的task数目(属于同一个Job)是1。也就是说一个task启一个JVM。为每个task启动一个新的JVM将耗时1秒左右,对于运行时间较长(比如1分钟以上)的job影响不大,但如果都是时间很短的task,那么频繁启停JVM会有开销。

如果我们想使用JVM重用技术来提高性能,那么可以将mapred.job.reuse.jvm.num.tasks设置成大于1的数。这表示属于同一job的顺序执行的task可以共享一个JVM,也就是说第二轮的map可以重用前一轮的JVM,而不是第一轮结束后关闭JVM,第二轮再启动新的JVM

那么最多一个JVM能顺序执行多少个task才关闭呢?这个值就是mapred.job.reuse.jvm.num.tasks。如果设置成-1,那么只要是同一个jobtask(无所谓多少个),都可以按顺序在一个JVM上连续执行。

如果task属于不同的job,那么JVM重用机制无效,不同jobtask需要不同的JVM来运行。

生产环境配置值

-1

    Tip:

7) 参数mapred.compress.map.output

默认值

false

说明

决定mapperoutput是否要压缩

生产环境配置值

true

  Tip:

8) 参数mapred.map.output.compression.codec

默认值

org.apache.hadoop.io.compress.DefaultCodec

说明

如果 mapred.compress.map.output=true则会使用这个codec来执行压缩一般常见的压缩格式为

· deflate: org.apache.hadoop.io.compress.DefaultCodec,已內建

· gzip: org.apache.hadoop.io.compress.GzipCodec,已內建

· bzip2: org.apache.hadoop.io.compress.BZip2Codec,已內建

· lzo: com.hadoop.compression.lzo.LzoCodec因为lzoGPL licenseApache 或 Cloudera 的版本没有内建需要自行安装lzo package

· snappy: org.apache.hadoop.io.compress.SnappyCodecCloudera版本已內建这个codec

生产环境配置值

com.hadoop.compression.lzo.LzoCodec

  Tip:

2.4.3 其他

1) 参数mapred.heartbeats.in.second

默认值

100

说明

作业管理跟踪器的每秒中到达的心跳数量

生产环境配置值

200

  Tip:

2) 参数mapreduce.tasktracker.outofband.heartbeat

默认值

false

说明

让在任务结束后发出一个额外的心跳信号

生产环境配置值

true

  Tip:

3) 参数hadoop.job.history.user.location

默认值

说明

可以指定具体某个作业的跟踪管理器的历史文件存放目录

生产环境配置值

none

  Tip:

4) 参数mapreduce.tasktracker.group

默认值

说明

生产环境配置值

hadoop

  Tip:

5) 参数mapreduce.cluster.administrators

默认值

说明

生产环境配置值

hadoop

  Tip:

2.5 masters

10.2.55.68

2.6 slaves

10.2.55.60

10.2.55.61

10.2.55.62

10.2.55.63

10.2.55.65

10.2.55.66

10.2.55.67

2.7 datanode-exclude

      保持空,更换节点时使用

2.8 datanode-include

10.2.55.60

10.2.55.61

10.2.55.62

10.2.55.63

10.2.55.65

10.2.55.66

10.2.55.67

2.9 mapred-exclude

  保持空,更换节点时使用

2.10 mapred-include

dn60.xxxx.com

dn61.xxxx.com

dn62.xxxx.com

dn63.xxxx.com

dn65.xxxx.com

dn66.xxxx.com

dn67.xxxx.com

3. 创建集群用户帐号

   hadoop fs -mkdir /user/hadoop

   hadoop fs -mkdir /user/xxxx

   hadoop fs -chown hadoop:hadoop /user/hadoop

   hadoop fs -chown xxxx:xxxx/user/xxxx

   

   存储配额

   hadoop dfsadmin -setSpaceQuota 1t /user/xxxx

转载地址:https://blog.csdn.net/xiaochawan/article/details/9007765 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:c++
下一篇:Hadoop集群部署配置文档(第1部分)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月24日 23时46分31秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章