华为云用户手册

  • Spark长时间任务安全认证配置 安全模式下,使用Spark CLI(如spark shell、spark sql、spark submit)时,如果使用kinit命令进行安全认证,当执行长时间运行任务时,会因为认证过期导致任务失败。 在客户端的“spark-defaults.conf”配置文件中设置如下参数,配置完成后,重新执行Spark CLI即可。 当参数值为“true”时,需要保证“spark-defaults.conf”和“hive-site.xml”中的Keytab和principal的值相同。 表3 参数说明 参数名称 含义 默认值 spark.kerberos.principal 具有Spark操作权限的principal。请联系 MRS 集群管理员获取对应principal。 - spark.kerberos.keytab 具有Spark操作权限的Keytab文件名称和文件路径。请联系MRS集群管理员获取对应Keytab文件。 - spark.security.bigdata.loginOnce Principal用户是否只登录一次。true为单次登录;false为多次登录。 单次登录与多次登录的区别在于:Spark社区使用多次Kerberos用户登录多次的方案,但容易出现TGT过期或者Token过期异常导致应用无法长时间运行。DataSight修改了Kerberos登录方式,只允许用户登录一次,可以有效的解决过期问题。限制在于,Hive相关的principal与keytab的配置项必须与Spark配置相同。 说明: 当参数值为true时,需要保证“spark-defaults.conf”和“hive-site.xml”中的Keytab和principal的值相同。 true
  • 配置Stage失败重试次数 Spark任务在遇到FetchFailedException时会触发Stage重试。为了防止Stage无限重试,对Stage重试次数进行限制。重试次数可以根据实际需要进行调整。 在Spark客户端的“spark-defaults.conf”文件中配置如下参数。 表1 参数说明 参数 说明 默认值 spark.stage.maxConsecutiveAttempts Stage失败重试最大次数。 4
  • Dynamic Allocation 动态资源调度是On Yarn模式特有的特性,并且必须开启Yarn External Shuffle才能使用这个功能。在使用Spark作为一个常驻的服务时候,动态资源调度将大大的提高资源的利用率。例如JD BCS erver服务,大多数时间该进程并不接受JDBC请求,因此将这段空闲时间的资源释放出来,将极大的节约集群的资源。 表5 参数说明 参数 描述 默认值 spark.dynamicAllocation.enabled 是否使用动态资源调度,用于根据规模调整注册于该应用的executor的数量。注意目前仅在YARN模式下有效。 启用动态资源调度必须将spark.shuffle.service.enabled设置为true。以下配置也与此相关:spark.dynamicAllocation.minExecutors、spark.dynamicAllocation.maxExecutors和spark.dynamicAllocation.initialExecutors。 JDB CS erver2x: true SparkResource2x: false spark.dynamicAllocation.minExecutors 最小Executor个数。 0 spark.dynamicAllocation.initialExecutors 初始Executor个数。 spark.dynamicAllocation.minExecutors spark.dynamicAllocation.maxExecutors 最大executor个数。 2048 spark.dynamicAllocation.schedulerBacklogTimeout 调度第一次超时时间。单位为秒。 1s spark.dynamicAllocation.sustainedSchedulerBacklogTimeout 调度第二次及之后超时时间。 1s spark.dynamicAllocation.executorIdleTimeout 普通Executor空闲超时时间。单位为秒。 60 spark.dynamicAllocation.cachedExecutorIdleTimeout 含有cached blocks的Executor空闲超时时间。 JDBCServer2x:2147483647s IndexServer2x:2147483647s SparkResource2x:120
  • 快速配置常用参数 其他参数在安装集群时已进行了适配,以下参数需要根据使用场景进行调整。以下参数除特别指出外,一般在Spark2x客户端的“spark-defaults.conf”文件中配置。 表1 快速配置常用参数 配置项 说明 默认值 spark.sql.parquet.compression.codec 对于非分区parquet表,设置其存储文件的压缩格式。 在JDBCServer服务端的“spark-defaults.conf”配置文件中进行设置。 snappy spark.dynamicAllocation.enabled 是否使用动态资源调度,用于根据规模调整注册于该应用的executor的数量。目前仅在YARN模式下有效。 JDBCServer默认值为true,client默认值为false。 false spark.executor.memory 每个Executor进程使用的内存数量,与JVM内存设置字符串的格式相同(例如:512m,2g)。 4G spark.sql.autoBroadcastJoinThreshold 当进行join操作时,配置广播的最大值。 当SQL语句中涉及的表中相应字段的大小小于该值时,进行广播。 配置为-1时,将不进行广播。 10485760 spark.yarn.queue JDBCServer服务所在的Yarn队列。 在JDBCServer服务端的“spark-defaults.conf”配置文件中进行设置。 default spark.driver.memory 大集群下推荐配置32~64g驱动程序进程使用的内存数量,即SparkContext初始化的进程(例如:512m, 2g)。 4G spark.yarn.security.credentials.hbase.enabled 是否打开获取HBase token的功能。如果需要Spark-on-HBase功能,并且配置了安全集群,参数值设置为“true”。否则设置为“false”。 false spark.serializer 用于串行化将通过网络发送或需要缓存的对象的类以序列化形式展现。 Java序列化的默认值适用于任何Serializable Java对象,但运行速度相当慢,所以建议使用org.apache.spark.serializer.KryoSerializer并配置Kryo序列化。可以是org.apache.spark.serializer.Serializer的任何子类。 org.apache.spark.serializer.JavaSerializer spark.executor.cores 每个执行者使用的内核个数。 在独立模式和Mesos粗粒度模式下设置此参数。当有足够多的内核时,允许应用程序在同样的worker上执行多个执行程序;否则,在每个worker上,每个应用程序只能运行一个执行程序。 1 spark.shuffle.service.enabled NodeManager中一个长期运行的辅助服务,用于提升Shuffle计算性能。 fasle spark.sql.adaptive.enabled 是否开启自适应执行框架。 false spark.executor.memoryOverhead 每个执行器要分配的堆内存量(单位为兆字节)。 这是占用虚拟机开销的内存,类似于内部字符串,其他内置开销等等。会随着执行器大小(通常为6-10%)而增长。 1GB spark.streaming.kafka.direct.lifo 配置是否开启Kafka后进先出功能。 false
  • 场景说明 假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发Spark应用程序实现如下要求: 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。 周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符为“,”。 log1.txt:周六网民停留日志 LiuYang,female,20 YuanJing,male,10 GuoYijun,male,5 CaiXuyu,female,50 Liyuan,male,20 FangBo,female,50 LiuYang,female,20 YuanJing,male,10 GuoYijun,male,50 CaiXuyu,female,50 FangBo,female,60 log2.txt:周日网民停留日志 LiuYang,female,20 YuanJing,male,10 CaiXuyu,female,50 FangBo,female,50 GuoYijun,male,5 CaiXuyu,female,50 Liyuan,male,20 CaiXuyu,female,50 FangBo,female,50 LiuYang,female,20 YuanJing,male,10 FangBo,female,50 GuoYijun,male,50 CaiXuyu,female,50 FangBo,female,60
  • Spark使用说明 MRS 3.3.0-LTS及之后的版本中,Spark2x服务改名为Spark,服务包含的角色名也有差异,例如JobHistory2x变更为JobHistory。 相关涉及服务名称、角色名称的描述和操作请以实际版本为准。 Spark是一个开源的,并行数据处理框架,能够帮助用户简单、快速的开发大数据应用,对数据进行离线处理、流式处理、交互式分析等。 相比于Hadoop,Spark拥有明显的性能优势。 父主题: 使用Spark/Spark2x
  • HetuEngine数据脱敏 Ranger支持对HetuEngine数据进行脱敏处理(Data Masking),可对用户执行的select操作的返回结果进行处理,以屏蔽敏感信息。 登录Ranger WebUI界面,在首页中单击“PRESTO”区域的“HetuEngine”。 在“Masking”页签单击“Add New Policy”,添加HetuEngine数据脱敏策略。 根据业务需求配置相关参数。 表3 HetuEngine数据脱敏参数 参数名称 描述 Policy Name 策略名称,可自定义,不能与本服务内其他策略名称重复。 Policy Conditions IP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。 Policy Label 为当前策略指定一个标签,您可以根据这些标签搜索报告和筛选策略。 Presto Catalog 配置当前策略使用的Catalog名称。 Presto Schema 配置当前策略使用的数据库名称。 Presto Table 配置当前策略使用的表名称。 Presto Column 配置当前策略使用的列名称。 Description 策略描述信息。 Audit Logging 是否审计此策略。 Mask Conditions 在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的对象,单击“Add Conditions”,添加策略适用的IP地址范围,然后再单击“Add Permissions”,勾选“Select”权限。 单击“Select Masking Option”,选择数据脱敏时的处理策略: Redact:用x屏蔽所有字母字符,用0屏蔽所有数字字符。 Partial mask: show last 4:只显示最后的4个字符,其他用x代替。 Partial mask: show first 4:只显示开始的4个字符,其他用x代替。 Hash:用值的哈希值替换原值。 Nullify:用NULL值替换原值。 Unmasked(retain original value):原样显示。 Custom:可使用任何有效返回与被屏蔽的列中的数据类型相同的数据类型来自定义策略。 如需添加多列的脱敏策略,可单击按钮添加。 单击“Add”,在策略列表可查看策略的基本信息。 用户通过HetuEngine客户端对配置了数据脱敏策略的表执行select操作,系统将对数据进行处理后进行展示。
  • 操作步骤 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger WebUI界面。 在首页中单击“PRESTO”区域的“HetuEngine”。 在“Access”页签单击“Add New Policy”,添加HetuEngine权限控制策略。 根据业务需求配置相关参数。 “授予访问表所在的Catalog策略”为基础策略,配置其他策略前必须先确保配置了此策略,可参考表2进行配置。 表1 HetuEngine权限参数 参数名称 描述 Policy Name 策略名称,可自定义,不能与本服务内其他策略名称重复。 Enabled:启用当前策略。 Disabled:不启用当前策略。 Policy Conditions IP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。 Policy Label 为当前策略指定一个标签,您可以根据这些标签搜索报告和筛选策略。 Presto Catalog 适用该策略的数据源Catalog名称,填写*时表示所有Catalog。 Include:策略适用于当前输入的对象。 Exclude:策略适用于除去当前输入内容之外的其他对象。 Schema 适用该策略的schema名称,填写*时表示所有schema。 Include:策略适用于当前输入的对象。 Exclude:策略适用于除去当前输入内容之外的其他对象。 table 适用该策略的table/view名称,填写*时表示所有table。 Include:策略适用于当前输入的对象。 Exclude:策略适用于除去当前输入内容之外的其他对象。 Column 适用该策略的列名,填写*时表示所有列。 Description 策略描述信息。 Audit Logging 是否审计此策略。 Allow Conditions 策略允许条件,配置本策略内允许的权限及例外。 在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的Role、用户组或用户。单击“Add Conditions”,添加策略适用的IP地址范围,单击“Add Permissions”,添加对应权限。 Select:查询权限 Insert:插入权限 Create:创建权限 Drop:drop权限 Delete:删除权限 Use:use权限 Alter:alter权限 Update: update权限 Admin:admin权限 All:所有执行权限(涵盖Admin权限) Select/Deselect All:全选/取消全选 如需添加多条权限控制规则,可单击按钮添加。 如需当前条件中的用户或用户组管理本条策略,可勾选“Delegate Admin”,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除本策略,它还可以基于原始策略创建子策略。 Deny Conditions 策略拒绝条件,配置本策略内拒绝的权限及例外,配置方法与“Allow Conditions”相同。 表2 设置权限 任务场景 角色授权操作 授予访问表所在的Catalog策略 在“Policy Name”填写策略名称。 在“Presto Catalog”填写要授权的资源所在的catalog,如“hive”。 在“Select User”中填授权的Hetu用户。 在“Permissions”中勾选“Select”。 说明: 此策略为基础策略,在配置其他策略前必须先确保配置了此策略。 授予访问远端HetuEngine表的权限 在“Policy Name”填写策略名称。 在“Presto Catalog”填写要授权的表所在的catalog,“systemremote”和“svc”。 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入“*”。 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入“*”。 在“table”下方的下拉框中选中“column”,同时在其对应的输入框中输入“*”。 在“Select User”中填授权的远端HetuEngine用户。 在“Permissions”中勾选“Create、Drop、Select、Insert”。 说明: 此策略为远端HetuEngine表的基础策略,在配置其他策略前必须先确保配置了此策略。 Create schema 在“Policy Name”填写策略名称。 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权的schema名称。如果填“*”,表示对所有当前catalog下的所有schema进行授权。 在“Select User”中填授权的Hetu用户。 在“Permissions”中勾选“Create”。 Drop schema 在“Policy Name”填写策略名称。 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权的schema名称。如使用“*”,表示对所有当前catalog下的所有schema进行授权。 在“Select User”中填授权的Hetu用户。 在“Permissions”中勾选“Drop”。 Create table 在“Policy Name”填写策略名称。 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。 在“Select User”中填授权的Hetu用户。 在“Permissions”中勾选“Create”。 Drop table 在“Policy Name”填写策略名称。 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。 在“Select User”中填授权的Hetu用户。 在“Permissions”中勾选“Drop”。 Alter table 在“Policy Name”填写策略名称。 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。 在“Select User”中填授权的Hetu用户。 在“Permissions”中勾选“Alter”。 说明: ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec[, PARTITION partition_spec, ...]; 的操作需要额外授予Table级别的“delete”和Column级别的“select”权限。 Show tables 在“Policy Name”填写策略名称。 在“Presto Catalog”填写要授权的表所在的catalog,如“hive”。 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入允许show table的目标schema,如“default”。 在“Select User”中填授权的Hetu用户。 在“Permissions”中勾选“Select”。 Insert表 在“Policy Name”填写策略名称。 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。 在“Select User”中填授权的Hetu用户。 在“Permissions”中勾选“Insert”。 Delete 在“Policy Name”填写策略名称。 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。 在“Select User”中填授权的Hetu用户。 在“Permissions”中勾选“Delete”。 Select 在“Policy Name”填写策略名称。 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。 在“table”下方的下拉框中选中“column”,同时在其对应的输入框中输入要授权的目标column。如使用“*”,表示对所有当前table下的所有column进行授权 在“Select User”中填授权的Hetu用户。 在“Permissions”中勾选“Select”。 show columns 在“Policy Name”填写策略名称。 在“Presto Catalog”填写要授权的table所在的catalog,如“hive”。 在“Presto Catalog”下方的下拉框中选中“schema”,同时在其对应的输入框中输入要授权table所在的schema,如“default”。 在“schema”下方的下拉框中选中“table”,同时在其对应的输入框中输入要授权的目标table。如使用“*”,表示对所有当前schema下的所有table进行授权。 在“table”下方的下拉框中选中“column”,同时在其对应的输入框中输入要授权的目标column。如使用“*”,表示对所有当前table下的所有column进行授权。 在“Select User”中填授权的Hetu用户。 在“Permissions”中勾选“Select”。 set session 在“Policy Name”填写策略名称。 在“Presto Catalog”填写“*”。 在“Select User”中填授权的Hetu用户。 在“Delegate Admin”中进行勾选。 配置权限后预计30秒左右生效。 目前的权限管控可以到达列的级别。 (可选)添加策略有效期。在页面右上角单击“Add Validity period”,设置“Start Time”和“End Time”,选择“Time Zone”。单击“Save”保存。如需添加多条策略有效期,可单击按钮添加。如需删除策略有效期,可单击按钮删除。 单击“Add”,在策略列表可查看策略的基本信息。等待策略生效后,验证相关权限是否正常。 如需禁用某条策略,可单击按钮编辑策略,设置策略开关为“Disabled”。 如果不再使用策略,可单击按钮删除策略。
  • 操作步骤 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger WebUI界面。 在首页中单击“KAFKA”区域的组件插件名称如“Kafka”。 单击“Add New Policy”,添加Kafka权限控制策略。 根据业务需求配置相关参数。 表1 Kafka权限参数 参数名称 描述 Policy Type Access。 Policy Conditions IP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。 Policy Name 策略名称,可自定义,不能与本服务内其他策略名称重复。 Policy Label 为当前策略指定一个标签,您可以根据这些标签搜索报告和筛选策略。 topic 配置当前策略适用的topic名,可以填写多个值。这里支持通配符,例如:test、test*、*。 “Include”策略适用于当前输入的对象,“Exclude”表示策略适用于除去当前输入内容之外的其他对象。 Description 策略描述信息。 Audit Logging 是否审计此策略。 Allow Conditions 策略允许条件,配置本策略内允许的权限及例外,例外条件优先级高于正常条件。 在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的Role、用户组或用户。 单击“Add Conditions”,添加策略适用的IP地址范围,单击“Add Permissions”,添加对应权限。 Publish:生产权限。 Consume:消费权限。 Describe:查询权限。 Create: 创建主题权限。 Delete: 删除主题权限。 Describe Configs:查询配置权限。 Alter:修改topic的partition数量的权限。 Alter Configs:修改配置权限。 Select/Deselect All:全选/取消全选。 如需添加多条权限控制规则,可单击按钮添加。 如需当前条件中的用户或用户组管理本条策略,可勾选“Delegate Admin”,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除本策略,它还可以基于原始策略创建子策略。 Deny Conditions 策略拒绝条件,配置本策略内拒绝的权限及例外,配置方法与“Allow Conditions”类型,拒绝条件的优先级高于“Allow Conditions”中配置的允许条件。 例如为用户“testuser”添加“test”主题的生产权限,配置如下: 图1 Kafka权限参数 表2 设置权限 任务场景 角色授权操作 设置Kafka管理员权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - topic”的策略,单击按钮编辑策略。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Select/Deselect All”。 设置用户对Topic的创建权限 在“topic”配置Topic名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Create”。 说明: 目前Kafka内核支持"--zookeeper"和"--bootstrap-server"两种方式创建Topic,社区将会在后续的版本中删掉对"--zookeeper"的支持,所以建议用户使用"--bootstrap-server"的方式创建Topic。 注意:目前Kafka只支持"--bootstrap-server"方式创建Topic行为的鉴权,不支持对"--zookeeper"方式的鉴权 设置用户对Topic的删除权限 在“topic”配置Topic名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Delete”。 说明: 目前Kafka内核支持"--zookeeper"和"--bootstrap-server"两种方式删除Topic,社区将会在后续的版本中删掉对"--zookeeper"的支持,所以建议用户使用"--bootstrap-server"的方式删除Topic。 注意:目前Kafka只支持对"--bootstrap-server"方式删除Topic行为的鉴权,不支持对"--zookeeper"方式的鉴权 设置用户对Topic的查询权限 在“topic”配置Topic名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Describe”和“Describe Configs”。 说明: 目前Kafka内核支持"--zookeeper"和"--bootstrap-server"两种方式查询Topic,社区将会在后续的版本中删掉对"--zookeeper"的支持,所以建议用户使用"--bootstrap-server"的方式查询Topic。 注意:目前Kafka只支持对"--bootstrap-server"方式查询Topic行为的鉴权,不支持对"--zookeeper"方式的鉴权 设置用户对Topic的生产权限 在“topic”配置Topic名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Publish”。 设置用户对Topic的消费权限 在“topic”配置Topic名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Consume”。 说明: 因为消费Topic时,涉及到Offset的管理操作,必须同时开启ConsumerGroup的“Consume”权限,详见“设置用户对ConsumerGroup Offsets的提交权限” 设置用户对Topic的扩容权限(增加分区) 在“topic”配置Topic名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Alter”。 设置用户对Topic的配置修改权限 当前Kafka内核暂不支持基于“--bootstrap-server”的Topic参数修改行为,故当前Ranger不支持对此行为的鉴权操作。 设置用户对Cluster的所有管理权限 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Kafka Admin”。 设置用户对Cluster的创建权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - cluster”的策略,单击按钮编辑策略。 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Create”。 说明: 对于Cluster的Create操作鉴权主要涉及以下两个场景: 集群开启了“auto.create.topics.enable”参数后,客户端向服务的还未创建的Topic发送数据的场景,此时会判断用户是否有集群的Create权限 对于用户创建大量Topic的场景,如果授予用户Cluster Create权限,那么该用户可以在集群内部创建任意Topic 设置用户对Cluster的配置修改权限 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Alter Configs”。 说明: 此处的配置修改权限,指的是Broker、Broker Logger的配置权限。 当授予用户配置修改权限后,即使不授予配置查询权限也可查询配置详情(配置修改权限高于且包含配置查询权限)。 设置用户对Cluster的配置查询权限 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Describe”和 “Describe Configs”。 说明: 此处查询指的是查询集群内的Broker、Broker Logger信息。该查询不涉及Topic。 设置用户对Cluster的Idempotent Write权限 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Idempotent Write”。 说明: 此权限会对用户客户端的Idempotent Produce行为进行鉴权。 设置用户对Cluster的分区迁移权限管理 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Alter”。 说明: Cluster的Alter权限可以对以下三种场景进行权限控制: Partition Reassign场景下,迁移副本的存储目录。 集群里各分区内部leader选举。 Acl管理(添加或删除)。 其中1和2都是集群内部Controller与Broker间、Broker与Broker间的操作,创建集群时,默认授予内置kafka用户此权限,普通用户授予此权限没有意义。 3涉及Acl的管理,Acl设计的就是用于鉴权,由于目前kafka鉴权已全部托管给Ranger,所以这个场景也基本不涉及(配置后亦不生效)。 设置用户对Cluster的Cluster Action权限 在“cluster”右侧输入并选择集群名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Cluster Action”。 说明: 此权限主要对集群内部副本主从同步、节点间通信进行控制,在集群创建时已经授权给内置kakfa用户,普通用户授予此权限没有意义。 设置用户对TransactionalId的权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - transactionalid”的策略,单击按钮编辑策略。 在“transactionalid”配置事务ID。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Publish”和 "Describe"。 说明: “Publish”权限主要对用户开启了事务特性的客户端请求进行鉴权,例如事务开启、结束、提交offset、事务性数据生产等行为。 “Describe”权限主要对于开启事务特性的客户端与Coordinator的请求进行鉴权。 建议在开启事务特性的场景下,给用户同时授予“Publish”和“Describe”权限。 设置用户对DelegationToken的权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - delegationtoken”的策略,单击按钮编辑策略。 在“delegationtoken”配置delegationtoken。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“ Describe”。 说明: 当前Ranger对DelegationToken的鉴权控制仅限于对查询的权限控制,不支持对DelegationToken的create、renew、expire操作的权限控制。 设置用户对ConsumerGroup Offsets的查询权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - consumergroup”的策略,单击按钮编辑策略。 在“consumergroup”配置需要管理的consumergroup。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Describe”。 设置用户对ConsumerGroup Offsets的提交权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - consumergroup”的策略,单击按钮编辑策略。 在“consumergroup”配置需要管理的consumergroup。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Consume”。 说明: 当给用户授予了ConsumerGroup的“Consume”权限后,用户会同时被授予“Describe”权限。 设置用户对ConsumerGroup Offsets的删除权限 在首页中单击“KAFKA”区域的组件插件名称,例如“Kafka”。 选择“Policy Name”为“all - consumergroup”的策略,单击按钮编辑策略。 在“consumergroup”配置需要管理的consumergroup。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Delete”。 说明: 当给用户授予了ConsumerGroup的“Delete”权限后,用户会同时被授予“Describe”权限。 (可选)添加策略有效期。在页面右上角单击“Add Validity period”,设置“Start Time”和“End Time”,选择“Time Zone”。单击“Save”保存。如需添加多条策略有效期,可单击按钮添加。如需删除策略有效期,可单击按钮删除。 单击“Add”,在策略列表可查看策略的基本信息。等待策略生效后,验证相关权限是否正常。 如需禁用某条策略,可单击按钮编辑策略,设置策略开关为“Disabled”。 如果不再使用策略,可单击按钮删除策略。
  • 操作步骤 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger WebUI界面。 在首页中单击“HBASE”区域的组件插件名称如“HBase”。 单击“Add New Policy”,添加HBase权限控制策略。 根据业务需求配置相关参数。 表1 HBase权限参数 参数名称 描述 Policy Name 策略名称,可自定义,不能与本服务内其他策略名称重复。 Policy Conditions IP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。 Policy Label 为当前策略指定一个标签,可以根据这些标签搜索报告和筛选策略。 HBase Table 将适用该策略的表。 可支持通配符“*”,例如“table1:*”表示table1下的所有表。 “Include”策略适用于当前输入的对象,“Exclude”表示策略适用于除去当前输入内容之外的其他对象。 说明: Ranger界面上HBase服务插件的“hbase.rpc.protection”参数值必须和HBase服务端的“hbase.rpc.protection”参数值保持一致。具体请参考配置HBase权限策略时无法使用通配符搜索已存在的HBase表。 HBase Column-family 将适用该策略的列族。 “Include”策略适用于当前输入的对象,“Exclude”表示策略适用于除去当前输入内容之外的其他对象。 HBase Column 将适用该策略的列。 “Include”策略适用于当前输入的对象,“Exclude”表示策略适用于除去当前输入内容之外的其他对象。 Description 策略描述信息。 Audit Logging 是否审计此策略。 Allow Conditions 策略允许条件,配置本策略内允许的权限及例外。 在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的Role、用户组或用户,单击“Add Conditions”,添加策略适用的IP地址范围,单击“Add Permissions”,添加对应权限。 Read:读权限 Write:写权限 Create:创建权限 Admin:管理权限 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:配置排除在拒绝条件之外的例外规则。 表2 设置权限 任务场景 角色授权操作 设置HBase管理员权限 在首页中单击“HBase”区域的组件插件名称,例如“HBase”。 选择“Policy Name”为“all - table, column-family, column”的策略,单击按钮编辑策略。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 设置用户创建表的权限 在“HBase Table”配置表名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Create”。 该用户具有以下操作权限: create table drop table truncate table alter table enable table flush table flush region compact disable enable desc 设置用户写入数据的权限 在“HBase Table”配置表名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Write”。 该用户具有put,delete,append,incr等操作权限。 设置用户读取数据的权限 在“HBase Table”配置表名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Read”。 该用户具有get,scan操作权限。 设置用户管理命名空间或表的权限 在“HBase Table”配置表名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Admin”。 该用户具有rsgroup,peer,assign,balance等操作权限。 设置列的读取或写入权限 在“HBase Table”配置表名。 在“HBase Column-family”配置列族名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Read”或者“Write”。 如果用户在hbase shell中执行desc操作,需要同时给该用户赋予hbase:quota表的读权限。 (可选)添加策略有效期。在页面右上角单击“Add Validity period”,设置“Start Time”和“End Time”,选择“Time Zone”。单击“Save”保存。如需添加多条策略有效期,可单击按钮添加。如需删除策略有效期,可单击按钮删除。 单击“Add”,在策略列表可查看策略的基本信息。等待策略生效后,验证相关权限是否正常。 如需禁用某条策略,可单击按钮编辑策略,设置策略开关为“Disabled”。 如果不再使用策略,可单击按钮删除策略。
  • 操作步骤 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger WebUI界面。 在首页中单击“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管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger WebUI界面。 单击“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管理页面。 在Ranger首页右上角的“Security Zone”选项的下拉列表中选择对应的安全区,即可切换至该安全区内的权限视图。 单击组件名称下的权限插件名称,即可进入组件安全访问策略列表页面。 各组件的策略列表中,系统默认生成的条目会自动继承至安全区内,用于保证集群内的部分系统默认用户或用户组的权限。 单击“Add New Policy”,根据业务场景规划配置相关用户或者用户组的资源访问策略。 例如在本章节样例中,在安全区内配置一条允许“test”用户访问“/testzone/test”目录的策略: 其他不同组件的完整访问策略配置样例参考: 添加CDL的Ranger访问权限策略 添加HDFS的Ranger访问权限策略 添加HBase的Ranger访问权限策略 添加Hive的Ranger访问权限策略 添加Yarn的Ranger访问权限策略 添加Spark2x的Ranger访问权限策略 添加Kafka的Ranger访问权限策略 添加HetuEngine的Ranger访问权限策略 策略添加后,需等待30秒左右,待系统生效。 安全区中定义的策略仅适用于区域中的资源,服务的资源被划分到安全区后,非安全区针对该资源的访问权限策略将不再生效。 如需配置针对当前安全区之外其他资源的访问策略,需在Ranger首页右上角的“Security Zone”选项中退出当前安全区后进行配置。
  • 查看Ranger审计信息内容 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger WebUI界面。 单击“Audit”,查看相关审计信息,各页签内容说明请参考表1,条目较多时,单击搜索框可根据关键字段进行筛选。 表1 Audit信息 页签 内容描述 Access 当前MRS不支持在线查看组件资源的审计日志信息,可登录组件安装节点,进入“/var/log/Bigdata/audit”目录下查看各组件的审计日志,日志中主要字段含义如下: result:策略校验结果,0表示拒绝,1表示允许。 policy:匹配生效的策略ID,对应页面中策略的“Policy ID”,若为-1表示未匹配到策略。 action:表示执行的操作权限,对应策略中的“Permissions”中勾选的操作权限。 access:表示执行的操作,各个组件支持的access各不相同。 Admin Ranger上操作审计信息,例如安全访问策略的创建/更新/删除、组件权限策略的创建/删除、role的创建/更新/删除等。 Login Sessions 登录Ranger的用户会话审计信息。 Plugins Ranger内组件权限策略信息。 Plugin Status 各组件节点权限策略的同步审计信息。 User Sync Ranger与LDAP用户同步审计信息。
  • Ranger用户类型 Ranger中的用户可分为Admin、User、Auditor等类型,不同用户具有的Ranger管理界面查看和操作权限不同。 Admin:Ranger安全管理员,可查看所有页面内容,进行服务权限管理插件及权限访问控制策略的管理操作,可查看审计信息内容,可进行用户类型设置。 Auditor:Ranger审计管理员,可查看服务权限管理插件及权限访问控制策略的内容。 User:普通用户,可以被Ranger管理员赋予具体权限。
  • 操作步骤 访问Hue WebUI,请参考访问Hue WebUI界面。 单击菜单左侧的,在打开的页面中可以查看Workflow、计划、Bundles任务的相关信息。 默认显示当前集群的所有作业。 作业浏览器显示的数字表示集群中所有作业的总数。 “作业浏览器”将显示作业以下信息: 表1 MRS作业属性介绍 属性名 描述 名称 表示作业的名称。 用户 表示启动该作业的用户。 类型 表示作业的类型。 状态 表示作业的状态,包含“成功”、“正在运行”、“失败”。 进度 表示作业运行进度。 组 表示作业所属组。 开始 表示作业开始时间。 持续时间 表示作业运行使用的时间。 Id 表示作业的编号,由系统自动生成。 如果MRS集群安装了Spark组件,则默认会启动一个作业“Spark-JDBCServer”,用于执行任务。
  • 操作步骤 访问Hue WebUI,请参考访问Hue WebUI界面。 在界面左侧导航栏单击,选择“Bundle”,打开Bundle编辑器。 在作业编辑界面中单击“My Bundle”修改作业的名称。 单击“+添加Coordinator”选择需要编排的Coordinator作业。 根据界面提示设置Coordinator任务调度的开始、结束时间,然后单击右上角的保存作业。 单击编辑器右上角的,在弹出菜单选择,设置Bundle任务的启动时间,根据实际需求单击“+添加参数”设置提交参数,然后关闭对话框保存设置。 因时区转化的原因,此处时间有可能会与当地系统实际时间差异数个小时。比如在中国,此处的时间则会比当地时间晚8个小时。 单击编辑器右上角的,在弹出的确认界面中单击“提交”提交作业。
  • 操作步骤 在外部节点上确保连接SSH时使用的用户存在,且该用户“~/.ssh”目录存在。 使用omm用户登录Oozie所在节点,查看“~/.ssh/id_rsa.pub”文件是否存在。 是,执行3。 否,执行以下命令生成公私钥: ssh-keygen -t rsa 以omm用户登录oozie实例所在节点,执行以下命令配置互信: ssh-copy-id -i ~/.ssh/id_rsa.pub 运行SSH任务的用户@运行SSH任务的节点的IP地址 执行该命令后需要输入运行SSH任务的用户的密码。 Shell所在节点(外部节点)的账户需要有权限执行Shell脚本并对于所有Shell脚本里涉及到的所有目录文件有足够权限。 如果Oozie具有多个节点,需要在所有Oozie节点执行2~3。 使用omm用户登录依次其他Oozie所在节点,重复执行2-3。
  • 操作步骤 创建工作流,请参考使用Hue创建工作流。 在工作流编辑页面,选择“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界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考使用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界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考使用Hue创建工作流。 在工作流编辑页面,选择“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界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考使用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作业提交失败。
  • 操作步骤 创建工作流,请参考使用Hue创建工作流。 在工作流编辑页面,选择“子Workflow”按钮,将其拖到操作区中。 在弹出的“Sub workflow”窗口中配置“Sub-workflow”的值,例如从下拉列表中选取“Java-Workflow”(这个值是已经创建好的工作流之一),然后单击“添加”。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“Subworkflow-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考使用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界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考使用Hue创建工作流。 在工作流编辑页面,选择“Loader”按钮,将其拖到操作区中。 在弹出的“Loader”窗口中配置“Job id”的值,例如“1”。然后单击“添加”。 “Job id”是需要编排的Loader作业的ID值,可从Loader页面获取。 创建需要调度的Loader作业,并获取该作业ID,具体操作请参见使用Loader相关章节。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“Loader-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考使用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界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考使用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/xxx/spark-archive-2x.zip --conf spark.eventLog.enabled=true --conf spark.eventLog.dir=hdfs://hacluster/spark2xJobHistory2x”。 此处版本号“xxx”为示例,可登录 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界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考使用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客户端的节点。 执行以下命令,获取安装环境信息。其中“/opt/client”为客户端安装路径,该操作的客户端目录只是举例,请根据实际安装目录修改。 source /opt/client/bigdata_env 判断集群认证模式。 安全模式,执行kinit命令进行用户认证。 例如,使用oozieuser用户进行认证。 kinit oozieuser 普通模式,执行4。 根据提交任务类型,进入对应样例目录。 表1 样例目录列表 任务类型 样例目录 Mapreduce任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/map-reduce Java任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/java-main Shell任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/shell Streaming任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/streaming SubWorkflow任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/subwf SSH任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/ssh 定时任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/cron 其他任务样例中已包含HDFS任务样例。 样例目录下需关注文件如表2所示。 表2 文件说明 文件名称 描述 job.properties 工作流的参数变量定义文件。 workflow.xml 工作流的规则定制文件。 lib 工作流运行依赖的jar包目录。 coordinator.xml “cron”目录下存在,定时任务配置文件,用于设置定时策略。 oozie_shell.sh “shell”目录下存在,提交Shell任务需要的Shell脚本文件。 执行以下命令,编辑“job.properties”文件。 vi job.properties 修改如下内容: 更改“userName”的参数值为提交任务的人机用户名,例如“userName=oozieuser”。 执行oozie job命令,运行工作流文件。 oozie job -oozie https://oozie角色的主机名:21003/oozie -config job.properties文件所在路径 -run 例如: oozie job -oozie https://10-1-130-10:21003/oozie -config /opt/client/Oozie/oozie-client-*/examples/apps/map-reduce/job.properties -run 命令参数解释如下: -oozie 实际执行任务的Oozie服务器URL -config 工作流属性文件 -run 运行工作流 执行完工作流文件,显示job id表示提交成功,例如:job: 0000021-140222101051722-oozie-omm-W。登录Oozie管理页面,查看运行情况。 使用oozieuser用户,登录Oozie WebUI页面:https://oozie角色的ip地址:21003/oozie 。 Oozie的WebUI界面中,可在页面表格根据jobid查看已提交的工作流信息。
  • 前提条件 Oozie组件及客户端已经安装,并且正常运行。 已创建或获取访问Oozie服务的人机用户账号及密码。 Shell任务: 该用户需要从属于hadoop、supergroup组,添加Oozie的角色操作权限,并确保Shell脚本在每个nodemanager节点都有执行权限。 SSH任务: 该用户需要从属于hadoop、supergroup组,添加Oozie的角色操作权限,并完成互信配置。 其他任务: 该用户需要从属于hadoop、supergroup组,添加Oozie的角色操作权限,并具备对应任务类型所需的权限。 用户同时还需要至少manager_viewer权限的角色。 获取运行状态的Oozie服务器(任意实例)URL,如“https://10.1.130.10:21003/oozie”。 获取运行状态的Oozie服务器主机名,如“10-1-130-10”。 获取Yarn ResourceManager主节点IP,如10.1.130.11。
共100000条