华为云用户手册

  • failure-rate策略 在作业失败后会直接重启,但超过设置的失败率后,作业会被认定为失败。在两个连续的重启尝试之间,重启策略会等待一个固定的时间。 以配置10分钟内若重启失败了3次则认为该作业失败,重试时间间隔为10s为例,参数配置为: restart-strategy: failure-raterestart-strategy.failure-rate.max-failures-per-interval: 3restart-strategy.failure-rate.failure-rate-interval: 10 minrestart-strategy.failure-rate.delay: 10 s
  • 操作场景 该任务指导 MRS 集群管理员在Manager创建并设置SparkSQL的角色。SparkSQL角色可设置Spark管理员权限以及数据表的数据操作权限。 用户使用Hive并创建数据库需要加入hive组,不需要角色授权。用户在Hive和HDFS中对自己创建的数据库或表拥有完整权限,可直接创建表、查询数据、删除数据、插入数据、更新数据以及授权他人访问表与对应HDFS目录与文件。默认创建的数据库或表保存在HDFS目录“/user/hive/warehouse”。 如果当前组件使用了Ranger进行权限控制,须基于Ranger配置相关策略进行权限管理,具体操作可参考添加Spark2x的Ranger访问权限策略。 Spark2x开启或关闭Ranger鉴权后,需要重启Spark2x服务,并重新下载客户端,或刷新客户端配置文件spark/conf/spark-defaults.conf: 开启Ranger鉴权:spark.ranger.plugin.authorization.enable=true 关闭Ranger鉴权:spark.ranger.plugin.authorization.enable=false
  • fixed-delay策略 发生故障时会尝试重启作业固定次数,如果超过了最大的尝试次数,作业最终会失败。并且在两次连续重启尝试之间,重启策略会等待固定的时间。 以配置若重启失败了3次则认为该Job失败,重试时间间隔为10s为例,参数配置为: restart-strategy: fixed-delayrestart-strategy.fixed-delay.attempts: 3restart-strategy.fixed-delay.delay: 10 s
  • 简介 Hudi的读操作,作用于Hudi的三种视图之上,可以根据需求差异选择合适的视图进行查询。 Hudi 支持多种查询引擎Spark和Hive,具体支持矩阵见表1和表2。 表1 cow表 查询引擎 实时视图/读优化视图 增量视图 Hive Y Y Spark(SparkSQL) Y Y Spark(SparkDataSource API) Y Y 表2 mor表 查询引擎 实时视图 增量视图 读优化视图 Hive Y Y Y Spark(SparkSQL) Y Y Y Spark(SparkDataSource API) Y Y Y 当前Hudi使用Spark datasource接口读取时,不支持分区推断能力。比如bootstrap表使用datasource接口查询时,可能出现分区字段不显示,或者显示为null的情况。 增量视图,需设置set hoodie.hudicow.consume.mode = INCREMENTAL;,但该参数仅限于增量视图查询,不能用于Hudi表的其他类型查询,和其他表的查询。 恢复配置可设置set hoodie.hudicow.consume.mode = SNAPSHOT;或任意值。 父主题: 读操作指导
  • Oozie常用排查手段 根据任务在Yarn上的任务日志排查,首先把实际的运行任务,比如Hive SQL通过beeline运行一遍,确认Hive无问题。 出现“classnotfoundException”等报错,排查“/user/oozie/share/lib”路径下各组件有没有报错的类的Jar包,如果没有,添加Jar包并执行HDFS上更新了oozie的share lib目录但没有生效。如果执行了更新“share lib”目录依然报找不到类,那么可以查看执行更新“share lib”的命令打印出来的路径“sharelibDirNew”是否是“ /user/oozie/share/lib”, 一定不能是其它目录。 出现NosuchMethodError,排查“/user/oozie/share/lib”路径下各组件的Jar包是不是有多个版本,注意业务本身上传的Jar包冲突,可通过Oozie在Yarn上的运行日志打印的加载的Jar包排查是否有Jar包冲突。 自研代码运行异常,可以先运行Oozie的自带样例,排除Oozie自身的异常。 寻求技术人员的支持,需要收集Yarn上Oozie任务运行日志、Oozie自身的日志及组件的运行的日志,例如使用Oozie运行Hive报异常,需收集Hive的日志。 父主题: Oozie常见问题
  • ClickHouse数据类型 本章节介绍MRS的ClickHouse服务数据类型。 ClickHouse完整数据类型介绍,请参考开源官方数据类型介绍。 表1 ClickHouse数据类型 分类 关键字 数据类型 描述 数据类型 Int8 Int8 取值范围:【-128,127】 Int16 Int16 取值范围:【-32768,32767】 Int32 Int32 取值范围:【-2147483648,2147483647】 Int64 Int64 取值范围:【-9223372036854775808,9223372036854775807】 浮点类型 Float32 单精度浮点数 同C语言Float类型,单精度浮点数在机内占4个字节,用32位二进制描述。 Float64 双精度浮点数 同C语言Double类型,双精度浮点数在机内占8个字节,用64位二进制描述。 Decimal类型 Decimal Decimal 有符号的定点数,可在加、减和乘法运算过程中保持精度。支持几种写法: Decimal(P, S) Decimal32(S) Decimal64(S) Decimal128(S) 说明: P:精度,有效范围:[1:38],决定可以有多少个十进制数字(包括分数)。 S:规模,有效范围:[0:P],决定数字的小数部分中包含的小数位数。 字符串类型 String 字符串 字符串可以是任意长度的。它可以包含任意的字节集,包含空字节。因此,字符串类型可以代替其他 DBMSs 中的VARCHAR、BLOB、CLOB 等类型。 FixedString 固定字符串 当数据的长度恰好为N个字节时,FixedString类型是高效的。 在其他情况下,这可能会降低效率。可以有效存储在FixedString类型的列中的值的示例: 二进制表示的IP地址(IPv6使用FixedString(16)) 语言代码(ru_RU, en_US … ) 货币代码(USD, RUB … ) 二进制表示的哈希值(MD5使用FixedString(16),SHA256使用FixedString(32)) 时间日期类型 Date 日期 用两个字节存储,表示从 1970-01-01(无符号)到当前的日期值。日期中没有存储时区信息。 DateTime 时间戳 用四个字节(无符号的)存储 Unix 时间戳。允许存储与日期类型相同的范围内的值。最小值为 1970-01-01 00:00:00。时间戳类型值精确到秒(没有闰秒)。时区使用启动客户端或服务器时的系统时区。 DateTime64 DateTime64 此类型允许以日期(date)加时间(time)的形式来存储一个时刻的时间值。 布尔型 Boolean Boolean ClickHouse没有单独的类型来存储布尔值。可以使用UInt8 类型,取值限制为0或1。 数组类型 Array Array Array(T),由 T 类型元素组成的数组。T 可以是任意类型,包含数组类型。但不推荐使用多维数组,ClickHouse对多维数组的支持有限。例如,不能在MergeTree表中存储多维数组。 元组类型 Tuple Tuple Tuple(T1, T2, ...),元组,其中每个元素都有单独的类型,不能在表中存储元组(除了内存表)。它们可以用于临时列分组。在查询中,IN表达式和带特定参数的 lambda 函数可以来对临时列进行分组。 Domains数据类型 Domains Domains Domains类型是特定实现的类型: IPv4是与UInt32类型保持二进制兼容的Domains类型,用于存储IPv4地址的值。它提供了更为紧凑的二进制存储的同时支持识别可读性更加友好的输入输出格式。 IPv6是与FixedString(16)类型保持二进制兼容的Domain类型,用于存储IPv6地址的值。它提供了更为紧凑的二进制存储的同时支持识别可读性更加友好的输入输出格式。 枚举类型 Enum8 Enum8 取值范围:【-128,127】 Enum 保存 'string'= integer 的对应关系,例如:Enum8('hello' = 1, 'world' = 2) Enum16 Enum16 取值范围:【-32768,32767】 可为空 Nullable Nullable 除非在ClickHouse服务器配置中另有说明,否则NULL是任何Nullable类型的默认值。Nullable类型字段不能包含在表索引中。 可以与TypeName的正常值存放一起。例如,Nullable(Int8) 类型的列可以存储 Int8 类型值,而没有值的行将存储 NULL。 嵌套类型 nested nested 嵌套的数据结构就像单元格内的表格。嵌套数据结构的参数(列名和类型)的指定方式与CREATE TABLE查询中的指定方式相同。每个表行都可以对应于嵌套数据结构中的任意数量的行。 示例:Nested(Name1 Type1, Name2 Type2, …) 父主题: 使用ClickHouse
  • 场景说明 假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发Spark应用程序实现如下要求: 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。 周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符为“,”。 log1.txt:周六网民停留日志 LiuYang,female,20YuanJing,male,10GuoYijun,male,5CaiXuyu,female,50Liyuan,male,20FangBo,female,50LiuYang,female,20YuanJing,male,10GuoYijun,male,50CaiXuyu,female,50FangBo,female,60 log2.txt:周日网民停留日志 LiuYang,female,20YuanJing,male,10CaiXuyu,female,50FangBo,female,50GuoYijun,male,5CaiXuyu,female,50Liyuan,male,20CaiXuyu,female,50FangBo,female,50LiuYang,female,20YuanJing,male,10FangBo,female,50GuoYijun,male,50CaiXuyu,female,50FangBo,female,60
  • Spark2x表数据脱敏 Ranger支持对Spark2x数据进行脱敏处理(Data Masking),可对用户执行的select操作的返回结果进行处理,以屏蔽敏感信息。 登录Ranger WebUI界面,在首页单击“HADOOP SQL”区域的组件插件名称如“Hive”。 在“Masking”页签单击“Add New Policy”,添加Spark2x权限控制策略。 根据业务需求配置相关参数。 表3 Spark2x数据脱敏参数 参数名称 描述 Policy Name 策略名称,可自定义,不能与本服务内其他策略名称重复。 Policy Conditions IP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。 Policy Label 为当前策略指定一个标签,您可以根据这些标签搜索报告和筛选策略。 Hive Database 配置当前策略适用的Spark2x中的数据库名称。 Hive Table 配置当前策略适用的Spark2x中的表名称。 Hive Column 配置当前策略适用的Spark2x中的列名称。 Description 策略描述信息。 Audit Logging 是否审计此策略。 Mask Conditions 在“Select Group”、“Select User”列选择已创建好的需要授予权限的用户组或用户,单击“Add Conditions”,添加策略适用的IP地址范围,然后在单击“Add Permissions”,勾选“select”权限。 单击“Select Masking Option”,选择数据脱敏时的处理策略: Redact:用x屏蔽所有字母字符,用0屏蔽所有数字字符。 Partial mask: show last 4:只显示最后的4个字符。 Partial mask: show first 4:只显示开始的4个字符。 Hash:对数据进行Hash处理。 Nullify:用NULL值替换原值。 Unmasked(retain original value):不脱敏,显示原数据。 Date: show only year:日期格式数据只显示年份信息。 Custom:可使用任何有效Hive UDF(返回与被屏蔽的列中的数据类型相同的数据类型)来自定义策略。 如需添加多列的脱敏策略,可单击按钮添加。 Deny Conditions 策略拒绝条件,配置本策略内拒绝的权限及例外,配置方法与“Allow Conditions”类型。
  • 操作步骤 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger管理界面。 在首页中单击“STORM”区域的“Storm”。 单击“Add New Policy”,添加Storm权限控制策略。 根据业务需求配置相关参数。 表1 Storm权限参数 参数名称 描述 Policy Conditions IP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。 Policy Name 策略名称,可自定义,不能与本服务内其他策略名称重复。 “include”策略适用于当前输入的对象,“exclude”表示策略适用于除去当前输入内容之外的其他对象。 Policy Label 为当前策略指定一个标签,您可以根据这些标签搜索报告和筛选策略。 Storm Topology 配置当前策略适用的拓扑名称。可以填写多个值。 Description 策略描述信息。 Audit Logging 是否审计此策略。 Allow Conditions 策略允许条件,配置本策略内允许的权限及例外。 在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的Role、用户组或用户,单击“Add Conditions”,添加策略适用的IP地址范围,单击“Add Permissions”,添加对应权限。 Submit Topology:提交拓扑。 说明: Submit Topology权限只有在Storm Topology为*的情况下可以赋权生效。 File Upload:文件上传。 File Download:文件下载。 Kill Topology:删除拓扑。 Rebalance:Rebalance操作权限。 Activate:激活权限。 Deactivate:去激活权限。 Get Topology Conf:获取拓扑配置。 Get Topology:获取拓扑。 Get User Topology:获取用户拓扑。 Get Topology Info:获取拓扑信息。 Upload New Credential:上传新的凭证。 Select/Deselect All:全选/取消全选。 如需添加多条权限控制规则,可单击按钮添加。 如需当前条件中的用户或用户组管理本条策略,可勾选“Delegate Admin”,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除本策略,它还可以基于原始策略创建子策略。 Deny Conditions 策略拒绝条件,配置本策略内拒绝的权限及例外,配置方法与“Allow Conditions”类似。 (可选)添加策略有效期。在页面右上角单击“Add Validity period”,设置“Start Time”和“End Time”,选择“Time Zone”。单击“Save”保存。如需添加多条策略有效期,可单击按钮添加。如需删除策略有效期,可单击按钮删除。 单击“Add”,在策略列表可查看策略的基本信息。等待策略生效后,验证相关权限是否正常。 如需禁用某条策略,可单击按钮编辑策略,设置策略开关为“Disabled”。 如果不再使用策略,可单击按钮删除策略。
  • 操作步骤 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger管理界面。 在首页中单击“HDFS”区域的组件插件名称,例如“hacluster”。 单击“Add New Policy”,添加HDFS权限控制策略。 根据业务需求配置相关参数。 表1 HDFS权限参数 参数名称 描述 Policy Name 策略名称,可自定义,不能与本服务内其他策略名称重复。 Policy Conditions IP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。 Policy Label 为当前策略指定一个标签,可以根据这些标签搜索报告和筛选策略。 Resource Path 资源路径,配置当前策略适用的HDFS路径文件夹或文件,可填写多个值,支持使用通配符“*”(例如“/test/*”)。 如需子目录继承上级目录权限,可打开递归开关按钮。 如果父目录开启递归,同时子目录也配置了策略,则子目录同时拥有父目录和子目录的策略;如果父目录与子目录的策略相悖,则以子目录策略为准。 non-recursive:关闭递归 recursive:打开递归 Description 策略描述信息。 Audit Logging 是否审计此策略。 Allow Conditions 策略允许条件,配置本策略内允许的权限及例外,例外条件优先级高于正常条件。 在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的Role、用户组或用户,单击“Add Conditions”,添加策略适用的IP地址范围,单击“Add Permissions”,添加对应权限。 Read:读权限 Write:写权限 Execute:执行权限 Select/Deselect All:全选/取消全选 如需让当前条件中的用户或用户组管理本条策略,可勾选“Delegate Admin”使这些用户或用户组成为受委托的管理员。被委托的管理员可以更新、删除本策略,还可以基于原始策略创建子策略。 如需添加多条权限控制规则,可单击按钮添加。如需删除权限控制规则,可单击按钮删除。 Exclude from Allow Conditions:配置排除在允许条件之外的例外规则。 Deny All Other Accesses 是否拒绝其它所有访问。 True:拒绝其它所有访问。 False:设置为false,可配置Deny Conditions。 Deny Conditions 策略拒绝条件,配置本策略内拒绝的权限及例外,配置方法与“Allow Conditions”类似,拒绝条件的优先级高于“Allow Conditions”中配置的允许条件。 Exclude from Deny Conditions:配置排除在拒绝条件之外的例外规则。 例如为用户“testuser”添加“/user/test”目录的写权限,配置如下: 表2 设置权限 任务场景 角色授权操作 设置HDFS管理员权限 在首页中单击“HDFS”区域的组件插件名称,例如“hacluster”。 选择“Policy Name”为“all - path”的策略,单击按钮编辑策略。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 设置用户执行HDFS检查和HDFS修复的权限 在“Resource Path”配置文件夹或文件。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Read”和“Execute”。 设置用户读取其他用户的目录或文件的权限 在“Resource Path”配置文件夹或文件。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Read”和“Execute”。 设置用户在其他用户的文件写入数据的权限 在“Resource Path”配置文件夹或文件。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Write”和“Execute”。 设置用户在其他用户的目录新建或删除子文件、子目录的权限 在“Resource Path”配置文件夹或文件。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Write”和“Execute”。 设置用户在其他用户的目录或文件执行的权限 在“Resource Path”配置文件夹或文件。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Execute”。 设置子目录继承上级目录权限 在“Resource Path”配置文件夹或文件。 打开递归开关按钮,“Recursive”即为打开递归。 (可选)添加策略有效期。在页面右上角单击“Add Validity period”,设置“Start Time”和“End Time”,选择“Time Zone”。单击“Save”保存。如需添加多条策略有效期,可单击按钮添加。如需删除策略有效期,可单击按钮删除。 单击“Add”,在策略列表可查看策略的基本信息。等待策略生效后,验证相关权限是否正常。 如需禁用某条策略,可单击按钮编辑策略,设置策略开关为“Disabled”。 如果不再使用策略,可单击按钮删除策略。
  • 在安全区中配置权限策略 使用Ranger安全区管理员用户登录Ranger管理页面。 在Ranger首页右上角的“Security Zone”选项的下拉列表中选择对应的安全区,即可切换至该安全区内的权限视图。 单击组件名称下的权限插件名称,即可进入组件安全访问策略列表页面。 各组件的策略列表中,系统默认生成的条目会自动继承至安全区内,用于保证集群内的部分系统默认用户或用户组的权限。 单击“Add New Policy”,根据业务场景规划配置相关用户或者用户组的资源访问策略。 例如在本章节样例中,在安全区内配置一条允许“test”用户访问“/testzone/test”目录的策略: 其他不同组件的完整访问策略配置样例参考: 添加HDFS的Ranger访问权限策略 添加HBase的Ranger访问权限策略 添加Hive的Ranger访问权限策略 添加Yarn的Ranger访问权限策略 添加Spark2x的Ranger访问权限策略 添加Kafka的Ranger访问权限策略 添加Storm的Ranger访问权限策略 策略添加后,需等待30秒左右,待系统生效。 安全区中定义的策略仅适用于区域中的资源,服务的资源被划分到安全区后,非安全区针对该资源的访问权限策略将不再生效。 如需配置针对当前安全区之外其他资源的访问策略,需在Ranger首页右上角的“Security Zone”选项中退出当前安全区后进行配置。
  • 添加安全区 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger管理界面。 单击“Security Zone”,在区域列表页面中单击,添加安全区。 表1 安全区配置参数 参数名称 描述 示例 Zone Name 配置安全区的名称。 test Zone Description 配置安全区的描述信息。 - Admin Users/Admin Usergroups 配置安全区的管理用户/用户组,可在安全区中添加及修改相关资源的权限策略。 必须至少配置一个用户或用户组。 zone_admin Auditor Users/ Auditor Usergroups 添加审计用户/用户组,可在安全区中查看相关资源权限策略内容。 必须至少配置一个用户或用户组。 zone_user Select Tag Services 选择服务的标签信息。 - Select Resource Services 选择安全区内包含的服务及具体资源。 在“Select Resource Services”中选择服务后,需要在“Resource”列中添加具体的资源对象,例如HDFS服务器的文件目录、Yarn的队列、Hive的数据库及表、HBase的表及列。 /testzone 例如针对HDFS中的“/testzone”目录创建一个安全区,配置如下: 单击“Save”,等待安全区添加成功。 Ranger管理员可在“Security Zone”页面查看当前的所有安全区并单击“Edit”修改安全区的属性信息,当相关资源不需要在安全区中进行管理时,可单击“Delete”删除对应安全区。
  • 查看Ranger审计信息内容 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger管理界面。 单击“Audit”,查看相关审计信息,各页签内容说明请参考表1,条目较多时,单击搜索框可根据关键字字段进行筛选。 表1 Audit信息 页签 内容描述 Access 当前MRS不支持在线查看组件资源的审计日志信息,可登录组件安装节点,进入“/var/log/Bigdata/audit”目录下查看各组件的审计日志。 Admin Ranger上操作审计信息,例如安全访问策略的创建/更新/删除、组件权限策略的创建/删除、role的创建/更新/删除等。 Login Sessions 登录Ranger的用户会话审计信息。 Plugins Ranger内组件权限策略信息。 Plugin Status 各组件节点权限策略的同步审计信息。 User Sync Ranger与LDAP用户同步审计信息。
  • 操作步骤 访问Hue WebUI,请参考访问Hue的WebUI。 单击菜单左侧的,在打开的页面中可以查看Workflow、计划、Bundles任务的相关信息。 默认显示当前集群的所有作业。 作业浏览器显示的数字表示集群中所有作业的总数。 “作业浏览器”将显示作业以下信息: 表1 MRS作业属性介绍 属性名 描述 名称 表示作业的名称。 用户 表示启动该作业的用户。 类型 表示作业的类型。 状态 表示作业的状态,包含“成功”、“正在运行”、“失败”。 进度 表示作业运行进度。 组 表示作业所属组。 开始 表示作业开始时间。 持续时间 表示作业运行使用的时间。 Id 表示作业的编号,由系统自动生成。 如果MRS集群安装了Spark组件,则默认会启动一个作业“Spark-JD BCS erver”,用于执行任务。
  • 操作步骤 访问Hue WebUI,请参考访问Hue的WebUI。 在界面左侧导航栏单击,选择“Bundle”,打开Bundle编辑器。 在作业编辑界面中单击“My Bundle”修改作业的名称。 单击“+添加Coordinator”选择需要编排的Coordinator作业。 根据界面提示设置Coordinator任务调度的开始、结束时间,然后单击右上角的保存作业。 单击编辑器右上角的,在弹出菜单选择,设置Bundle任务的启动时间,根据实际需求单击“+添加参数”设置提交参数,然后关闭对话框保存设置。 因时区转化的原因,此处时间有可能会与当地系统实际时间差异数个小时。比如在中国,此处的时间则会比当地时间晚8个小时。 单击编辑器右上角的,在弹出的确认界面中单击“提交”提交作业。
  • 操作步骤 创建工作流,请参考创建工作流。 在工作流编辑页面,选择“DistCp”按钮,将其拖到操作区中。 当前DistCp操作是否是跨集群操作。 是,执行4。 否,执行7。 对两个集群进行跨Manager集群互信。 在弹出的“Distcp”窗口中配置“源”的值,例如“hdfs://hacluster/user/admin/examples/input-data/text/data.txt”。配置“目标”的值,例如“hdfs://target_ip:target_port/user/admin/examples/output-data/distcp-workflow/data.txt”。然后单击“添加”。 单击右上角的配置按钮,在打开的“属性”页签配置界面中,单击“属性+”,在左边文本框中填写属性名称“oozie.launcher.mapreduce.job.hdfs-servers”,在右边文本框中填写属性值“hdfs://source_ip:source_port,hdfs://target_ip:target_port”,执行8。 source_ip:源集群的HDFS的NameNode的业务地址。 source_port:源集群的HDFS的NameNode的端口号。 target_ip:目标集群的HDFS的NameNode的业务地址。 target_port:目标集群的HDFS的NameNode的端口号。 在弹出的“Distcp”窗口中配置“源”的值,例如“/user/admin/examples/input-data/text/data.txt”。配置“目标”的值,例如“/user/admin/examples/output-data/distcp-workflow/data.txt”。然后单击“添加”。 单击右上角的配置按钮,在打开的配置界面中,单击“删除+”,添加删除目录,例如“/user/admin/examples/output-data/distcp-workflow”。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“Distcp-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考创建工作流。 在工作流编辑页面,选择“数据流”按钮,将其拖到操作区中。 在弹出的“Streaming”窗口中配置“Mapper”的值,例如“/bin/cat”。配置“Reducer”的值,例如“/usr/bin/wc”。然后单击“添加”。 单击“文件+”,添加运行所需的文件。 例如“/user/oozie/share/lib/mapreduce-streaming/hadoop-streaming-xxx.jar”和“/user/oozie/share/lib/mapreduce-streaming/oozie-sharelib-streaming-5.1.0.jar”。 单击右上角的配置按钮。在打开的配置界面中,单击“删除+”,添加删除目录,例如“/user/admin/examples/output-data/streaming_workflow”。 单击“属性+”,添加下列属性。 左边框填写属性名称“mapred.input.dir”,右边框填写属性值“/user/admin/examples/input-data/text”。 左边框填写属性名称“mapred.output.dir”,右边框填写属性值“/user/admin/examples/output-data/streaming_workflow”。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“Streaming-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考创建工作流。 在工作流编辑页面,选择“Shell”按钮,将其拖到操作区中。 在弹出的“Shell”窗口中配置“Shell command”的值,例如“oozie_shell.sh”,然后单击“添加”。 单击“文件+”,添加Shell命令执行文件或Oozie样例执行文件,可以选择存储在HDFS的文件或本地文件。 若文件存储在HDFS上,选择“.sh”文件所在路径即可,例如“user/hueuser/shell/oozie_shell.sh”。 若选择本地文件,则需在“选择文件”界面,单击“上传文件”,上传本地文件,文件上传成功后,选择该文件即可。 如果执行的Shell文件需要传递参数,可单击“参数+”设置参数。 传递参数的顺序需要和Shell脚本中保持一致。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“Shell-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。 配置Shell命令为Linux指令时,请指定为原始指令,不要使用快捷键指令。例如:ls -l ,不要配置成ll。可配置成Shell命令ls ,参数添加一个 “-l”。 Windows上传Shell脚本到HDFS时,请保证Shell脚本的格式为Unix,格式不正确会导致Shell作业提交失败。
  • 操作步骤 创建工作流,请参考创建工作流。 在工作流编辑页面,选择“Fs”按钮,将其拖到操作区中。 在弹出的“Fs”窗口中单击“添加”。 单击“CREATE DIRECTORY+”,添加待创建的HDFS目录。例如“/user/admin/examples/output-data/mkdir_workflow”和“/user/admin/examples/output-data/mkdir_workflow1”。 若单击了“DELETE PATH+”添加待删除的HDFS路径,该参数不能为空,否则会默认删除HDFS的“/user{提交用户名}”目录,可能会导致其他任务运行异常。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“HDFS-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考创建工作流。 在工作流编辑页面,选择“子Workflow”按钮,将其拖到操作区中。 在弹出的“Sub workflow”窗口中配置“Sub-workflow”的值,例如从下拉列表中选取“Java-Workflow”(这个值是已经创建好的工作流之一),然后单击“添加”。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“Subworkflow-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考创建工作流。 在工作流编辑页面,选择“Loader”按钮,将其拖到操作区中。 在弹出的“Loader”窗口中配置“Job id”的值,例如“1”。然后单击“添加”。 “Job id”是需要编排的Loader作业的ID值,可从Loader页面获取。 创建需要调度的Loader作业,并获取该作业ID,具体操作请参见使用Loader相关章节。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“Loader-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考创建工作流。 在工作流编辑页面,选择“MapReduce 作业”按钮,将其拖到操作区中。 在弹出的“MapReduce job”窗口中配置“Jar name”的值,例如“/user/admin/examples/apps/map-reduce/lib/oozie-examples-5.1.0.jar”。然后单击“添加”。 单击“属性+”,添加输入输出相关属性。 例如配置“mapred.input.dir”的值为“/user/admin/examples/input-data/text”,配置“mapred.output.dir”的值为“/user/admin/examples/output-data/map-reduce_workflow”。 单击右上角的配置按钮。在打开的配置界面中,单击“删除+”,添加删除目录,例如“/user/admin/examples/output-data/map-reduce_workflow”。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“MapReduce-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考创建工作流。 在工作流编辑页面,选择“Spark 程序”按钮,将其拖到操作区中。 在弹出的“Spark”窗口配置“Files”,例如“hdfs://hacluster/user/admin/examples/apps/spark2x/lib/oozie-examples.jar”。配置“jar/py name”,例如“oozie-examples.jar” ,配置完成后单击“添加”。 配置“Main class”的值。例如“org.apache.oozie.example.SparkFileCopy”。 单击“参数+”,添加输入输出相关参数。 例如添加: “hdfs://hacluster/user/admin/examples/input-data/text/data.txt” “hdfs://hacluster/user/admin/examples/output-data/spark_workflow” 在“Options list”文本框指定spark参数 , 例如“--conf spark.yarn.archive=hdfs://hacluster/user/spark2x/jars/8.1.0.1/spark-archive-2x.zip --conf spark.eventLog.enabled=true --conf spark.eventLog.dir=hdfs://hacluster/spark2xJobHistory2x”。 此处版本号“8.1.0.1”为示例,可登录 FusionInsight Manager界面,单击右上角的,在下拉框中单击“关于”,在弹框中查看Manager版本号。 单击右上角的配置按钮。配置“Spark Master”的值,例如“yarn-cluster”。配置“Mode”的值,例如“cluster”。 在打开的配置界面中,单击“删除+”,添加删除目录,例如“hdfs://hacluster/user/admin/examples/output-data/spark_workflow”。 单击“属性+”,添加oozie使用的sharelib,左边文本框填写属性名称“oozie.action.sharelib.for.spark”,右边文本框填写属性值“spark2x”。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“Spark-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考创建工作流。 在工作流编辑页面,选择“Java 程序”按钮,将其拖到操作区中。 在弹出的“Java program”窗口中配置“Jar name”的值,例如“/user/admin/examples/apps/java-main/lib/oozie-examples-5.1.0.jar”。配置“Main class”的值,例如“org.apache.oozie.example.DemoJavaMain”。然后单击“添加”。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“Java-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考创建工作流。 在工作流编辑页面,选择“HiveServer2 脚本”按钮,将其拖到操作区中。 在弹出的“HiveServer2 Script”窗口中配置HDFS上的脚本路径,例如“/user/admin/examples/apps/hive2/script.q”,然后单击“添加”。 单击“参数+”,添加输入输出参数。 例如输入参数为“INPUT=/user/admin/examples/input-data/table”,输出参数为“OUTPUT=/user/admin/examples/output-data/hive2_workflow”。 单击右上角的配置按钮。在打开的配置界面中,单击“删除+”,添加删除目录,例如“/user/admin/examples/output-data/hive2_workflow”。 配置“作业 XML”,值为“客户端安装目录/Oozie/oozie-client-*/examples/apps/hive/hive-site.xml”上传至HDFS目录中所在路径,例如“/user/admin/examples/apps/hive2/hive-site.xml”。“HiveServer2 URL”及其他参数无需配置。 若以上的参数和值在使用过程中发生了修改,可在“Oozie客户端安装目录/oozie-client-*/conf/hive-site.xml”文件中查询。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“Hive2-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 使用Oozie客户端 安装客户端,详细操作请参考安装客户端章节。 以客户端安装用户,登录安装客户端的节点。 执行以下命令,切换到客户端安装目录,该操作的客户端目录只是举例,请根据实际安装目录修改。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 判断集群认证模式。 安全模式,执行以下命令进行用户认证。exampleUser为提交任务的用户名。 kinit exampleUser 普通模式,执行6。 配置Hue。 spark2x环境配置(如果不涉及spark2x任务,可以跳过此步骤): hdfs dfs -put /opt/client/Spark2x/spark/jars/*.jar /user/oozie/share/lib/spark2x/ 当HDFS目录“/user/oozie/share”中的Jar包发生变化时,需要重启Oozie服务。 上传Oozie配置文件以及Jar包至HDFS: hdfs dfs -mkdir /user/exampleUser hdfs dfs -put -f /opt/client/Oozie/oozie-client-*/examples /user/exampleUser/ exampleUser为提交任务的用户名。 在提交任务的用户和非job.properties文件均无变更的前提下,客户端安装目录/Oozie/oozie-client-*/examples目录一经上传HDFS,后续可重复使用,无需多次提交。 解决Spark和Yarn关于jetty的jar冲突。 hdfs dfs -rm -f /user/oozie/share/lib/spark/jetty-all-9.2.22.v20170606.jar 普通模式下,上传过程如果遇到“Permission denied”的问题,可执行以下命令进行处理。 su - omm source /opt/client/bigdata_env hdfs dfs -chmod -R 777 /user/oozie exit
  • 回答 这是性能规格的问题,MapReduce任务运行失败的根本原因是由于ApplicationMaster的内存溢出导致的,即物理内存溢出导致被NodeManager kill。 解决方案: 将ApplicationMaster的内存配置调大,在客户端“客户端安装路径/Yarn/config/mapred-site.xml”配置文件中优化如下参数: “yarn.app.mapreduce.am.resource.mb” “yarn.app.mapreduce.am.command-opts”,该参数中-Xmx值建议为0.8*“yarn.app.mapreduce.am.resource.mb”
  • 回答 当集群中有超过阈值的节点都被加入黑名单时,黑名单会释放这些节点,其中阈值为故障节点数与集群总节点数的比值。现在每个节点都有其标签表达式,黑名单阈值应根据有效节点标签表达式关联的节点数进行计算,其值为故障节点数与有效节点标签表达式关联的节点数的比值。 假设集群中有100个节点,其中有10个节点为有效节点标签表达式关联的节点(labelA)。其中所有有效节点标签表达式关联的节点都已经故障,黑名单节点释放阈值默认值为0.33,按照传统的计算方式,10/100=0.1,远小于该阈值。这就造成这10个节点永远无法得到释放,Map&Reduce任务一直无法获取节点,应用程序无法正常运行。实际需要根据与Map&Reduce任务的有效节点关联的节点总数进行计算,即10/10=1,大于黑名单节点释放阈值,节点被释放。 因此即使故障节点数与集群总节点数的比值没有超过阈值,也存在黑名单将这些节点释放的情况。
  • 操作场景 本章节适用于MRS 3.x及后续版本。 HDFS集群可能出现DataNode节点间磁盘利用率不平衡的情况,比如集群中添加新数据节点的场景。如果HDFS出现数据不平衡的状况,可能导致多种问题,比如MapReduce应用程序无法很好地利用本地计算的优势、数据节点之间无法达到更好的网络带宽使用率或节点磁盘无法利用等等。所以MRS集群管理员需要定期检查并保持DataNode数据平衡。 HDFS提供了一个容量均衡程序Balancer。通过运行这个程序,可以使得HDFS集群达到一个平衡的状态,使各DataNode磁盘使用率与HDFS集群磁盘使用率的偏差不超过阈值。图1和图2分别是Balance前后DataNode的磁盘使用率变化。 图1 执行均衡操作前DataNode的磁盘使用率 图2 执行均衡操作后DataNode的磁盘使用率 均衡操作时间估算受两个因素影响: 需要迁移的总数据量: 每个DataNode节点的数据量应大于(平均使用率-阈值)*平均数据量,小于(平均使用率+阈值)*平均数据量。若实际数据量小于最小值或大于最大值即存在不平衡,系统选择所有DataNode节点中偏差最多的数据量作为迁移的总数据量。 Balancer的迁移是按迭代(iteration)方式串行顺序处理的,每个iteration迁移数据量不超过10GB,每个iteration重新计算使用率的情况。 因此针对集群情况,可以大概估算每个iteration耗费的时间(可以通过执行Balancer的日志观察到每次iteration的时间),并用总数据量除以10GB估算任务执行时间。 由于按iteration处理,Balancer可以随时启动或者停止。
  • 回答 当运行任务时,将MR ApplicationMaster或ResourceManager移动为D状态(不间断睡眠状态)或T状态(停止状态),客户端会等待返回任务运行的状态,由于AM无返回,客户端会一直处于等待状态。 为避免出现上述场景,使用“core-site.xml”中的“ipc.client.rpc.timeout”配置项设置客户端超时时间。 该参数的参数值为毫秒。默认值为0,表示无超时。客户端超时的取值范围可以为0~2147483647毫秒。 如果Hadoop进程已处于D状态,重启该进程所处的节点。 “core-site.xml”配置文件在客户端安装路径的conf目录下,例如“/opt/client/Yarn/config”。
共100000条