华为云用户手册

  • 配置场景 YARN Restart特性包含两部分内容:ResourceManager Restart和NodeManager Restart。 当启用ResourceManager Restart时,升主后的ResourceManager就可以通过加载之前的主ResourceManager的状态信息,并通过接收所有NodeManager上container的状态信息,重构运行状态继续执行。这样应用程序通过定期执行检查点操作保存当前状态信息,就可以避免工作内容的丢失。 当启用NodeManager Restart时,NodeManager在本地保存当前节点上运行的container信息,重启NodeManager服务后通过恢复此前保存的状态信息,就不会丢失在此节点上运行的container进度。
  • 配置描述 参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。 ResourceManager Restart特性配置如下。 表1 ResourceManager Restart参数配置 参数 描述 默认值 yarn.resourcemanager.recovery.enabled 设置是否让ResourceManager在启动后恢复状态。如果设置为true,那yarn.resourcemanager.store.class也必须设置。 true yarn.resourcemanager.store.class 指定用于保存应用程序和任务状态以及证书内容的state-store类。 MRS 3.x之前的版本集群:org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore MRS 3.x及后续版本集群: org.apache.hadoop.yarn.server.resourcemanager.recovery.AsyncZKRMStateStore yarn.resourcemanager.zk-state-store.parent-path ZKRMStateStore在ZooKeeper上的保存目录。 /rmstore yarn.resourcemanager.work-preserving-recovery.enabled 启用ResourceManager Work preserving功能。该配置仅用于YARN特性验证。 true yarn.resourcemanager.state-store.async.load 对已完成的application采用ResourceManager异步恢复方式。 MRS 3.x之前的版本集群:false MRS 3.x及后续版本集群:true yarn.resourcemanager.zk-state-store.num-fetch-threads 启用异步恢复功能,增加工作线程的数量可以加快恢复ZK中保存的任务信息的速度,取值范围大于0。 MRS 3.x之前的版本集群:1 MRS 3.x及后续版本集群:20 NodeManager Restart特性配置如下。 表2 NodeManager Restart参数配置 参数 描述 默认值 yarn.nodemanager.recovery.enabled 当Nodemanager重启时是否启用日志失败收集功能,是否恢复未完成的Application。 true yarn.nodemanager.recovery.dir NodeManager用于保存container状态的本地目录。适用于MRS 3.x及后续版本集群。 ${SRV_HOME}/tmp/yarn-nm-recovery yarn.nodemanager.recovery.supervised NodeManager是否在监控下运行。开启此特性后NodeManager在退出后不会清理containers,NodeManager会假设自己会立即重启和恢复containers。 true
  • 配置场景 在YARN中,ApplicationMaster(AM)与Container类似,都运行在NodeManager(NM)上(本文中忽略未管理的AM)。AM可能由于多种原因崩溃、退出或关闭。如果AM停止运行,ResourceManager(RM)会关闭ApplicationAttempt中管理的所有Container,其中包括当前在NM上运行的所有Container。RM会在另一计算节点上启动新的ApplicationAttempt。 对于不同类型的应用,希望以不同方式处理AM重启的事件。MapReduce类应用的目标是不丢失任务,但允许丢失当前运行的Container。但是对于长周期的YARN服务而言,用户可能并不希望由于AM的故障而导致整个服务停止运行。 YARN支持在新的ApplicationAttempt启动时,保留之前Container的状态,因此运行中的作业可以继续无故障的运行。 图1 AM作业保留
  • 配置描述 参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。 根据表1,对如下参数进行设置。 表1 AM作业保留相关参数 参数 说明 默认值 yarn.app.mapreduce.am.work-preserve 是否开启AM作业保留特性。 false yarn.app.mapreduce.am.umbilical.max.retries AM作业保留特性中,运行的容器尝试恢复的最大次数。 5 yarn.app.mapreduce.am.umbilical.retry.interval AM作业保留特性中,运行的容器尝试恢复的时间间隔。单位:毫秒。 10000 yarn.resourcemanager.am.max-attempts ApplicationMaster的重试次数。增加重试次数可以避免当资源不足时造成AM启动失败。 适用于所有ApplicationMaster的全局设置。每个ApplicationMaster都可以使用API设置一个单独的最大尝试次数,但这个次数不能大于全局的最大次数。如果大于了,那ResourceManager将会覆写这个单独的最大尝试次数。取值范围大于等于1。 2
  • 配置描述 有关如何配置CPU隔离与安全的CGroups功能的详细信息,请参见Hadoop官网: http://hadoop.apache.org/docs/r3.1.1/hadoop-yarn/hadoop-yarn-site/NodeManagerCgroups.html 由于CGroups为Linux内核特性,是通过LinuxContainerExecutor进行开放。请参考官网资料对LinuxContainerExecutor进行安全配置。您可通过官网资料了解系统用户和用户组配置对应的文件系统权限。详情请参见: http://hadoop.apache.org/docs/r3.1.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,需要在Manager界面添加以下配置。 表1 cpuset配置 参数 描述 默认值 yarn.nodemanager.linux-container-executor.cgroups.cpu-set-usage 设置为“true”时,应用以cpuset模式运行。 false 配置strictcpuset模式,即container只能使用配置的CPU,需要在Manager界面添加以下配置。 表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时,不进行虚拟内存检测。 MRS 3.x之前的版本集群:false MRS 3.x及后续版本集群:true yarn.nodemanager.pmem-check-enabled 是否进行物理内存检测的开关。如果任务使用的内存量超出分配值,则直接将任务强制终止。 设置为true时,进行物理内存检测; 设置为false时,不进行物理内存检测。 true
  • 配置描述 参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。 表1 配置自定义调度器的WebUI 参数 描述 默认值 hadoop.http.rmwebapp.scheduler.page.classes 在RM WebUI中为自定义调度器加载相应的web页面。仅当“yarn.resourcemanager.scheduler.class”配置为自定义调度器时此配置项生效。 - yarn.http.rmwebapp.external.classes 在RM的Web服务中加载用户自定义的web应用。 -
  • 配置描述 参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入表1中参数名称。 表1 参数说明 参数 描述 默认值 yarn.resourcemanager.am.max-attempts ApplicationMaster重试次数,增加重试次数,可以防止资源不足导致的AM启动失败问题。适用于所有ApplicationMaster的全局设置。每个ApplicationMaster都可以使用API设置一个单独的最大尝试次数,但这个次数不能大于全局的最大次数。如果大于了,那ResourceManager将会覆写这个单独的最大尝试次数。以允许至少一次重试。取值范围大于等于1。 5
  • 配置描述 查看Yarn服务配置参数 参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入表1中参数名称。 表1 参数描述 参数 描述 默认值 yarn.acl.enable Yarn权限控制启用开关。 true yarn.webapp.filter-entity-list-by-user 严格视图启用开关,开启后,登录用户只能查看该用户有权限查看的内容。当要开启该功能时,同时需要设置参数“yarn.acl.enable”为true。 说明: 此参数适用于MRS 3.x及后续版本集群。 true 查看Mapreduce服务配置参数 参考修改集群服务配置参数进入Mapreduce服务参数“全部配置”界面,在搜索框中输入表2中参数名称。 表2 参数描述 参数 描述 默认值 mapreduce.cluster.acls.enabled MR JobHistoryServer权限控制启用开关。该参数为客户端参数,当JobHistoryServer服务端开启权限控制之后该参数生效。 true yarn.webapp.filter-entity-list-by-user MR JobHistoryServer严格视图启用开关,开启后,登录用户只能查看该用户有权限查看的内容。该参数为JobHistoryServer的服务端参数,表示JHS开启了权限控制,但是否要对某一个特定的Application进行控制,是由客户端参数:“mapreduce.cluster.acls.enabled”决定。 说明: 此参数适用于MRS 3.x及后续版本集群。 true 以上配置会影响restful API和shell命令结果,即以上配置开启后,restful API调用和shell命令运行所返回的内容只包含调用用户有权查看的信息。 当yarn.acl.enable或mapreduce.cluster.acls.enabled设置为false时,即关闭Yarn或Mapreduce的权限校验功能。此时任何用户都可以在Yarn或MapReduce上提交任务和查看任务信息,存在安全风险,请谨慎使用。
  • 在UI显示container日志 默认情况下,系统会将container日志收集到HDFS中。如果您不需要将container日志收集到HDFS中,可以配置参数见表3。具体配置操作请参考修改集群服务配置参数。 表3 参数说明 配置参数 说明 默认值 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
  • 在WebUI显示更多历史作业 默认情况下,Yarn WebUI界面支持任务列表分页功能,每个分页最多显示5000条历史作业,总共最多保留10000条历史作业。如果您需要在WebUI上查看更多的作业,可以配置参数如表4。具体配置操作请参考修改集群服务配置参数。 表4 参数说明 配置参数 说明 默认值 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服务使其生效。
  • 操作步骤 参数入口: 进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。具体操作请参考修改集群服务配置参数章节。 参数 描述 默认值 mapreduce.map.speculative 设置是否并行执行某些映射任务的多个实例。true表示开启。 false mapreduce.reduce.speculative 设置是否并行执行某些reduce任务的多个实例。true表示开启。 false
  • 使用Yarn客户端 安装客户端。 MRS 3.x之前版本请参考安装客户端章节。 MRS 3.x及之后版本请参考安装客户端章节。 以客户端安装用户,登录安装客户端的节点。 执行以下命令,切换到客户端安装目录。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 如果集群为安全模式,执行以下命令进行用户认证。普通模式集群无需执行用户认证。 kinit 组件业务用户 直接执行Yarn命令。例如: yarn application -list
  • 操作场景 Slow Start特性指定Map任务完成度为多少时Reduce任务可以启动,过早启动Reduce任务会导致资源占用,影响任务运行效率,但适当的提早启动Reduce任务会提高Shuffle阶段的资源利用率,提高任务运行效率。例如:某集群可启动10个Map任务,MapReduce作业共15个Map任务,那么在一轮Map任务执行完成后只剩5个Map任务,集群还有剩余资源,在这种场景下,配置Slow Start参数值小于1,比如0.8,则Reduce就可以利用集群剩余资源。
  • 操作场景 默认情况下,如果一个MR任务会产生大量的输出结果文件,那么该job在最后的commit阶段会耗费较长的时间将每个task的临时输出结果commit到最终的结果输出目录。特别是在大集群中,大Job的commit过程会严重影响任务的性能表现。 针对以上情况,可以通过将以下参数“mapreduce.fileoutputcommitter.algorithm.version”配置为“2”,来提升MR Job commit阶段的性能。
  • 操作步骤 参数入口: 进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。具体操作请参考修改集群服务配置参数章节。 表1 参数说明 参数 描述 默认值 mapreduce.fileoutputcommitter.algorithm.version 用于指定Job的最终输出文件提交的算法版本,取值为“1”或“2”。 说明: 版本2为建议的优化算法版本。该算法通过让任务直接将每个task的输出结果提交到最终的结果输出目录,从而减少大作业的输出提交时间。 2
  • 回答 打开FusionInsight Manager页面,看到Yarn服务的业务IP地址为192网段。 从Yarn的日志看到,Yarn读取的Spark Web UI地址为http://10.120.169.53:23011,是10网段的IP地址。由于192网段的IP和10网段的IP不能互通,所以导致访问Spark Web UI界面失败。 修改方案: 登录10.120.169.53客户端机器,修改/etc/hosts文件,将10.120.169.53更改为相对应的192网段的IP地址。再重新运行Spark应用,这时就可以打开Spark Web UI界面。
  • 示例 添加(Add)或更新(Update): SET enable.unsafe.sort=true 显示(Display)属性值: SET enable.unsafe.sort 显示段ID列表,段状态和其他所需详细信息的示例,然后指定要读取的段列表: SHOW SEGMENTS FOR TABLE carbontable1; SET carbon.input.segments.db.carbontable1 = 1, 3, 9; 多线程模式查询指定段示例如下: CarbonSession.threadSet ("carbon.input.segments.default.carbon_table_MulTI_THread", "1,3"); 在多线程环境中使用CarbonSession.threadSet查询段示例如下(以Scala代码为例): def main(args: Array[String]) { Future { CarbonSession.threadSet("carbon.input.segments.default.carbon_table_MulTI_THread", "1") spark.sql("select count(empno) from carbon_table_MulTI_THread").show() }} 重置(Reset): RESET
  • 命令格式 Add或Update参数值: SET parameter_name=parameter_value 此命令用于添加或更新“parameter_name”的值。 Display参数值: SET parameter_name 此命令用于显示指定的“parameter_name”的值。 Display会话参数: SET 此命令显示所有支持的会话参数。 Display会话参数以及使用细节: SET -v 此命令显示所有支持的会话参数及其使用细节。 Reset参数值: RESET 此命令清除所有会话参数。
  • 操作步骤 通过调大如下的参数来进行AM调优。 参数入口: 在Yarn客户端的“mapred-site.xml”配置文件中调整如下参数。“mapred-site.xml”配置文件在客户端安装路径的conf目录下,例如“/opt/client/Yarn/config”。 参数 描述 默认值 yarn.app.mapreduce.am.resource.mb 该参数值必须大于下面参数的堆大小。单位:MB 1536 yarn.app.mapreduce.am.command-opts 传递到MapReduce ApplicationMaster的JVM启动参数。 MRS 3.x之前版本:-Xmx1024m -XX:CMSFullGCsBeforeCompaction=1 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -verbose:gc MRS 3.x及之后版本:-Xmx1024m -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -verbose:gc -Djava.security.krb5.conf=${KRB5_CONFIG} -Dhadoop.home.dir=${BIGDATA_HOME}/FusionInsight_HD_xxx/install/FusionInsight-Hadoop-xxx/hadoop
  • 操作步骤 原则一:充分利用集群资源。 Job运行时,会让所有的节点都有任务处理,且处于繁忙状态,这样才能保证资源充分利用,任务的并发度达到最大。可以通过调整处理的数据量大小,以及调整map和reduce个数来实现。 Reduce个数的控制使用“mapreduce.job.reduces”。 Map个数取决于使用了哪种InputFormat,以及待处理的数据文件是否可分割。默认的TextFileInputFormat将根据block的个数来分配map数(一个block一个map)。通过如下配置参数进行调整。 参数入口: 进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。具体操作请参考修改集群服务配置参数章节。 参数 描述 默认值 mapreduce.input.fileinputformat.split.maxsize map输入信息应被拆分成的数据块的最大大小。 由用户定义的分片大小的设置及每个文件block大小的设置,可以计算分片的大小。计算公式如下: splitSize = Math.max(minSize, Math.min(maxSize, blockSize)) 如果maxSize设置大于blockSize,那么每个block就是一个分片,否则就会将一个block文件分隔为多个分片,如果block中剩下的一小段数据量小于splitSize,还是认为它是独立的分片。 - mapreduce.input.fileinputformat.split.minsize 可以设置数据分片的数据最小值。 0 原则二:控制reduce阶段在一轮中完成。 避免以下两种场景: 大部分的reduce在第一轮运行完后,剩下唯一一个reduce继续运行。这种情况下,这个reduce的执行时间将极大影响这个job的运行时间。因此需要将reduce个数减少。 所有的map运行完后,只有个别节点有reduce在运行。这时候集群资源没有得到充分利用,需要增加reduce的个数以便每个节点都有任务处理。 原则三:每个task的执行时间要合理。 如果一个job,每个map或reduce的执行时间只有几秒钟,就意味着这个job的大部分时间都消耗在task的调度和进程启停上了,因此需要增加每个task处理的数据大小。建议一个task处理时间为1分钟。 控制单个task处理时间的大小,可以通过如下配置来调整。 参数入口: 进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。具体操作请参考修改集群服务配置参数章节。 参数 描述 默认值 mapreduce.input.fileinputformat.split.maxsize map输入信息应被拆分成的数据块的最大大小。 由用户定义的分片大小的设置及每个文件block大小的设置,可以计算分片的大小。计算公式如下: splitSize = Math.max(minSize, Math.min(maxSize, blockSize)) 如果maxSize设置大于blockSize,那么每个block就是一个分片,否则就会将一个block文件分隔为多个分片,如果block中剩下的一小段数据量小于splitSize,还是认为它是独立的分片。 - mapreduce.input.fileinputformat.split.minsize 可以设置数据分片的数据最小值。 0
  • 配置描述 进入Mapreduce服务参数“全部配置”界面,在搜索框中输入参数名称。具体操作请参考修改集群服务配置参数章节。 表1 参数描述 参数 描述 默认值 mapreduce.cluster.acls.enabled 是否开启对Job History Server 权限控制的开关。 true mapreduce.cluster.administrators 用于指定MapReduce集群管理员列表,可以配置用户和用户组,用户或者用户组之间用逗号间隔,用户和用户组之间用空格间隔,举例:userA,userB groupA,groupB。当配置为*时表示所有用户或用户组。 MRS 3.x之前版本:mapred MRS 3.x及之后版本: mapred supergroup,System_administrator_186
  • 配置描述 当需要MapReduce shuffle服务绑定特定IP时,需要在NodeManager实例所在节点的配置文件“mapred-site.xml”中(例如路径为:${BIGDATA_HOME}/FusionInsight_HD_xxx/x_xx_NodeManager/etc/mapred-site.xml)设置下面的参数。 表1 参数描述 参数 描述 默认值 mapreduce.shuffle.address 指定地址来运行shuffle服务,格式是IP:PORT,参数的默认值为空。当参数值为空时,将绑定localhost,默认端口为13562。 说明: 如果涉及到的PORT值和配置的mapreduce.shuffle.port值不一样时,mapreduce.shuffle.port将不会生效。 -
  • 操作步骤 以下参数有如下两个配置入口: 服务器端配置 进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。具体操作请参考修改集群服务配置参数章节。 客户端配置 直接在客户端中修改相应的配置文件。 HDFS客户端配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/hdfs-site.xml。 Yarn客户端配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/yarn-site.xml。 MapReduce客户端配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/mapred-site.xml。 表1 多CPU内核设置 配置 描述 参数 默认值 Server/Client 影响 备注 节点容器槽位数 如下配置组合决定了每节点任务(map、reduce)的并发数。 “yarn.nodemanager.resource.memory-mb” “mapreduce.map.memory.mb” “mapreduce.reduce.memory.mb” yarn.nodemanager.resource.memory-mb 说明: MRS 3.x之前版本:需要在MRS控制台上进行配置。 MRS 3.x及之后版本:需要在FusionInsight Manager系统进行配置。 MRS 3.x之前版本: 8192 MRS 3.x及之后版本: 16384 Server 如果所有的任务(map/reduce)需要读写数据至磁盘,多个进程将会同时访问一个磁盘。这将会导致磁盘的IO性能非常的低下。为了改善磁盘的性能,请确保客户端并发访问磁盘的数不大于3。 最大并发的container数量应该为[2.5 * Hadoop中磁盘配置数 ]。 mapreduce.map.memory.mb 说明: 需要在客户端进行配置,配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/mapred-site.xml。 4096 Client mapreduce.reduce.memory.mb 说明: 需要在客户端进行配置,配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/mapred-site.xml。 4096 Client Map输出与压缩 Map任务所产生的输出可以在写入磁盘之前被压缩,这样可以节约磁盘空间并得到更快的写盘速度,同时可以减少至Reducer的数据传输量。需要在客户端进行配置。 mapreduce.map.output.compress指定了Map任务输出结果可以在网络传输前被压缩。这是一个per-job的配置。 mapreduce.map.output.compress.codec指定用于压缩的编解码器。 mapreduce.map.output.compress 说明: 需要在客户端进行配置,配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/mapred-site.xml。 true Client 在这种情况下,磁盘的IO是主要瓶颈。所以可以选择一种压缩率非常高的压缩算法。 编解码器可配置为Snappy,Benchmark测试结果显示Snappy是非常平衡以及高效的编码器。 mapreduce.map.output.compress.codec 说明: 需要在客户端进行配置,配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/mapred-site.xml。 org.apache.hadoop.io.compress.Lz4Codec Client Spills mapreduce.map.sort.spill.percent mapreduce.map.sort.spill.percent 说明: 需要在客户端进行配置,配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/mapred-site.xml。 0.8 Client 磁盘IO是主要瓶颈,合理配置“mapreduce.task.io.sort.mb”可以使溢出至磁盘的内容最小化。 - 数据包大小 当HDFS客户端写数据至数据节点时,数据会被累积,直到形成一个包。然后这个数据包会通过网络传输。dfs.client-write-packet-size配置项可以指定该数据包的大小。这个可以通过每个job进行指定。 dfs.client-write-packet-size 说明: 需要在客户端进行配置,配置文件路径:客户端安装目录/HDFS/hadoop/etc/hadoop/hdfs-site.xml。 262144 Client 数据节点从HDFS客户端接收数据包,然后将数据包里的数据单线程写入磁盘。当磁盘处于并发写入状态时,增加数据包的大小可以减少磁盘寻道时间,从而提升IO性能。 dfs.client-write-packet-size = 262144
  • 日志级别 MapReduce中提供了如表2所示的日志级别。其中日志级别优先级从高到低分别是FATAL、ERROR、WARN、INFO、DEBUG。程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。 表2 日志级别 级别 描述 FATAL FATAL表示当前事件处理存在严重错误信息。 ERROR ERROR表示当前事件处理存在错误信息。 WARN WARN表示当前事件处理存在异常告警信息。 INFO INFO表示记录系统及各事件正常运行状态信息。 DEBUG DEBUG表示系统及系统的调试信息。 如果您需要修改日志级别,请执行如下操作: 进入MapReduce服务参数“全部配置”界面,具体操作请参考修改集群服务配置参数。 左边菜单栏中选择所需修改的角色所对应的日志菜单。 选择所需修改的日志级别。 保存配置,在弹出窗口中单击“确定”使配置生效。 配置完成后立即生效,不需要重启服务。
  • 配置场景 本章节操作适用于MRS 3.x及之后版本。 分布式缓存在两种情况下非常有用。 滚动升级 在升级过程中,应用程序必须保持文字内容(jar文件或配置文件)不变。而这些内容并非基于当前版本的YARN,而是要基于其提交时的版本。这是一个具有挑战性的问题。一般情况下,应用程序(例如MapReduce、Hive、Tez等)需要进行完整的本地安装,将库安装至所有的集群机器(客户端及服务器端机器)中。当集群内开始进行滚动升级或降级时,本地安装的库的版本必然会在应用运行过程时发生改变。在滚动升级过程中,首先只会对少数NodeManager进行升级,这些NodeManager会获得新版本的软件。这导致了行为的不一致,并可能发生运行时错误。 同时存在多个YARN版本 集群管理员可能会在一个集群内运行使用多个版本YARN及Hadoop jars的任务。这在当前很难实现,因为jars已被本地化且只有一个版本。 MapReduce应用框架可以通过分布式缓存进行部署,且无需依赖安装中复制的静态版本。因此,可以在HDFS中存放多版本的Hadoop,并通过配置“mapred-site.xml”文件指定任务默认使用的版本。只需设置适当的配置属性,用户就可以运行不同版本的MapReduce,而无需使用部署在集群中的版本。 图1 具有多个版本NodeManagers及Applications的集群
  • 配置描述 在客户端的“mapred-site.xml”配置文件中进行如下配置。“mapred-site.xml”配置文件在客户端安装路径的config目录下,例如“/opt/client/Yarn/config”。 表1 参数说明 参数 描述 默认值 mapreduce.app-submission.cross-platform 支持在Windows上提交到Linux上运行MR任务的配置项。当该参数的值设为“true”时,表示支持。当该参数的值设为“false”时,表示不支持。 true
  • 配置描述 在客户端的“mapred-site.xml”配置文件中调整如下参数。 “mapred-site.xml”配置文件在客户端安装路径的conf目录下,例如“/opt/client/Yarn/config”。 表1 参数说明 参数 描述 默认值 mapreduce.reduce.shuffle.max-host-failures MR任务在reduce过程中读取远端shuffle数据允许失败的次数。当设置次数大于5时,可以降低客户端应用的失败率。该参数适用于MRS 3.x版本。 5 mapreduce.client.submit.file.replication MR任务在运行时依赖的相关job文件在HDFS上的备份。当备份数大于10时,可以降低客户端应用的失败率。 10
  • 日志级别 HDFS中提供了如表2所示的日志级别,日志级别优先级从高到低分别是FATAL、ERROR、WARN、INFO、DEBUG,程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。 表2 日志级别 级别 描述 FATAL FATAL表示系统运行的致命错误信息。 ERROR ERROR表示系统运行的错误信息。 WARN WARN表示当前事件处理存在异常信息。 INFO INFO表示系统及各事件正常运行状态信息。 DEBUG DEBUG表示系统及系统调试信息。 如果您需要修改日志级别,请执行如下操作: 请参考修改集群服务配置参数,进入HDFS的“全部配置”页面。 左边菜单栏中选择所需修改的角色所对应的日志菜单。 选择所需修改的日志级别。 保存配置,在弹出窗口中单击“确定”使配置生效。 配置完成后立即生效,不需要重启服务。
  • 配置描述 请参考修改集群服务配置参数,进入HDFS的“全部配置”页面,在搜索框中输入参数名称。 表1 参数说明 参数 描述 默认值 ha.health-monitor.rpc-timeout.ms zkfc对namenode健康状态检查的超时时间。增大该参数值,可以防止出现双Active NameNode,降低客户端应用运行异常的概率。 单位:毫秒。取值范围:30000~3600000 180000 ipc.client.connect.max.retries.on.timeouts 客户端与服务端建立Socket连接超时时,客户端的重试次数。 取值范围:1~256 45 ipc.client.connect.timeout 客户端与服务端建立socket连接的超时时间。增大该参数值,可以增加建立连接的超时时间。 单位:毫秒。取值范围:1~3600000 20000
共100000条