Hadoop配置参数建议

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Hadoop配置参数建议

流量三期程序和Hive脚本需要运行在Hadoop集群上,本文档用于对Hadoop的参数提出建议。如果Hadoop集群是我们自己管理的,可以参考文档里建议的参数进行配置;如果Hadoop集群不由我们管理,我们只是集群资源的用户,可以通过给流量三期Job或者Hive 脚本指定Hadoop参数来调整程序的运行方式。

需要注意的是,通过编辑配置文件来设置Hadoop参数的方式,只适用于独立安装的Hadoop2.X、CDH4.X和CDH5.X,不适用于通过Athena大数据管理平台安装的CDH,因为Athena要求必须使用Web界面修改Hadoop的配置,不允许直接编辑Hadoop的配置文件。

Hadoop的参数有数百个,其中绝大多数都应该使用默认值,本文档只对可能需要修改的参数进行说明。对于文档没有列出的参数,如果没有特殊需要,不建议修改,避免出现难以定位的问题。

Hadoop参数可以分成三类,分别是Linux环境变量、集群配置变量和作业配置变量,下面对各类变量分别说明。

一、Linux环境变量

Linux环境变量用来配置各个Hadoop守护进程的行为,包括Yarn的ResourceManager 进程、Yarn的NodeManager进程、HDFS的NameNode进程、HDFS的Secondary NameNode 进程、HDFS的DataNode进程和Hadoop Job History Server进程等。

Hadoop在启动各个守护进程时会通过环境变量的值来确定进程的行为,所以环境变量一般在启动Hadoop前设置才有意义。

设置方式是在Hadoop启动或者重启前,编辑Hadoop配置文件目录下的hadoop-env.sh、mapred-env.sh和yarn-env.sh文件。这三个文件是shell脚本,并且mapred-env.sh和yarn-env.sh 的优先级高于hadoop-env.sh,也就是说如果在mapred-env.sh和hadoop-env.sh中设置了同一个环境变量,Hadoop会使用mapred-env.sh中的变量值。

下面是Hadoop比较重要的环境变量:

在上述环境变量中,如果没有特殊情况(例如需要指定其他目录作为日志目录或者为规模较大的集群增大某些守护进程的内存值),除了JA V A_HOME需要配置外(如果shell环境下已经配置了JA V A_HOME,那么也可以不在配置文件里指定),其他环境变量使用默认值就能让Hadoop正常运行。

二、集群配置变量

这里所说的集群配置变量,指的是应该在配置文件里修改,不应该为作业单独指定的变量,并且修改后必须重启Hadoop集群才能生效。配置文件包括core-site.xml、hdfs-site.xml、yarn-site.xml和mapred-site.xml,在表格里这些配置文件被简写为core、hdfs、yarn和mapred。

三、作业配置变量

作业配置变量指的是既可以在配置文件里配置,也可以为作业单独指定的Hadoop变量(一般通过在命令行里用“-D 变量名=变量值”的方式,例如“hadoop jar xxx.jar –D mapreduce.map.memory.mb=1024”),这些变量主要来自配置文件mapred-site.xml。

相关文档
最新文档