华为云用户手册

  • 操作场景 Hive业务还可能需要关联使用其他组件,例如HQL语句触发MapReduce任务需要设置Yarn权限,或者Hive over HBase的场景需要HBase权限。以下介绍Hive关联Yarn和Hive over HBase两个场景下的操作。 安全模式下Yarn和HBase的权限管理默认是开启的,因此在安全模式下默认需要配置Yarn和HBase权限。 在普通模式下,Yarn和HBase的权限管理默认是关闭的,即任何用户都有权限,因此普通模式下默认不需要配置Yarn和HBase权限。如果用户修改了YARN或者HBase的配置来开启权限管理,则修改后也需要配置Yarn和HBase权限。 如果当前组件使用了Ranger进行权限控制,须基于Ranger配置相关策略进行权限管理,具体操作可参考添加Hive的Ranger访问权限策略。
  • 操作场景 集群的资源竞争场景如下: 提交两个低优先级的应用Job 1和Job 2。 正在运行中的Job 1和Job 2有部分task处于running状态,但由于集群或队列资源容量有限,仍有部分task未得到资源而处于pending状态。 提交一个较高优先级的应用Job 3,此时会出现如下资源分配情况:当Job 1和Job 2中running状态的task运行结束并释放资源后,Job 3中处于pending状态的task将优先得到这部分新释放的资源。 Job 3完成后,资源释放给Job 1、Job 2继续执行。 用户可以在YARN中配置任务的优先级。任务优先级是通过ResourceManager的调度器实现的。
  • 日志级别 Yarn中提供了如表2所示的日志级别。其中日志级别优先级从高到低分别是OFF、FATAL、ERROR、WARN、INFO、DEBUG。程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。 表2 日志级别 级别 描述 FATAL FATAL表示当前事件处理存在严重错误信息。 ERROR ERROR表示当前事件处理存在错误信息。 WARN WARN表示当前事件处理存在异常告警信息。 INFO INFO表示记录系统及各事件正常运行状态信息 DEBUG DEBUG表示记录系统及系统的调试信息 如果您需要修改日志级别,请执行如下操作: 参考修改集群服务配置参数,进入Yarn服务“全部配置”页面。 在左边菜单栏中选择所需修改的角色所对应的日志菜单。 选择所需修改的日志级别。 单击“保存配置”,在弹出窗口中单击“确定”使配置生效。 配置完成后立即生效,不需要重启服务。
  • 配置描述 参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。 ResourceManager Restart特性配置如下。 表1 ResourceManager Restart参数配置 参数 描述 默认值 yarn.resourcemanager.recovery.enabled 设置是否让ResourceManager在启动后恢复状态。如果设置为true,那yarn.resourcemanager.store.class也必须设置。 true yarn.resourcemanager.store.class 指定用于保存应用程序和任务状态以及证书内容的state-store类。 org.apache.hadoop.yarn.server.resourcemanager.recovery.AsyncZK RMS tateStore 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异步恢复方式。 true yarn.resourcemanager.zk-state-store.num-fetch-threads 启用异步恢复功能,增加工作线程的数量可以加快恢复ZK中保存的任务信息的速度,取值范围大于0。 20 NodeManager Restart特性配置如下。 表2 NodeManager Restart参数配置 参数 描述 默认值 yarn.nodemanager.recovery.enabled 当Nodemanager重启时是否启用日志失败收集功能,是否恢复未完成的Application。 true yarn.nodemanager.recovery.dir NodeManager用于保存container状态的本地目录。 ${SRV_HOME}/tmp/yarn-nm-recovery yarn.nodemanager.recovery.supervised NodeManager是否在监控下运行。开启此特性后NodeManager在退出后不会清理containers,NodeManager会假设自己会立即重启和恢复containers。 true
  • 配置场景 YARN Restart特性包含两部分内容:ResourceManager Restart和NodeManager Restart。 当启用ResourceManager Restart时,升主后的ResourceManager就可以通过加载之前的主ResourceManager的状态信息,并通过接收所有NodeManager上container的状态信息,重构运行状态继续执行。这样应用程序通过定期执行检查点操作保存当前状态信息,就可以避免工作内容的丢失。 当启用NodeManager Restart时,NodeManager在本地保存当前节点上运行的container信息,重启NodeManager服务后通过恢复此前保存的状态信息,就不会丢失在此节点上运行的container进度。
  • 配置描述 参考修改集群服务配置参数进入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。 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”决定。 true 以上配置会影响restful API和shell命令结果,即以上配置开启后,restful API调用和shell命令运行所返回的内容只包含调用用户有权查看的信息。 当yarn.acl.enable或mapreduce.cluster.acls.enabled设置为false时,即关闭Yarn或Mapreduce的权限校验功能。此时任何用户都可以在Yarn或MapReduce上提交任务和查看任务信息,存在安全风险,请谨慎使用。
  • 操作场景 Yarn NodeManager定义的存储目录不正确或Yarn的存储规划变化时, MRS 集群管理员需要在Manager中修改NodeManager的存储目录,以保证Yarn正常工作。NodeManager的存储目录包含本地存放目录“yarn.nodemanager.local-dirs”和日志目录“yarn.nodemanager.log-dirs”。适用于以下场景: 更改NodeManager角色的存储目录,所有NodeManager实例的存储目录将同步修改。 更改NodeManager单个实例的存储目录,只对单个实例生效,其他节点NodeManager实例存储目录不变。
  • 日志级别 MapReduce中提供了如表2所示的日志级别。其中日志级别优先级从高到低分别是FATAL、ERROR、WARN、INFO、DEBUG。程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。 表2 日志级别 级别 描述 FATAL FATAL表示当前事件处理存在严重错误信息。 ERROR ERROR表示当前事件处理存在错误信息。 WARN WARN表示当前事件处理存在异常告警信息。 INFO INFO表示记录系统及各事件正常运行状态信息。 DEBUG DEBUG表示系统及系统的调试信息。 如果您需要修改日志级别,请执行如下操作: 进入 MapReduce服务 参数“全部配置”界面,具体操作请参考修改集群服务配置参数。 左边菜单栏中选择所需修改的角色所对应的日志菜单。 选择所需修改的日志级别。 保存配置,在弹出窗口中单击“确定”使配置生效。 配置完成后立即生效,不需要重启服务。
  • 操作步骤 以下参数有如下两个配置入口: 服务器端配置 进入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 说明: 需要在 FusionInsight Manager系统进行配置。 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
  • 操作步骤 参数入口: 进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。具体操作请参考修改集群服务配置参数章节。 表1 参数说明 参数 描述 默认值 mapreduce.fileoutputcommitter.algorithm.version 用于指定Job的最终输出文件提交的算法版本,取值为“1”或“2”。 说明: 版本2为建议的优化算法版本。该算法通过让任务直接将每个task的输出结果提交到最终的结果输出目录,从而减少大作业的输出提交时间。 2
  • 操作步骤 参数入口: 进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。具体操作请参考修改集群服务配置参数章节。 参数 描述 默认值 mapreduce.map.speculative 设置是否并行执行某些映射任务的多个实例。true表示开启。 false mapreduce.reduce.speculative 设置是否并行执行某些reduce任务的多个实例。true表示开启。 false
  • 操作场景 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阶段的性能。
  • 操作步骤 通过调大如下的参数来进行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启动参数。 -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。当配置为*时表示所有用户或用户组。 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将不会生效。 -
  • 日志级别 HDFS中提供了如表2所示的日志级别,日志级别优先级从高到低分别是FATAL、ERROR、WARN、INFO、DEBUG,程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。 表2 日志级别 级别 描述 FATAL FATAL表示系统运行的致命错误信息。 ERROR ERROR表示系统运行的错误信息。 WARN WARN表示当前事件处理存在异常信息。 INFO INFO表示系统及各事件正常运行状态信息。 DEBUG DEBUG表示系统及系统调试信息。 如果您需要修改日志级别,请执行如下操作: 请参考修改集群服务配置参数,进入HDFS的“全部配置”页面。 左边菜单栏中选择所需修改的角色所对应的日志菜单。 选择所需修改的日志级别。 保存配置,在弹出窗口中单击“确定”使配置生效。 配置完成后立即生效,不需要重启服务。
  • 配置描述 在客户端的“mapred-site.xml”配置文件中调整如下参数。 “mapred-site.xml”配置文件在客户端安装路径的conf目录下,例如“/opt/client/Yarn/config”。 表1 参数说明 参数 描述 默认值 mapreduce.reduce.shuffle.max-host-failures MR任务在reduce过程中读取远端shuffle数据允许失败的次数。当设置次数大于5时,可以降低客户端应用的失败率。 5 mapreduce.client.submit.file.replication MR任务在运行时依赖的相关job文件在HDFS上的备份。当备份数大于10时,可以降低客户端应用的失败率。 10
  • 配置场景 执行一个MapReduce应用会产生两种类型日志文件:作业日志和任务日志。 作业日志由MRApplicationMaster产生,详细记录了作业启动时间、运行时间,每个任务启动时间、运行时间、Counter值等信息。此日志内容被HistoryServer解析以后用于查看作业执行的详细信息。 任务日志记录了每个运行在Container中的任务输出的日志信息。默认情况下,任务日志只会存放在各NodeManager的本地磁盘上。打开日志聚合功能后,NodeManager会在作业运行完成后将本地的任务日志进行合并,写入到HDFS中。 由于MapReduce的作业日志和任务日志(聚合功能开启的情况下)都保存在HDFS上。对于计算任务量大的集群,如果不进行合理的配置对日志文件进行定期归档和删除,日志文件将占用HDFS大量内存空间,增加集群负载。 日志归档是通过Hadoop Archives功能实现的,Hadoop Archives启动的并行归档任务数(Map数)与待归档的日志文件总大小有关。计算公式为:并行归档任务数=待归档的日志文件总大小/归档文件大小。
  • 内存参数设置 NameNode JVM参数配置规则 NameNode JVM参数“GC_OPTS”默认值为: -Xms2G -Xmx4G -XX:NewSize=128M -XX:MaxNewSize=256M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -Djdk.tls.ephemeralDHKeySize=3072 -Djdk.tls.rejectClientInitiatedRenegotiation=true -Djava.io.tmpdir=${Bigdata_tmp_dir} NameNode文件数量和NameNode使用的内存大小成比例关系,文件对象变化时请修改默认值中的“-Xms2G -Xmx4G -XX:NewSize=128M -XX:MaxNewSize=256M”。参考值如下表所示。 表4 NameNode JVM配置 文件对象数量 参考值 10,000,000 “-Xms6G -Xmx6G -XX:NewSize=512M -XX:MaxNewSize=512M” 20,000,000 “-Xms12G -Xmx12G -XX:NewSize=1G -XX:MaxNewSize=1G” 50,000,000 “-Xms32G -Xmx32G -XX:NewSize=3G -XX:MaxNewSize=3G” 100,000,000 “-Xms64G -Xmx64G -XX:NewSize=6G -XX:MaxNewSize=6G” 200,000,000 “-Xms96G -Xmx96G -XX:NewSize=9G -XX:MaxNewSize=9G” 300,000,000 “-Xms164G -Xmx164G -XX:NewSize=12G -XX:MaxNewSize=12G” DataNode JVM参数配置规则 DataNode JVM参数“GC_OPTS”默认值为: -Xms2G -Xmx4G -XX:NewSize=128M -XX:MaxNewSize=256M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -Djdk.tls.ephemeralDHKeySize=3072 -Djdk.tls.rejectClientInitiatedRenegotiation=true -Djava.io.tmpdir=${Bigdata_tmp_dir} 集群中每个DataNode实例平均保存的Blocks= HDFS Block * 3/DataNode节点数,单个DataNode实例平均Block数量变化时请修改默认值中的“-Xms2G -Xmx4G -XX:NewSize=128M -XX:MaxNewSize=256M”。参考值如下表所示。 表5 DataNode JVM配置 单个DataNode实例平均Block数量 参考值 2,000,000 “-Xms6G -Xmx6G -XX:NewSize=512M -XX:MaxNewSize=512M” 5,000,000 “-Xms12G -Xmx12G -XX:NewSize=1G -XX:MaxNewSize=1G” Xmx内存值对应DataNode节点块数阈值,每GB对应500000块数,用户可根据需要调整内存值。
  • 容量规格 NameNode容量规格 在NameNode中,每个文件对象对应DataNode中的一个文件、目录或Block。 一个文件至少占用一个Block,默认每个Block大小为“134217728”即128MB,对应参数为“dfs.blocksize”。默认情况下一个文件小于128MB时,只占用一个Block;文件大于128MB时,占用Block数为:文件大小/128MB。目录不占用Block。 根据“dfs.blocksize”,NameNode的文件对象数计算方法如下: 表1 NameNode文件对象数计算 单个文件大小 文件对象数 小于128MB 1(对应文件)+1(对应Block)=2 大于128MB(例如128G) 1(对应文件)+1,024(对应128GB/128MB=1024 Block)=1,025 主备NameNode支持最大文件对象的数量为300,000,000(最多对应150,000,000个小文件)。“dfs.namenode.max.objects”规定当前系统可生成的文件对象数,默认值为“0”表示不限制。 DataNode容量规格 在HDFS中,Block以副本的形式存储在DataNode中,默认副本数为“3”,对应参数为“dfs.replication”。 集群中所有DataNode角色实例保存的Block总数为:HDFS Block * 3。集群中每个DataNode实例平均保存的Blocks= HDFS Block * 3/DataNode节点数。 表2 DataNode支持规格 项目 规格 单个DataNode实例支持最大Block数 5,000,000 单个DataNode实例上单个磁盘支持最大Block数 500,000 单个DataNode实例支持最大Block数需要的最小磁盘数 10 表3 DataNode节点数规划 HDFS Block数 最少DataNode角色实例数 10,000,000 10,000,000 *3/5,000,000 = 6 50,000,000 50,000,000 *3/5,000,000 = 30 100,000,000 100,000,000 *3/5,000,000 = 60
  • 配置场景 安全加密通道是HDFS中RPC通信的一种加密协议,当用户调用RPC时,用户的login name会通过RPC头部传递给RPC,之后RPC使用Simple Authentication and Security Layer(SASL)确定一个权限协议(支持Kerberos和DIGEST-MD5两种),完成RPC授权。用户在部署安全集群时,需要使用安全加密通道,配置如下参数。安全Hadoop RPC相关信息请参考: MRS 3.2.0之前版本:https://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-common/SecureMode.html#Data_Encryption_on_RPC MRS 3.2.0及之后版本:https://hadoop.apache.org/docs/r3.3.1/hadoop-project-dist/hadoop-common/SecureMode.html#Data_Encryption_on_RPC
  • 配置描述 请参考修改集群服务配置参数,进入HDFS的“全部配置”页面,在搜索框中输入参数名称。 表1 参数说明 参数 描述 默认值 hadoop.rpc.protection 须知: 设置后需要重启服务生效,且不支持滚动重启。 设置后需要重新下载客户端配置,否则HDFS无法提供读写服务。 设置Hadoop中各模块的RPC通道是否加密。通道包括: 客户端访问HDFS的RPC通道。 HDFS中各模块间的RPC通道,如DataNode与NameNode间的RPC通道。 客户端访问Yarn的RPC通道。 NodeManager和ResourceManager间的RPC通道。 Spark访问Yarn,Spark访问HDFS的RPC通道。 Mapreduce访问Yarn,Mapreduce访问HDFS的RPC通道。 HBase访问HDFS的RPC通道。 说明: 用户可在HDFS组件的配置界面中设置该参数的值,设置后全局生效,即Hadoop中各模块的RPC通道的加密属性全部生效。 对RPC的加密方式,有如下三种取值: “authentication”:普通模式默认值,指数据在鉴权后直接传输,不加密。这种方式能保证性能但存在安全风险。 “integrity”:指数据直接传输,即不加密也不鉴权。 为保证数据安全,请谨慎使用这种方式。 “privacy”:安全模式默认值,指数据在鉴权及加密后再传输。这种方式会降低性能。 安全模式:privacy 普通模式:authentication
  • HDFS文件系统目录简介 HDFS文件系统中目录结构如下表所示。 表1 HDFS文件系统目录结构 路径 类型 简略功能 是否可以删除 删除的后果 /tmp/spark2x/sparkhive-scratch 固定目录 存放Spark2x JD BCS erver中metastore session临时文件 否 任务运行失败 /tmp/sparkhive-scratch 固定目录 存放Spark2x cli方式运行metastore session临时文件 否 任务运行失败 /tmp/logs/ 固定目录 存放container日志文件 是 container日志不可查看 /tmp/carbon/ 固定目录 数据导入过程中,如果存在异常CarbonData数据,则将异常数据放在此目录下 是 错误数据丢失 /tmp/Loader-${作业名}_${MR作业id} 临时目录 存放Loader Hbase bulkload作业的region信息,作业完成后自动删除 否 Loader Hbase Bulkload作业失败 /tmp/hadoop-omm/yarn/system/rmstore 固定目录 ResourceManager运行状态信息 是 ResourceManager重启后状态信息丢失 /tmp/archived 固定目录 MR任务日志在HDFS上的归档路径 是 MR任务日志丢失 /tmp/hadoop-yarn/staging 固定目录 保存AM运行作业运行日志、作业概要信息和作业配置属性 否 任务运行异常 /tmp/hadoop-yarn/staging/history/done_intermediate 固定目录 所有任务运行完成后,临时存放/tmp/hadoop-yarn/staging目录下文件 否 MR任务日志丢失 /tmp/hadoop-yarn/staging/history/done 固定目录 周期性扫描线程定期将done_intermediate的日志文件转移到done目录 否 MR任务日志丢失 /tmp/mr-history 固定目录 存储预加载历史记录文件的路径 否 MR历史任务日志数据丢失 /tmp/hive-scratch 固定目录 Hive运行时生成的临时数据,如会话信息等 否 当前执行的任务会失败 /user/{user}/.sparkStaging 固定目录 存储SparkJDB CS erver应用临时文件 否 executor启动失败 /user/spark2x/jars 固定目录 存放Spark2x executor运行依赖包 否 executor启动失败 /user/loader 固定目录 存放loader的作业脏数据以及HBase作业数据的临时存储目录 否 HBase作业失败或者脏数据丢失 /user/loader/etl_dirty_data_dir /user/loader/etl_hbase_putlist_tmp /user/loader/etl_hbase_tmp /user/oozie 固定目录 存放oozie运行时需要的依赖库,需用户手动上传 否 oozie调度失败 /user/mapred/hadoop-mapreduce-xxx.tar.gz 固定文件 MR分布式缓存功能使用的各jar包 否 MR分布式缓存功能无法使用 /user/hive 固定目录 Hive相关数据存储的默认路径,包含依赖的spark lib包和用户默认表数据存储位置等 否 用户数据丢失 /user/omm-bulkload 临时目录 HBase批量导入工具临时目录 否 HBase批量导入任务失败 /user/hbase 临时目录 HBase批量导入工具临时目录 否 HBase批量导入任务失败 /spark2xJobHistory2x 固定目录 Spark2x eventlog数据存储目录 否 HistoryServer服务不可用,任务运行失败 /flume 固定目录 Flume采集到HDFS文件系统中的数据存储目录 否 Flume工作异常 /mr-history/tmp 固定目录 MapReduce作业产生的日志存放位置 是 日志信息丢失 /mr-history/done 固定目录 MR JobHistory Server管理的日志的存放位置 是 日志信息丢失 /tenant 添加租户时创建 配置租户在HDFS中的存储目录,系统默认将自动在“/tenant”目录中以租户名称创建文件夹。例如租户“ta1”,默认HDFS存储目录为“tenant/ta1”。第一次创建租户时,系统自动在HDFS根目录创建“/tenant”目录。支持自定义存储路径。 否 租户不可用 /apps{1~5}/ 固定目录 WebHCat使用到Hive的包的路径 否 执行WebHCat任务会失败 /hbase 固定目录 HBase数据存储目录 否 HBase用户数据丢失 /hbaseFileStream 固定目录 HFS文件存储目录 否 HFS文件丢失,且无法恢复 父主题: 使用HDFS
  • 配置描述 参数入口: 请参考修改集群服务配置参数,进入HDFS的“全部配置”页面,在搜索框中输入参数名称。 表1 参数说明 参数 描述 默认值 dfs.namenode.delegation.token.max-lifetime 该参数为服务器端参数,设置token的最大存活时间,单位为毫秒。取值范围:10000~10000000000000。 604800000 dfs.namenode.delegation.token.renew-interval 该参数为服务器端参数,设置token renew的时间间隔,单位为毫秒。取值范围:10000~10000000000000。 86400000
  • 配置描述 在HDFS中,如果删除HDFS的文件,文件会被保存到trash空间中,不会被立即清除。被删除的文件在超过老化时间后将变为老化文件,会基于系统机制清除或用户手动清除。 参数入口: 请参考修改集群服务配置参数,进入HDFS的“全部配置”页面,在搜索框中输入参数名称。 表1 参数说明 参数 描述 默认值 fs.trash.interval 以分钟为单位的垃圾回收时间,垃圾站中数据超过此时间,会被删除。取值范围:1440~259200。 1440 fs.trash.checkpoint.interval 垃圾检查点间的间隔。单位:分钟。应小于等于fs.trash.interval的值。检查点程序每次运行时都会创建一个新的检查点并会移除fs.trash.interval分钟前创建的检查点。例如,系统每10分钟检测是否存在老化文件,如果发现有老化文件,则删除。对于未老化文件,则会存储在checkpoint列表中,等待下一次检查。 如果此参数的值设置为0,则表示系统不会检查老化文件,所有老化文件会被保存在系统中。 取值范围:0~fs.trash.interval。 说明: 不推荐将此参数值设置为0,这样系统的老化文件会一直存储下去,导致集群的磁盘空间不足。 60
  • 配置描述 参数入口: 请参考修改集群服务配置参数,进入HDFS的“全部配置”页面,在搜索框中输入参数名称。 表1 参数说明 参数 描述 默认值 fs.permissions.umask-mode 当客户端在HDFS上创建文件和目录时使用此umask值(用户掩码)。类似于linux上的文件权限掩码。 可以使用八进制数字也可以使用符号,例如:“022” (八进制,等同于以符号表示的u=rwx,g=r-x,o=r-x),或者“u=rwx,g=rwx,o=”(符号法,等同于八进制的“007”)。 说明: 8进制的掩码,和实际权限设置值正好相反,建议使用符号表示法,描述更清晰。 022
共100000条