云服务器内容精选

  • 操作场景 Yarn NodeManager定义的存储目录不正确或Yarn的存储规划变化时,MRS集群管理员需要在Manager中修改NodeManager的存储目录,以保证Yarn正常工作。NodeManager的存储目录包含本地存放目录“yarn.nodemanager.local-dirs”和日志目录“yarn.nodemanager.log-dirs”。适用于以下场景: 更改NodeManager角色的存储目录,所有NodeManager实例的存储目录将同步修改。 更改NodeManager单个实例的存储目录,只对单个实例生效,其他节点NodeManager实例存储目录不变。
  • 在WebUI显示更多历史作业 默认情况下,Yarn WebUI界面支持任务列表分页功能,每个分页最多显示5000条历史作业,总共最多保留10000条历史作业。如果您需要在WebUI上查看更多的作业,可以配置参数如表3。具体配置操作请参考修改集群服务配置参数。 表3 参数说明 配置参数 说明 默认值 yarn.resourcemanager.max-completed-applications 设置在WebUI总共显示的历史作业数量。 10000 yarn.resourcemanager.webapp.pagination.enable 是否开启Yarn WebUI的任务列表后台分页功能。 true yarn.resourcemanager.webapp.pagination.threshold 开启Yarn WebUI的任务列表后台分页功能后,每个分页显示的最大作业数量。 5000 显示更多的历史作业,会影响性能,增加打开Yarn WebUI的时间,建议开启后台分页功能,并根据实际硬件性能修改“yarn.resourcemanager.max-completed-applications”参数。 修改参数值后,需重启Yarn服务使其生效。
  • 在UI显示container日志 默认情况下,系统会将container日志收集到HDFS中。如果您不需要将container日志收集到HDFS中,可以配置参数见表2。具体配置操作请参考修改集群服务配置参数。 表2 参数说明 配置参数 说明 默认值 yarn.log-aggregation-enable 设置是否将container日志收集到HDFS中。 设置为true,表示日志会被收集到HDFS目录中。默认目录为“{yarn.nodemanager.remote-app-log-dir}/${user}/{thisParam}”,该路径可通过界面上的“yarn.nodemanager.remote-app-log-dir-suffix”参数进行配置。 设置为false,表示日志不会收集到HDFS中。 修改参数值后,需重启Yarn服务使其生效。 说明: 在修改值为false并生效后,生效前的日志无法在UI中获取。您可以在“yarn.nodemanager.remote-app-log-dir-suffix”参数指定的路径中获取到生效前的日志。 如果需要在UI上查看之前产生的日志,建议将此参数设置为true。 true
  • 配置描述 有关如何配置CPU隔离与安全的CGroups功能的详细信息,请参见Hadoop官网: MRS 3.2.0之前版本:http://hadoop.apache.org/docs/r3.1.1/hadoop-yarn/hadoop-yarn-site/NodeManagerCgroups.html MRS 3.2.0及之后版本:https://hadoop.apache.org/docs/r3.3.1/hadoop-yarn/hadoop-yarn-site/NodeManagerCgroups.html 由于CGroups为Linux内核特性,是通过LinuxContainerExecutor进行开放。请参考官网资料对LinuxContainerExecutor进行安全配置。您可通过官网资料了解系统用户和用户组配置对应的文件系统权限。详情请参见: MRS 3.2.0之前版本:http://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-common/SecureMode.html#LinuxContainerExecutor MRS 3.2.0及之后版本:https://hadoop.apache.org/docs/r3.3.1/hadoop-project-dist/hadoop-common/SecureMode.html#LinuxContainerExecutor 请勿修改对应文件系统中各路径所属的用户、用户组及对应的权限,否则可能导致本功能异常。 当参数“yarn.nodemanager.resource.percentage-physical-cpu-limit”配置过小,导致可使用的核不足1个时,例如4核节点,将此参数设置为20%,不足1个核,那么将会使用系统全部的核。Linux的一些版本不支持Quota模式,例如Cent OS。在这种情况下,可以使用CPUset模式。 配置cpuset模式,即YARN只能使用配置的CPU,需要添加以下配置。 表1 cpuset配置 参数 描述 默认值 yarn.nodemanager.linux-container-executor.cgroups.cpu-set-usage 设置为“true”时,应用以cpuset模式运行。 false 配置strictcpuset模式,即container只能使用配置的CPU,需要添加以下配置。 表2 CPU硬隔离参数配置 参数 描述 默认值 yarn.nodemanager.linux-container-executor.cgroups.cpu-set-usage 设置为“true”时,应用以cpuset模式运行。 false yarn.nodemanager.linux-container-executor.cgroups.cpuset.strict.enabled 设置为true时,container只能使用配置的CPU。 false 要从cpuset模式切换到Quota模式,必须遵循以下条件: 配置“yarn.nodemanager.linux-container-executor.cgroups.cpu-set-usage”=“false”。 删除“/sys/fs/cgroup/cpuset/hadoop-yarn/”路径下container文件夹(如果存在)。 删除“/sys/fs/cgroup/cpuset/hadoop-yarn/”路径下cpuset.cpus文件中设置的所有CPU。
  • 配置描述 参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。 表1 参数说明 参数 描述 默认值 yarn.nodemanager.vmem-check-enabled 是否进行虚拟内存检测的开关。如果任务使用的内存量超出分配值,则直接将任务强制终止。 设置为true时,进行虚拟内存检测; 设置为false时,不进行虚拟内存检测。 true yarn.nodemanager.pmem-check-enabled 是否进行物理内存检测的开关。如果任务使用的内存量超出分配值,则直接将任务强制终止。 设置为true时,进行物理内存检测; 设置为false时,不进行物理内存检测。 true
  • 使用Yarn客户端 安装客户端,具体请参考安装MRS客户端。 以客户端安装用户,登录安装客户端的节点。 执行以下命令,切换到客户端安装目录。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 如果集群为安全模式,执行以下命令进行用户认证。普通模式集群无需执行用户认证。 kinit 组件业务用户 直接执行Yarn命令。例如: yarn application -list
  • 处理步骤 以root用户登录安装了Spark2x/Spark客户端的节点。 执行以下命令编辑文件。 vim $SPARK_HOME/conf/log4j-executor.properties 调小“log4j.appender.sparklog.MaxFileSize”参数值(表示生成一份日志文件的最大存储大小,默认为50MB),例如修改为“20MB”。 调小“log4j.appender.sparklog.MaxBackupIndex”参数值(表示滚动保存的文件数量,最大为10个文件,达到第11个覆盖第一个生成的文件),例如修改为“5”。 保存文件。 重新提交作业,作业运行正常。
  • 原因分析 MapReduce任务提交时会将相关配置文件、jar包和-files参数后添加的文件都上传至HDFS的临时目录,方便Container启动后获取相应的文件。系统通过配置项“yarn.app.mapreduce.am.staging-dir”决定具体存放位置,默认值是“/tmp/hadoop-yarn/staging”。 正常运行的MapReduce任务会在Job结束以后就清理这些临时文件,但是当Job对应的Yarn任务异常退出时,这些临时文件不会被清理,长时间积攒导致该临时目录下的文件数量越来越多,占用存储空间越来越多。