欢迎来到天天文库
浏览记录
ID:47732000
大小:30.69 KB
页数:5页
时间:2019-11-09
《Hadoop配置参数建议》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Hadoop配置参数建议流量三期程序和Hive脚本需要运行在Hadoop集群上,本文档用于对Hadoop的参数提出建议。如果Hadoop集群是我们自己管理的,可以参考文档里建议的参数进行配置;如果Hadoop集群不由我们管理,我们只是集群资源的用户,可以通过给流量三期Job或者Hive脚本指定Hadoop参数来调整程序的运行方式。需要注意的是,通过编辑配置文件来设置Hadoop参数的方式,只适用于独立安装的Hadoop2.X、CDH4.X和CDH5.X,不适用于通过Athena大数据管理平台安装的CDH,因为Athena要求必须使用Web界面修改Hadoop的配置,不
2、允许直接编辑Hadoop的配置文件。Hadoop的参数有数百个,其中绝大多数都应该使用默认值,本文档只对可能需要修改的参数进行说明。对于文档没有列出的参数,如果没有特殊需要,不建议修改,避免出现难以定位的问题。Hadoop参数可以分成三类,分别是Linux环境变量、集群配置变量和作业配置变量,下面对各类变量分别说明。一、Linux环境变量Linux环境变量用来配置各个Hadoop守护进程的行为,包括Yarn的ResourceManager进程、Yarn的NodeManager进程、HDFS的NameNode进程、HDFS的SecondaryNameNode进程、HDF
3、S的DataNode进程和HadoopJobHistoryServer进程等。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中设置了同一个环境变量,Hado
4、op会使用mapred-env.sh中的变量值。下面是Hadoop比较重要的环境变量:参数名文件名默认值说明JAVA_HOMEhadoop-env.sh无用于确定Hadoop使用的JDK,需要正确设置,否则无法启动Hadoop。HADOOP_LOG_DIRhadoop-env.sh${HADOOP_HOME}/logs守护进程的日志目录,默认值是${HADOOP_HOME}/logs(HADOOP_HOME是Hadoop的安装目录)。HADOOP_NAMENODE_OPTShadoop-env.sh无HDFS的NameNode的Java虚拟机选项,默认为空。对于规模较
5、大的集群(二十个节点以上),可以通过这个选项增大NameNode进程的堆内存(例如-Xmx2048M)。在上述环境变量中,如果没有特殊情况(例如需要指定其他目录作为日志目录或者为规模较大的集群增大某些守护进程的内存值),除了JAVA_HOME需要配置外(如果shell环境下已经配置了JAVA_HOME,那么也可以不在配置文件里指定),其他环境变量使用默认值就能让Hadoop正常运行。一、集群配置变量这里所说的集群配置变量,指的是应该在配置文件里修改,不应该为作业单独指定的变量,并且修改后必须重启Hadoop集群才能生效。配置文件包括core-site.xml、hdfs
6、-site.xml、yarn-site.xml和mapred-site.xml,在表格里这些配置文件被简写为core、hdfs、yarn和mapred。参数名文件名默认值说明fs.defaultFScorefile:///用于指定默认的文件系统URI,默认值表示Hadoop默认使用本地文件系统;应该改成hdfs://NameNode主机名或IP,表示默认使用HDFS作为文件系统。fs.trash.intervalcore0用于控制是否开启垃圾回收,默认值0表示关闭垃圾回收。指定数字值表示开启垃圾回收,变量值是自动回收垃圾的时间(分钟数)。建议开启垃圾回收功能,避免误删
7、HDFS上的重要数据。配置的垃圾回收的时间可以根据实际情况来定。io.file.buffer.sizecore4096Hadoop进行IO时的缓冲区大小,默认值较小,建议增大到65536。dfs.namenode.name.dirhdfsfile://${hadoop.tmp.dir}/dfs/name用于指定NameNode保存HDFS元数据的目录,可以用逗号分隔多个路径,hadoop会在每个路径下保存一份持久化的元数据,如果有条件,可以考虑在NFS上保存一份做灾备。${hadoop.tmp.dir}默认位置在/tmp目录下,而/tmp目录可能会被
此文档下载收益归作者所有