华为云用户手册

  • 操作场景 图引擎服务在创建图完成后可以导入图数据,或者当您需要新增图数据时,可以利用“导入”功能进行增量导入。 当前仅支持 1.1.8 以上版本的图的增量导入功能。 为防止系统重启时,不能正常恢复导入图数据,建议在使用图期间,不要删除存储在OBS中的数据。 数据列的分隔符默认为逗号,暂不支持自定义。 导入目录下的单文件或者导入的单文件大小不能超过5GB,如果超过5GB,则会导入失败,建议把文件拆成小于5GB的多个文件后再导入。 单次导入的文件总大小(包括点、边数据集)不能超过可用内存的1/5。可用内存参考“运维监控面板”的“节点监控”中名称后缀为ges-dn-1-1和ges-dn-2-1节点可用内存(可以把鼠标悬浮在内存使用率上弹出)的最小值。
  • 任务类型对应表 表2 任务类型和任务名称对应表 任务类型 任务名称 100 点查询 101 创建点 102 删除点 103 修改点属性 104 添加点Label 105 删除点Label 200 边查询 201 创建边 202 删除边 203 修改边属性 300 查询Schema详情 301 添加Label 302 修改Label 303 查询Label 304 修改属性 400 查询图详情 401 清空图 402 在线增量导入图 403 创建图 405 删除图 406 导出图 407 filtered_khop 408 查询路径详情 409 离线增量导入图 500 创建备份 501 从备份恢复图 601 创建索引 602 查询索引 603 更新索引 604 删除索引 700 运行算法
  • 监控指标 表1 图引擎服务支持的监控指标 指标ID 指标名称 指标含义 取值范围 单位 进制 测量对象(维度) 监控周期(原始指标) ges001_vertex_util 点容量使用率 统计图实例的点容量使用率,其值为当前图点个数和图点容量的比值。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges002_edge_util 边容量使用率 统计图实例的边容量使用率,其值为当前图边个数和图边容量的比值。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges003_average_import_rate 平均导入速率 统计图实例导入点或者边的平均速率。 0~400000 值类型:Float Count/s 不涉及 GES实例 1分钟 ges004_request_count 请求个数 统计图实例接收的请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges005_average_response_time 平均响应时间 统计图实例接收请求平均响应时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges006_min_response_time 最小响应时间 统计图实例接收请求最小响应时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges007_max_response_time 最大响应时间 统计图实例接收请求最大响应时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges008_read_task_pending_queue_size 读任务等待队列长度 统计图实例读请求任务等待队列长度,用于查看当前等待的读请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges009_read_task_pending_max_time 读任务最长等待时间 统计图实例读请求任务最长等待时间,用于查看读请求最长的等待时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges010_pending_max_time_ read_task_type 等待最长的读任务类型 统计图实例等待最长的读请求任务类型,参考任务类型和任务名称对应表可以找到对应的任务名称。 ≥1 值类型:Int - 不涉及 GES实例 1分钟 ges011_read_task_running_queue_size 读任务运行队列长度 统计图实例读请求任务运行队列长度,用于查看当前正在运行的读请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges012_read_task_running_max_time 读任务最长运行时间 统计图实例读任务最长运行时间,用于查看读请求最长的运行时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges013_running_max_time_ read_task_type 运行最长的读任务类型 统计图实例运行最长的读请求类型,参考可以找到对应的任务名称。 ≥1 值类型:Int - 不涉及 GES实例 1分钟 ges014_write_task_pending_queue_size 写任务等待队列长度 统计图实例写请求任务等待队列长度,用于查看当前等待的写请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges015_write_task_pending_max_time 写任务最长等待时间 统计图实例写请求任务最长等待时间,用于查看写请求最长的等待时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges016_pending_max_time_ write_task_type 等待最长的写任务类型 统计图实例等待最长的写请求任务类型,参考任务类型和任务名称对应表可以找到对应的任务名称。 ≥1 值类型:Int - 不涉及 GES实例 1分钟 ges017_write_task_running_queue_size 写任务运行队列长度 统计图实例写请求任务运行队列长度,用于查看当前正在运行的写请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges018_write_task_running_max_time 写任务最长运行时间 统计图实例写请求任务最长运行时间,用于查看写请求最长的运行时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges019 _running_max_time_ write_task_type 运行最长的写任务类型 统计运行最长的写请求任务类型,参考可以找到对应的任务名称。 ≥1 值类型:Int - 不涉及 GES实例 1分钟 ges020_computer_resource_usage 计算资源 使用率 统计每个图实例的计算资源使用率。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges021_memory_usage 内存资源使用率 统计每个图实例的内存资源使用率。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges022_iops IOPS 统计每个图实例每秒处理的I/O请求数量。 ≥0 值类型:Int Count/s 不涉及 GES实例 1分钟 ges023_bytes_in 网络输入吞吐量 统计每秒从网络输入每个图实例的数据总量。 ≥0 值类型:Float Byte/s 1024 GES实例 1分钟 ges024_bytes_out 网络输出吞吐量 统计从每个图实例每秒发送到网络的数据总量。 ≥0 值类型:Float Byte/s 1024 GES实例 1分钟 ges025_disk_usage 磁盘利用率 统计每个图实例节点的磁盘使用情况。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges026_disk_total_size 磁盘总大小 统计每个图实例的数据磁盘总大小。 ≥0 值类型:Float GB 不涉及 GES实例 1分钟 ges027_disk_used_size 磁盘使用量 统计每个图实例的数据磁盘已用大小。 ≥0 值类型:Float GB 不涉及 GES实例 1分钟 ges028_disk_read_throughput 磁盘读吞吐量 统计图实例数据磁盘每秒读取的数据量。 ≥0 值类型:Float Byte/s 1024 GES实例 1分钟 ges029_disk_write_throughput 磁盘写吞吐量 统计图实例数据磁盘每秒写入的数据量。 ≥0 值类型:Float Byte/s 1024 GES实例 1分钟 ges030_avg_disk_sec_per_read 磁盘读耗时 统计图实例数据磁盘每次读取数据的平时耗时。 ≥0 值类型:Float s 不涉及 GES实例 1分钟 ges031_avg_disk_sec_per_write 磁盘写耗时 统计图实例数据磁盘每次写入数据的平时耗时。 ≥0 值类型:Float s 不涉及 GES实例 1分钟 ges032_avg_disk_queue_length 磁盘平均队列长度 统计每个图实例数据磁盘平均的I/O队列长度。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟
  • 功能实现方法 准备工作。 需要拥有一个华为账号或一个可用于访问OBS的 IAM 用户,即先注册华为云并实名认证、创建IAM用户、充值以及购买资源包,具体操作请参见使用OBS前需要做的准备工作。 获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对,具体操作请参见获取AK/SK。 已在华为OBS上,创建存储桶(例如“bing.testonly.1”),用于后续存储对象使用,具体操作请参见如何创建桶,请记录创建桶时选择的区域。 创建一个低代码应用。 参考授权用户使用华为云Astro轻应用并购买实例中操作,申请华为云Astro轻应用免费试用或购买商业实例。 实例购买后,在华为云Astro轻应用服务控制台的“主页”中,单击“进入首页”,进入应用开发页面。 在“应用”中,单击“新建低代码应用”或单击,进入新建低代码应用页面。 在新建低代码应用页面,应用类型选择“标准应用”,单击“确定”。 输入应用的标签和名称,单击“新建”,即可进入应用设计器。 图2 创建一个空白应用 表1 新建空白应用参数说明 参数 说明 示例 标签 新建应用的标签,长度不能超过80个字符。标签是应用在系统中的唯一标识,创建后不支持修改。 我的第一个应用 名称 新建应用的名称,输入标签值后单击该参数的输入框,系统会自动生成应用的名称,同时自动在名称前,添加命名空间__。命名要求如下: 长度不能超过31个字符,包括前缀命名空间的长度。 名称前的内容为命名空间,在华为云Astro轻应用中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不允许以下划线结尾。 A 创建一个OBS连接器。 在应用设计器中,选择“集成”,单击“连接器”下的“连接器实例”。 在存储中,选择“OBS”,单击“+”,进入创建OBS页面。 输入基本信息并添加桶,单击“保存”。 图3 设置桶基本信息 图4 添加桶 表2 新建OBS连接器参数说明 参数 说明 示例 名称 新建OBS连接器的名称。命名要求如下: 长度不能超过64个字符,包括前缀命名空间的长度。 标识前模糊掉的内容为命名空间,在华为云Astro轻应用中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 必须以英文字母开头,只能由英文字母,数字和单下划线组成,且不能以下划线结尾。 upload 访问密钥 配置用户的访问密钥AK。 1中获取的Access Key ID值 密钥 配置与访问密钥AK结合使用的私有访问密钥SK。 1中获取的Secret Access Key值 桶 设置存储桶所在的区域和桶名称。 区域选择“华北-北京四”,桶名称为“bing.testonly.1”,即1中提前创建的桶 创建标准页面,用于上传文件。 在应用设计器中,选择“界面”,单击页面后的“+”,新建一个标准页面。 在标准页面中,拖入一个“上传”组件。 图5 拖入上传组件 选中上传组件,存储选择“OBS”,并选择3中创建好的连接器。 图6 设置存储信息 定义文件的上传路径。 图7 设置上传路径 返回标准页面,单击,保存页面,保存成功后单击,预览效果。
  • 应用场景 华为云Astro轻应用提供了自定义低代码页面组件的能力,当预置的组件不能满足您的业务需求时,您可以按照本实践提供的组件规范开发符合自己业务的组件,以此来灵活地扩展平台功能,提高应用构建的效率和灵活性。 本实践以开发一个imgButton组件为例,向您介绍华为云Astro轻应用自定义组件的规范,同时阐述在实现各项功能时需修改的配置项,以及最终发布该自定义组件并在页面上使用的流程,希望在您开发自己的组件时能得到帮助。 本实践中自定义的imgButton组件,用于定制按钮样式、文本等内容。当标准页面预置的按钮组件样式、文本等内容无法满足需求时,可参照本实践进行自定义。
  • 自定义标准页面组件操作流程 华为云Astro轻应用为您提供了一个自定义组件模板包workCards.zip,本章节介绍如何基于workCards.zip模板包自定义一个imgbutton组件,流程如表1所示。 表1 自定义标准页面组件流程说明 序号 步骤 说明 1 步骤一:获取自定义组件模板包 获取自定义组件模板包workCards.zip。 了解workCards.zip模板包的结构和定义规范。 2 步骤二:自定义标准页面组件imgButton 解压workCards.zip模板包,修改解压后的文件夹名称为“imgButton”。 根据业务需求,自定义标准页面组件。 将imgButton文件夹中的内容进行打包,生成自定义组件包“dist\imgButton-***.zip”。 3 步骤三:上传自定义组件包 将自定义组件上传到华为云Astro轻应用。 4 步骤四:验证自定义组件是否符合预期 创建一个标准页面,将自定义组件拖拽到该页面中,组件能够正常显示。为自定义组件添加显示和隐藏事件,检查效果是否达到预期。 父主题: 如何自定义华为云Astro轻应用标准页面组件包
  • 其他操作:通过连接器调用流式报文接口 在华为云Astro轻应用中,除了通过脚本对接大模型接口,还支持通过自定义连接器对接大模型接口。步骤一:创建脚本对接大模型接口中介绍了如何通过脚本对接大模型接口,此处为您介绍如何通过自定义连接器来对接大模型接口。 创建自定义连接器。 在应用设计器中,选择“集成”,单击“连接器”下的“连接器实例”。 在“类型”中,选择“自定义连接器”,进入自定义连接器页面。 单击“+”,配置连接器信息,单击“保存”。 图10 创建自定义连接器 表5 自定义连接器参数说明 参数 说明 示例 标签 自定义连接器的标签,创建后可修改。 取值范围:1~64个字符。 流式连接器 名称 自定义连接器的名称,名称是连接器在系统中的唯一标识,创建后不可修改。命名要求如下: 长度不能超过64个字符,包括前缀命名空间的长度。 标识前模糊掉的内容为命名空间,在华为云Astro轻应用中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。 streamconnector 为自定义连接器添加动作。 在“动作”页签中,单击“新建”。 设置动作的基本信息,单击“下一步”。 图11 设置基本信息 表6 动作基本信息参数说明 参数 说明 示例 标签 新建动作的标签名,用于在页面显示。 取值范围:1~64个字符。 streamaction 名称 新建动作的名称,名称是动作在系统中的唯一标识。命名要求如下: 长度不能超过64个字符,包括前缀命名空间的长度。 标识前模糊掉的内容为命名空间,在华为云Astro轻应用中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。 streamaction URL 待调用大模型接口的URL地址。 https://example.com 方法 选择请求的方法,可以设置为POST或GET。 POST 内容类型 输入内容的类型取决于第三方支持的具体种类,该类型在HTTP标准协议中定义。 application/json 返回类型 选择接口的返回类型,支持“application/json”和“text/event-stream”两种类型。 application/json:选择该类型时,系统将忽略第三方实际返回的“Content-Type”,采用第三方配置的“Content-Type”来解析返回内容。 text/event-stream:选择该类型时,将以处理流式报文的方式处理接口返回值,需要确保第三方接口的返回值为流式报文,且响应体中的“Content-Type”为“text/event-stream”。 text/event-stream 警告: “返回类型”必须设置为“text/event-stream”,否则自定义连接器的执行逻辑不会走流式的处理逻辑。 本示例无需设置消息头入参,请单击删除第一行参数,再单击“下一步”。 设置输入参数,单击“下一步”。 图12 输入参数配置页面 表7仅介绍本实践中使用到的参数,其他参数解释请参见使用自定义连接器调用第三方接口。 表7 输入参数说明 参数 说明 示例 标签 输入参数的标签名,用于在页面显示。 message 名称 新建输入参数的名称,名称是输入参数在系统中的唯一标识。 message 参数位置 设置输入参数的位置。 消息体 数据类型 设置输入参数的数据类型,直接在下拉框中选择。 字符串 本示例无需设置输出参数,请单击删除第一行参数,再单击“保存”。 返回动作页签,单击该动作所在行的,启用该动作。 图13 动作已启用 为连接器添加认证信息。 为连接器添加认证信息不是本实践重点介绍的内容,具体操作可参考步骤2:配置连接器认证信息。 验证连接器调用流式报文接口。 在动作列表中,单击2中创建的动作,进入动作详情页。 在动作详情页,单击页面上方的“测试”。 图14 选择测试 创建脚本,在脚本中调用自定义连接器。 参考步骤一:创建脚本对接大模型接口中操作,创建一个空白脚本,在脚本编辑器中输入如下示例代码。其中,“命名空间__streamconnector”为1中创建连接器的名称,“命名空间__streamaction”为2中为连接器添加的动作,“命名空间__authname”为3中为连接器添加的认证信息。 import * as context from 'context'; import * as connector from 'connector'; /* * The input parameter is defined by `@action.param()`. */ export class Input { @action.param({ type: "String", required: true, description: "the operation type" }) inputParam: string; } /* * The output parameter is defined by `@action.param()`. */ export class Output { } /* * Define the main service class. * * - The service entry function is defined by `@action.method()`. * - All dependent objects should be defined via `@useObject([])` (for objects) or `@useBo([])` (for business objects). */ export class Calculator { @action.method({ input: "Input", output: "Output", description: "do a operation" }) run(input: Input): Output { let output = new Output(); // 页面上自己创建的自定义连接器的调用方法,第一个参数是创建的自定义连接器名称,第二个参数是认证信息名称 let client2 = connector.newClient("命名空间__streamconnector", "命名空间__authname"); let input2 = { "message": input.inputParam, "stream": true }; // 第一个入参是动作名称, 第二个参数是入参 let resp2 = client2.invoke("命名空间__streamaction", input2); context.getHttp().response.setBody(resp2.data) return output; } } 创建一个标准页面,添加一个智能助手组件并做相关设置,具体操作同步骤二:调用流式报文接口实现智能对话。
  • 应用场景 开发者使用华为云Astro轻应用开发标准页面时,如果需要通过智能助手组件或其他组件对接外部大模型接口,可以直接在脚本或自定义连接器中配置对大模型接口的调用,支持以流式报文的形式获取大模型接口的返回值。最终在组件中,可实时接收接口返回信息,用户无需等待接口完成全部数据传输即可查看返回数据。 流式报文是指在数据传输过程中,数据不是一次性全部传输完毕,而是以流的形式逐步传输。 本实践将为您介绍,如何在脚本中调用大数据模型接口,实现在应用中接入大数据模型能力,开发AI应用。
  • 步骤一:创建脚本对接大模型接口 在华为云Astro轻应用中,您可以通过脚本和自定义连接器两种方式来对接大模型接口。本步骤以脚本为例进行介绍,连接器如何对接大模型接口请参见其他操作:通过连接器调用流式报文接口。 创建一个低代码应用。 参考授权用户使用华为云Astro轻应用并购买实例中操作,申请华为云Astro轻应用免费试用或购买商业实例。 实例购买后,在华为云Astro轻应用服务控制台的“主页”中,单击“进入首页”,进入应用开发页面。 在“应用”中,单击“新建低代码应用”或单击,进入新建低代码应用页面。 在新建低代码应用页面,应用类型选择“标准应用”,单击“确定”。 输入应用的标签和名称,单击“新建”,即可进入应用设计器。 图2 创建一个空白应用 表2 新建空白应用参数说明 参数 说明 示例 标签 新建应用的标签,长度不能超过80个字符。标签是应用在系统中的唯一标识,创建后不支持修改。 我的第一个应用 名称 新建应用的名称,输入标签值后单击该参数的输入框,系统会自动生成应用的名称,同时自动在名称前,添加命名空间__。命名要求如下: 长度不能超过31个字符,包括前缀命名空间的长度。 名称前的内容为命名空间,在华为云Astro轻应用中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不允许以下划线结尾。 A 在应用设计器中,选择“逻辑”,单击脚本后的“+”。 新建一个空白的脚本,名称设置为“streamScript”,单击“添加”。 图3 创建脚本 表3 新建脚本参数说明 参数 说明 示例 名称 在输入框中,输入新建脚本的名称。命名要求如下: 长度不能超过63个字符,包括前缀命名空间的长度。 名称前的内容为命名空间,在华为云Astro轻应用中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 必须以英文字母开头,只能由英文字母、数字或单下划线组成,没有连续的下划线,且不能以下划线结尾。 streamScript 在脚本编辑器中,输入示例代码。 本示例代码主要实现的功能包括:创建一个客户端,通过POST方法和GET方法调用相应的接口,使后台以处理流式报文的方式处理接口返回的数据。其中,https://example.com为待调用大模型接口的地址。 通过脚本直接调用SSE协议的ULR时,传入参数“isStream”必须设置为“true”,否则不会走流式的处理逻辑。 import * as context from 'context'; import * as http from 'http'; /* * The input parameter is defined by `@action.param()`. */ export class Input { @action.param({ type: "String", required: true, description: "the operation type" }) inputParam: string; } /* * The output parameter is defined by `@action.param()`. */ export class Output { } /* * Define the main service class. * * - The service entry function is defined by `@action.method()`. * - All dependent objects should be defined via `@useObject([])` (for objects) or `@useBo([])` (for business objects). */ export class CallSseUrl { @action.method({ input: "Input", output: "Output", description: "do a operation" }) run(input: Input): Output { let output = new Output(); let cli = http.newClient() let resp = cli.post("https://example.com", { isStream: true, data: { "message": input.inputParam }, headers: { "Content-Type": "application/json" } }) return output; } } 单击脚本编辑器上方的,保存脚本。 调试脚本验证脚本是否符合预期。 在脚本编辑器上方单击,进入脚本调试页面。 在“输入参数”页签中,输入如下示例。 图4 设置输入参数 { "inputParam": "我想创建一个差旅管理应用" } 单击,执行脚本。 在“输出参数”中,输出如下流式内容,表明脚本输出正常。 图5 脚本输出内容 好的!为您**智能规划**了"**差旅管理**"应用的构建计划如下: 1. 创建一个名为"**差旅管理**"的低代码应用; 2. 添加模型对象"**差旅管理**",包含字段: - **出发城市**(下拉选择) - **目的城市**(下拉选择) - **出发时间**(日期) - **结束时间**(日期) - **出差目的**(文本) 3. 为"**差旅管理**"模型生成一个标准的**增删改查界面**; 4. 配置一条脚本逻辑:"**提交申请后,自动流转到审批人进行审核**"。 请问您是否确认该构建计划? 您可以输入: - "**确认**",我将开始执行; - 或输入**修改意见**,例如"增加一个报销单模型"或"把交通工具改为文本字段"。 脚本校验符合预期后,单击脚本编辑器上方的,启用脚本。
  • 约束与限制 表1 约束与限制说明 限制类别 具体限制 脚本中参数限制 通过脚本直接调用SSE协议的ULR时,需要传入参数“isStream:true”,否则不会走流式的处理逻辑。 连接器配置中动作的限制 动作中的返回类型必须设置为text/event-stream,否则自定义连接器的执行逻辑不会走流式的处理逻辑。 开放接口中参数的限制 如果使用开放接口调用SSE协议的脚本,需要将接口信息中的API类型配置为STREAM(默认是rest),同时URL的前缀应该为/service-stream(会根据api类型自动显示),否则不会走流式的处理逻辑,接口执行会报错。
  • 步骤一:获取自定义组件模板包 为了增强标准页面组件的丰富性,华为云Astro轻应用为您提供了一个自定义组件模板workCards.zip,您可以基于该模板包自定义标准页面组件。开发标准页面组件前,请先了解自定义组件模板包的结构及定义规范,便于快速上手。 单击链接,获取华为云Astro轻应用自定义组件模板workCards.zip。 解压获取的workCards.zip包,了解自定义组件模板包的结构及定义规范。 图1 workCards.zip模板包结构 表1 workCards.zip模板包目录及文件说明 目录及文件 说明 build 用于存放组件的打包脚本。 dist 组件打包文件目录,文件打包后生成于此目录下。 preview 组件预览文件夹。 src 组件的主文件夹,组件的内容位于此文件夹中。 本实践中,自定义组件仅涉及修改“src\components\workCards”目录下的内容,详细介绍请参见表2。 .gitignore Git的忽略文件。 .npmrc 设置package.json中依赖包的安装源。 package.json 项目的依赖文件。 package-lock.json 用于锁定依赖文件的安装版本号。 README.md 项目提示文件,用于编写对该组件的描述。 vite.config.js Vite的配置文件。 图2 src\components\workCards目录结构 表2 src\components\workCards目录结构说明 目录及文件 说明 design-time 开发态组件文件目录。 static 静态文件目录。 cube.svg/workCards.svg 业务中使用的图标。 index.js 组件主入口文件。 workCards.json 组件的描述文件,用于自定义组件配置面板的规格,即校验和辅助编写自定义组件配置面板的JSON文件。workCards.json文件的编写需遵循JSON Schema规范,以便与主流的编辑器(如vscode、atom、sublime text、webstorm)集成。 workCards.json可以在插件包开发时修改,也可以在插件包编译后修改,编译前workCards.json文件存放在“src\components\workCards”目录下(如图3),编译后“dist\components\workCards”目录下(如表3)。 workCards.vue 组件的主文件。 图3 编译前workCards.json文件所在位置 图4 编译后workCards.json文件所在位置 表3 workCards.json参数说明 参数 说明 name 组件的名称,此处配置的名称主要用于后台元数据的存储和解析等。 长度不能超过64个字符,必须以英文字母开头,只能由英文字母、数字和特殊字符(_和-)组成。建议由厂商名_组件名_版本号组成,例如aaa_img-button_1.1.1。 组件的名称会存放在界面元数据的type中,如type: "my-component1"。 zip包的名称应该和此处name的取值保持一致,例如name设置为imgbutton,zip包名必须为imgbutton.zip。 title 组件别名会显示在标准页面开发界面左侧“组件”页签下的扩展组件中,建议简短并能展示组件特性。 取值范围:1~100个字符。 description 组件的描述信息,即当鼠标悬停在组件上时,展示的组件描述信息。 取值范围:1~200个字符。 category 组件的分类,为了保持界面构建器组件分类的一致性,请使用华为云Astro轻应用提供的组件分类,具体分类如表4所示。 icon 组件的图标,分为未选中时和选中时两个,必须为png格式,且每个png的大小不能超过16KB。 其他 用于定义包大小,编译后的组件包大小不能超过1MB。 表4 华为云Astro轻应用组件分类 分类 说明 navigation 导航组件,如菜单、工具栏或侧边栏。 data 数据组件,可以查看和编辑应用程序中的数据,例如Form、Table或List。 common 通用组件,如标签、图片、标题或段落。 container 容器组件,即包含其他组件的容器。例如,栅格布局组件Row/Col、流式布局组件、Panel、Tabs、Collapse或WidgetContainer。 input 显示和编辑实体属性,如文本框、日期选择器。 file 文件处理组件,例如文件上传下载组件、图片浏览组件或PDF预览组件。 button 触发动作的按钮,如保存按钮、页面跳转按钮。 report 聚合数据并以表格或图表的形式显示,如图表、透视表。 widget 业务卡片。 add-on 扩展组件。
  • 多人协同开发,如何控制用户权限? 在华为云Astro轻应用中多人协助开发时,可通过为不同的开发者分配不同的权限,来控制开发者对应用的查看、开发、管理等操作。 参考登录华为云Astro轻应用应用设计器中操作,进入应用设计器。 在应用设计器的右上方,单击图标,进入协同页面。 图1 进入协同页面 单击“管理”下的“开发者”,再单击“被允许的用户”后的“添加”,选择需要协同开发的用户。 图2 选择需要协同开发的用户 单击“下一步”,为添加的用户设置权限,单击“确定”完成添加。 查看应用:允许通过应用设计器访问和查看应用内的元素。 编辑应用:允许进行应用开发编辑,包括应用信息、应用设置和应用内包含的元素。 删除应用:允许将该应用从环境中删除。 版本管理:允许对应用的版本进行管理,如发布版本、切换版本和删除旧版本等。 打包部署:允许打包应用和安装部署应用。 应用管理:允许管理应用的开发者和应用的安全等级等。 例如,为开发者用户“IAMUser01”添加查看查看应用和编辑应用的权限。设置后,在“被允许的用户”中可查看到添加的用户。以“IAMUser01”用户登录应用后,可查看和编辑当前应用。 父主题: 应用前端开发
  • 操作场景 您可以删除不需要的私有镜像。 删除私有镜像后,将无法找回,请谨慎操作。 删除私有镜像后,不能再使用该镜像创建云服务器或云硬盘。 删除私有镜像后,已使用该镜像创建的云服务器仍可正常使用,并会继续产生费用,但是无法重装操作系统,也不能创建相同配置的云服务器。 删除复制镜像的源镜像,对复制后的镜像没有影响;反之亦然。 删除正在制作的整机镜像可能会导致备份残留继续收费,如果不需要此备份,请在云备份或云服务器备份控制台进行删除。
  • 前提条件 云服务器的状态为“运行中”。 需保证根目录可写入,且剩余空间大于300MB。 对于Linux弹性云服务器,selinux会影响重置密码插件运行。若开启了selinux,请参考关闭selinux禁用selinux。 使用SUSE 11 SP4镜像创建的云服务器,内存需要大于等于4G时才能支持一键式重置密码功能。 云服务器使用的VPC网络DHCP不能禁用。 云服务器网络正常通行。 云服务器安全组出方向规则满足如下要求: 协议:TCP 端口范围:80 远端地址:169.254.0.0/16 如果您使用的是默认安全组出方向规则,则已经包括了如上要求,可以正常初始化。默认安全组出方向规则为: 协议:ALL 端口范围:ALL 远端地址:0.0.0.0/16
  • 操作步骤 检查弹性云服务器是否已安装一键式重置密码插件。 以root用户登录弹性云服务器。 执行以下命令,查询是否已安装CloudResetPwdAgent。 ls -lh /Cloud* 图1 查询是否已安装一键式重置密码插件 检查结果是否如图1所示。 是,表示已安装一键式重置密码插件,结束。 否,表示未安装一键式重置密码插件,请继续执行如下操作进行安装。 请参考获取并校验一键式重置密码插件完整性(Linux),下载对应的一键式重置密码插件CloudResetPwdAgent.zip并完成完整性校验。 安装一键式重置密码插件对插件的具体放置目录无特殊要求,请您自定义。 执行以下命令,解压软件包CloudResetPwdAgent.zip。 安装一键式重置密码插件对插件的解压目录无特殊要求,请您自定义。 unzip -o -d 插件解压目录 CloudResetPwdAgent.zip 示例: 假设插件解压的目录为/home/linux/test,则命令行如下: unzip -o -d /home/linux/test CloudResetPwdAgent.zip 安装一键式重置密码插件。 执行以下命令,进入文件CloudResetPwdAgent.Linux。 cd CloudResetPwdAgent/CloudResetPwdAgent.Linux 执行以下命令,添加文件setup.sh的运行权限。 chmod +x setup.sh 执行以下命令,安装插件。 sudo sh setup.sh 如果脚本执行成功打印“cloudResetPwdAgent install successfully.”,且未打印“Failed to start service cloudResetPwdAgent”,表示安装成功。 您也可以根据1,检查密码重置插件是否安装成功。 如果密码重置插件安装失败,请检查安装环境是否符合要求,并重试安装操作。 修改重置密码插件的文件权限。 chmod 700 /CloudrResetPwdAgent/bin/cloudResetPwdAgent.script chmod 700 /CloudrResetPwdAgent/bin/wrapper chmod 600 /CloudrResetPwdAgent/lib/*
  • 安装须知 用户自行决定是否安装CloudResetPwdAgent插件,使云服务器具备一键式重置密码功能。 一键式重置密码插件CloudResetPwdAgent已按照GNU General Public License v2.0协议开源至Github开源平台,开放、透明、安全,请您放心使用。 支持安装一键式重置密码插件的操作系统版本如表1所示。 表1 支持安装一键式重置密码插件的操作系统版本 操作系统类型 操作系统版本 CentOS CentOS 8.3 64bit CentOS 8.2 64bit CentOS 8.1 64bit CentOS 8.0 64bit CentOS 7.3 64bit CentOS 7.2 64bit CentOS 7.0 64bit CentOS 7.1 64bit CentOS 6.9 64bit CentOS 6.8 64bit CentOS 6.8 32bit CentOS 6.6 32bit CentOS 6.6 64bit CentOS 6.5 64bit CentOS 6.4 64bit CentOS 6.3 64bit 说明: CentOS 8需要先关闭selinux后再安装一键式重置密码插件,安装后再根据需要选择是否打开selinux。 Debian Debian 9.0 64bit Debian 8.8 64bit Debian 8.2 64bit Debian 7.5 64bit Debian 7.5 32bit openSUSE openSUSE 42.2 64bit openSUSE 13.2 64bit openSUSE Leap 42.2 64bit openSUSE Leap 42.1 64bit SUSE SUSE 12 SP2 64bit SUSE 12 SP1 64bit SUSE 11 SP4 64bit Ubuntu Ubuntu 16.10 32bit Ubuntu 16.04 32bit Ubuntu Server 16.04 64bit Ubuntu Server 14.04 64bit Ubuntu Server 14.04 32bit EulerOS EulerOS 2.2 64bit Fedora Fedora 25 64bit Fedora 24 64bit Oracle Linux Oracle Linux 7.3 64bit Oracle Linux 6.9 64bit Oracle Linux 6.5 64bit Rocky Linux 64bit:Rocky Linux 9.5 64bit:Rocky Linux 9.4 64bit:Rocky Linux 9.3 64bit:Rocky Linux 9.2 64bit:Rocky Linux 9.0 64bit:Rocky Linux 8.8 64bit:Rocky Linux 8.5 64bit:Rocky Linux 8.4
  • 操作步骤 开发环境安装Eclipse程序,安装要求如下。 Eclipse使用3.0及以上版本。 IntelliJ IDEA使用15.0以上版本。 开发环境安装JDK环境,安装要求如下。 JDK使用1.7或者1.8版本。支持IBM JDK和Oracle JDK。 若使用IBM JDK,请确保Eclipse或者IntelliJ IDEA中的JDK配置为IBM JDK。 若使用Oracle JDK,请确保Eclipse或者IntelliJ IDEA中的JDK配置为Oracle JDK。 不同的Eclipse不要使用相同的workspace和相同路径下的示例工程。 开发环境安装Maven环境,安装版本3.0.0以上。
  • Presto应用开发流程介绍 开发流程中各阶段的说明如图1和表1所示。 图1 Presto应用程序开发流程 表1 Presto应用开发的流程说明 阶段 说明 参考文档 了解基本概念 在开始开发应用前,需要了解Presto的基本概念。 Presto应用开发常用概念 准备开发和运行环境 Presto的应用程序支持使用Java进行开发。推荐使用Eclipse工具,请根据指导完成开发环境配置。 Presto应用开发环境简介 根据场景开发工程 提供了Java语言的样例工程和数据查询的样例工程。 Presto样例程序开发思路 运行程序及查看结果 指导用户将开发好的程序编译提交运行并查看结果。 调测Presto应用 父主题: Presto应用开发概述
  • JDBC客户端运行及结果查看 执行mvn clean compile assembly:single生成jar包,在工程目录target目录下获取,比如:presto-examples-1.0-SNAPSHOT-jar-with-dependencies.jar。 在运行调测环境上创建一个目录作为运行目录,如或“/opt/presto_examples”(Linux环境),并在该目录下创建子目录“conf”。 将1导出的presto-examples-1.0-SNAPSHOT-jar-with-dependencies.jar拷贝到“/opt/presto_examples”下。 开启Kerberos认证集群需要将4获取的user.keytab和krb5.conf拷贝到的/opt/presto_examples/conf下,并修改样例代码中conf目录下的presto.properties。未开启Kerberos认证集群无须执行此步骤。 表1 presto.properties参数说明 参数 说明 user 用于Kerberos认证的用户名,即准备Presto应用开发用户中创建的开发用户的用户名。 KerberosPrincipal 用于认证的名字,即认证准备Presto应用开发用户中创建的开发用户的用户名。 KerberosConfigPath krb5.conf的路径。 KerberosKeytabPath user.keytab的路径。 presto.properties样例: user = prestouser SSL = true KerberosRemoteServiceName = HTTP KerberosPrincipal = prestouser KerberosConfigPath = /opt/presto_examples/conf/krb5.conf KerberosKeytabPath = /opt/presto_examples/conf/user.keytab 在Linux环境下执行运行样例程序。 chmod +x /opt/presto_examples -R cd /opt/presto_examples java -jar presto-examples-1.0-SNAPSHOT-jar-with-dependencies.jar 在命令行终端查看样例代码所查询出的结果。 Linux环境运行成功结果会有如下信息: NY Metro : 2 Mid Atlantic : 6 Mid Atlantic : 6 North Midwest : 1 North Midwest : 3 North Midwest : 7
  • 功能简介 Spark的REST API以JSON格式展现Web UI的一些指标,提供用户一种更简单的方法去创建新的展示和监控的工具,并且支持查询正在运行的app和已经结束的app的相关信息。开源的Spark REST接口支持对Jobs、Stages、Storage、Environment和Executors的信息进行查询, MRS 版本中添加了查询SQL、JDBC/ODBC Server和Streaming的信息的REST接口。开源REST接口完整和详细的描述请参考官网上的文档以了解其使用方法:https://archive.apache.org/dist/spark/docs/2.2.2/monitoring.html#rest-api。
  • REST API增强 SQL相关的命令:获取所有SQL语句和执行时间最长的SQL语句 SparkUI命令: curl https://192.168.195.232:26001/proxy/application_1476947670799_0053/api/v1/applications/Spark-JD BCS erverapplication_1476947670799_0053/SQL?mode=monitoring --insecure 其中192.168.195.232为ResourceManager主节点的业务IP,26001为ResourceManager的端口号,application_1476947670799_0053为在YARN中的应用ID,Spark-JDB CS erver是Spark应用的name。 JobHistory命令: curl https://192.168.227.16:22500/api/v1/applications/application_1478570725074_0004-part1/SQL?mode=monitoring --insecure 其中192.168.227.16为JobHistory节点的业务IP,22500为JobHistory的端口号,application_1478570725074_0004-part1为应用ID。 结果: SparkUI命令和JobHistory命令的查询结果均为: { "longestDurationOfCompletedSQL" : [ { "id" : 0, "status" : "COMPLETED", "description" : "getCallSite at SQLExecution.scala:48", "submissionTime" : "2016/11/08 15:39:00", "duration" : "2 s", "runningJobs" : [ ], "successedJobs" : [ 0 ], "failedJobs" : [ ] } ], "sqls" : [ { "id" : 0, "status" : "COMPLETED", "description" : "getCallSite at SQLExecution.scala:48", "submissionTime" : "2016/11/08 15:39:00", "duration" : "2 s", "runningJobs" : [ ], "successedJobs" : [ 0 ], "failedJobs" : [ ] }] } 结果分析: 通过这个命令,可以查询当前应用的所有SQL语句的信息(即结果中“sqls”的部分),执行时间最长的SQL语句的信息(即结果中“longestDurationOfCompletedSQL”的部分)。每个SQL语句的信息如下表3。 表3 SQL的常用信息 参数 描述 id SQL语句的ID status SQL语句的执行状态,有RUNNING、COMPLETED、FAILED三种 runningJobs SQL语句产生的job中,正在执行的job列表 successedJobs SQL语句产生的job中,执行成功的job列表 failedJobs SQL语句产生的job中,执行失败的job列表
  • 准备运行环境 安装客户端。在节点上安装客户端,如安装到“/opt/client”目录。 确认服务端Spark组件已经安装,并正常运行。 客户端运行环境已安装1.7或1.8版本的JDK。 获取并解压缩安装包“MRS_Spark_Client.tar”。执行如下命令解压。 tar -xvf MRS_Spark_Client.tar tar -xvf MRS_Spark_ClientConfig.tar 由于不兼容老版本客户端,建议用户获取与服务端集群相同版本的客户端安装包进行安装部署。 进入解压文件夹,即“MRS_Spark_ClientConfig”,执行下列命令安装客户端 sh install.sh /opt/client 其中“/opt/client”为用户自定义路径,此处仅为举例。 进入客户端安装目录“/opt/client”,执行下列命令初始化环境变量。 source bigdata_env
  • REST接口 通过以下命令可跳过REST接口过滤器获取相应的应用信息。 获取JobHistory中所有应用信息: 命令: curl https://192.168.227.16:18080/api/v1/applications?mode=monitoring --insecure 其中192.168.227.16为JobHistory节点的业务IP,18080为JobHistory的端口号。 结果: [ { "id" : "application_1478570725074_0042", "name" : "Spark-JDBCServer", "attempts" : [ { "startTime" : "2016-11-09T16:57:15.237CST", "endTime" : "2016-11-09T17:01:22.573CST", "lastUpdated" : "2016-11-09T17:01:22.614CST", "duration" : 247336, "sparkUser" : "spark", "completed" : true } ] }, { "id" : "application_1478570725074_0047-part1", "name" : "SparkSQL::192.168.169.84", "attempts" : [ { "startTime" : "2016-11-10T11:57:36.626CST", "endTime" : "1969-12-31T07:59:59.999CST", "lastUpdated" : "2016-11-10T11:57:48.613CST", "duration" : 0, "sparkUser" : "admin", "completed" : false } ] }] 结果分析: 通过这个命令,可以查询当前集群中所有的Spark应用(包括正在运行的应用和已经完成的应用),每个应用的信息如下表 1 。 表1 应用常用信息 参数 描述 id 应用的ID name 应用的Name attempts 应用的尝试,包含了开始时间、结束时间、执行用户、是否完成等信息 获取JobHistory中某个应用的信息: 命令: curl https://192.168.227.16:18080/api/v1/applications/application_1478570725074_0042?mode=monitoring --insecure 其中192.168.227.16为JobHistory节点的业务IP,18080为JobHistory的端口号,application_1478570725074_0042为应用的id。 结果: { "id" : "application_1478570725074_0042", "name" : "Spark-JDBCServer", "attempts" : [ { "startTime" : "2016-11-09T16:57:15.237CST", "endTime" : "2016-11-09T17:01:22.573CST", "lastUpdated" : "2016-11-09T17:01:22.614CST", "duration" : 247336, "sparkUser" : "spark", "completed" : true } ] } 结果分析: 通过这个命令,可以查询某个Spark应用的信息,显示的信息如表1所示。 获取正在执行的某个应用的Executor信息: 针对alive executor命令: curl https://192.168.169.84:26001/proxy/application_1478570725074_0046/api/v1/applications/application_1478570725074_0046/executors?mode=monitoring --insecure 针对全部executor(alive&dead)命令: curl https://192.168.169.84:26001/proxy/application_1478570725074_0046/api/v1/applications/application_1478570725074_0046/allexecutors?mode=monitoring --insecure 其中192.168.195.232为ResourceManager主节点的业务IP,26001为ResourceManager的端口号,application_1478570725074_0046为在YARN中的应用ID。 结果: [{ "id" : "driver", "hostPort" : "192.168.169.84:23886", "isActive" : true, "rddBlocks" : 0, "memoryUsed" : 0, "diskUsed" : 0, "activeTasks" : 0, "failedTasks" : 0, "completedTasks" : 0, "totalTasks" : 0, "totalDuration" : 0, "totalInputBytes" : 0, "totalShuffleRead" : 0, "totalShuffleWrite" : 0, "maxMemory" : 278019440, "executorLogs" : { } }, { "id" : "1", "hostPort" : "192.168.169.84:23902", "isActive" : true, "rddBlocks" : 0, "memoryUsed" : 0, "diskUsed" : 0, "activeTasks" : 0, "failedTasks" : 0, "completedTasks" : 0, "totalTasks" : 0, "totalDuration" : 0, "totalInputBytes" : 0, "totalShuffleRead" : 0, "totalShuffleWrite" : 0, "maxMemory" : 555755765, "executorLogs" : { "stdout" : "https://XTJ-224:26010/node/containerlogs/container_1478570725074_0049_01_000002/admin/stdout?start=-4096", "stderr" : "https://XTJ-224:26010/node/containerlogs/container_1478570725074_0049_01_000002/admin/stderr?start=-4096" } } ] 结果分析: 通过这个命令,可以查询当前应用的所有Executor信息(包括Driver),每个Executor的信息包含如下表 2所示的常用信息。 表2 Executor常用信息 参数 描述 id Executor的ID hostPort Executor所在节点的ip:端口 executorLogs Executor的日志查看路径
  • 代码样例 如下是代码片段,详细代码请参考ExampleClient类。 /** * load configurations from alluxio-site.properties * @throws IOException */ private void loadConf() throws IOException { InputStream fileInputStream = null; alluxioConf = new Properties(); File propertiesFile = new File(PATH_TO_ALLUXIO_SITE_PROPERTIES); try { fileInputStream = new FileInputStream(propertiesFile); alluxioConf.load(fileInputStream); } catch (FileNotFoundException e) { System.out.println(PATH_TO_ALLUXIO_SITE_PROPERTIES + "does not exist. Exception: " + e); } catch (IOException e) { System.out.println("Failed to load configuration file. Exception: " + e); } finally{ close(fileInputStream); } } /** * build Alluxio instance */ private void instanceBuild() throws IOException { // get filesystem InstancedConfiguration conf = new InstancedConfiguration(ConfigurationUtils.defaults()); conf.set(PropertyKey.MASTER_RPC_ADDRESSES, alluxioConf.get("alluxio.master.rpc.addresses")); FileSystemContext fsContext = FileSystemContext.create(conf); fSystem = FileSystem.Factory.create(fsContext); }
  • Client HDFS Client主要包括五种方式:JAVA API、C API、Shell、HTTP REST API、WEB UI。 Java API 提供HDFS文件系统的应用接口,本开发指南主要介绍如何使用Java API HDFS文件系统的应用开发。 C API 提供HDFS文件系统的应用接口,使用C语言开发的用户可参考C接口的描述进行应用开发。 Shell 提供shell命令完成HDFS文件系统的基本操作。 HTTP REST API 提供除Shell、Java API和C API以外的其他接口,可通过此接口监控HDFS状态等信息。 WEB UI 提供Web可视化组件管理界面。
  • 回答 导致这个问题的主要原因是,yarn-client和yarn-cluster模式在提交任务时setAppName的执行顺序不同导致,yarn-client中setAppName是在向yarn注册Application之前读取,yarn-cluster模式则是在向yarn注册Application之后读取,这就导致yarn-cluster模式设置的应用名不生效。 解决措施: 在spark-submit脚本提交任务时用--name设置应用名和sparkconf.setAppName(appname)里面的应用名一样。 例如代码里设置的应用名为Spark Pi,用yarn-cluster模式提交应用时可以这样设置,在--name后面添加应用名,执行的命令如下: ./spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --name SparkPi lib/spark-examples*.jar 10
  • MRS各组件样例工程汇总 MRS样例代码库提供了各组件的基本功能样例工程供用户使用,当前版本各组件提供的样例工程汇总参见表1。 表1 MRS组件样例工程汇总 组件 样例工程位置 描述 ClickHouse clickhouse-examples 指导用户基于Java语言,实现MRS集群中的ClickHouse的数据表创建、删除以及数据的插入、查询等操作。 本工程中包含了建立服务端连接、创建数据库、创建数据表、插入数据、查询数据及删除数据表等操作示例。 ClickHouseJDBC-Transaction-JavaExample ClickHouse事务开发代码样例,仅MRS 3.3.0及之后版本支持。 Doris doris-examples/doris-jdbc-example Doris数据读写操作的应用开发示例,仅MRS 3.3.0及之后版本支持。 通过调用Doris接口可实现创建用户表、向表中插入数据、查询表数据、删除表等功能 Flink 开启Kerberos认证集群的样例工程目录“flink-examples/flink-examples-security”。 未开启Kerberos认证集群的样例工程目录为“flink-examples/flink-examples-normal”。 FlinkCheckpointJavaExample Flink异步Checkpoint机制的Java/Scala示例程序。 本工程中,程序使用自定义算子持续产生数据,产生的数据为一个四元组(Long,String,String,Integer)。数据经统计后,将统计结果打印到终端输出。每隔6秒钟触发一次checkpoint,然后将checkpoint的结果保存到HDFS中。 FlinkCheckpointScalaExample FlinkHBaseJavaExample Flink API作业读写HBase数据的Java示例程序。 MRS 3.2.0及之后版本支持。 FlinkKafkaJavaExample Flink向Kafka生产并消费数据的Java/Scala示例程序。 在本工程中,假定某个Flink业务每秒就会收到1个消息记录,启动Producer应用向Kafka发送数据,然后启动Consumer应用从Kafka接收数据,对数据内容进行处理后并打印输出。 FlinkKafkaScalaExample FlinkPipelineJavaExample Flink Job Pipeline的Java/Scala示例程序。 本样例中一个发布者Job自己每秒钟产生10000条数据,另外两个Job作为订阅者,分别订阅一份数据。订阅者收到数据之后将其转化格式,并抽样打印输出。 FlinkPipelineScalaExample FlinkSqlJavaExample 使用客户端通过jar作业提交SQL作业的应用开发示例。 FlinkStreamJavaExample Flink构造DataStream的Java/Scala示例程序。 本工程示例为基于业务要求分析用户日志数据,读取文本数据后生成相应的DataStream,然后筛选指定条件的数据,并获取结果。 FlinkStreamScalaExample FlinkStreamSqlJoinExample Flink SQL Join示例程序。 本工程示例调用flink-connector-kafka模块的接口,生产并消费数据。生成Table1和Table2,并使用Flink SQL对Table1和Table2进行联合查询,打印输出结果。 FlinkRESTAPIJavaExample 本工程示例调用FlinkServer的RestAPI创建租户。 flink-examples/flink-sql 本工程示例使用Flink Jar提交SQL作业。 flink-examples/pyflink-example pyflink-kafka 本工程示例使用Python提交普通作业,提供Python读写Kafka作业的样例。 pyflink-sql 本工程示例使用Python提交SQL作业,提供Python提交SQL作业的样例。 HBase hbase-examples hbase-example HBase数据读写操作及全局二级索引的应用开发示例。通过调用HBase接口可实现以下功能: 创建用户表、导入用户数据、增加用户信息、查询用户信息及为用户表创建二级索引等功能。 MRS 3.3.0及之后版本,可实现创建/删除全局二级索引、修改全局二级索引状态、以及基于全局二级索引查询等功能。 hbase-rest-example HBase Rest接口应用开发示例。 使用Rest接口实现查询HBase集群信息、获取表、操作NameSpace、操作表等功能。 hbase-thrift-example 访问HBase ThriftServer应用开发示例。 访问ThriftServer操作表、向表中写数据、从表中读数据。 hbase-zk-example HBase访问ZooKeeper应用开发示例。 在同一个客户端进程内同时访问MRS ZooKeeper和第三方的ZooKeeper,其中HBase客户端访问MRS ZooKeeper,客户应用访问第三方ZooKeeper。 HDFS 开启Kerberos认证集群的样例工程目录“hdfs-example-security”。 未开启Kerberos认证集群的样例工程目录为“hdfs-example-normal”。 HDFS文件操作的Java示例程序。 本工程主要给出了创建HDFS文件夹、写文件、追加文件内容、读文件和删除文件/文件夹等相关接口操作示例。 hdfs-c-example HDFS C语言开发代码样例。 本示例提供了基于C语言的HDFS文件系统连接、文件操作如创建文件、读写文件、追加文件、删除文件等。 HetuEngine 开启Kerberos认证集群的样例工程目录为“hetu-examples/hetu-examples-security”。 未开启Kerberos认证集群的样例工程目录为“hetu-examples/hetu-examples-normal”。 通过不同方式连接HetuEngine的Java、Python示例程序。 通过HSFabric、HSBroker等连接方式,使用用户名和密码连接到HetuEngine,或通过KeyTab文件认证方式连接HetuEngine,组装对应的SQL发送到HetuEngine执行,完成对Hive数据源的增删改查操作。 Hive hive-examples hive-jdbc-example Hive JDBC处理数据Java示例程序。 本工程使用JDBC接口连接Hive,在Hive中执行相关数据操作。使用JDBC接口实现创建表、加载数据、查询数据等功能,还可实现在同一个客户端进程内同时访问 FusionInsight ZooKeeper和第三方的ZooKeeper。 hive-jdbc-example-multizk hcatalog-example Hive HCatalog处理数据Java示例程序。 使用HCatalog接口实现通过Hive命令行方式对MRS Hive元数据进行数据定义和查询操作。 python-examples 使用Python连接Hive执行SQL样例。 可实现使用Python对接Hive并提交数据分析任务。 python3-examples 使用Python3连接Hive执行SQL样例。 可实现使用Python3对接Hive并提交数据分析任务。 IoTDB iotdb-examples iotdb-flink-example 通过Flink访问IoTDB数据的示例程序,包括FlinkIoTDBSink和FlinkIoTDBSource。 FlinkIoTDBSink可实现通过Flink job将时序数据写入到IoTDB中。FlinkIoTDBSource则通过Flink job将时序数据从IoTDB读取出来并且打印。 iotdb-jdbc-example IoTDB JDBC处理数据Java示例程序。 本示例演示了如何使用JDBC接口连接IoTDB,并执行IoTDB SQL语句。 iotdb-kafka-example 通过Kafka访问IoTDB数据的示例程序。 本示例演示了如何先将时序数据发送到Kafka,再使用多线程将数据写入到IoTDB中。 iotdb-session-example IoTDB Session处理数据Java示例程序。 本示例演示了如何使用Session方式连接IoTDB,并执行IoTDB SQL语句。 iotdb-udf-example 该样例程序介绍了如何实现一个简单的IoTDB自定义函数(UDF)。 Kafka kafka-examples Kafka流式数据的处理Java示例程序。 本工程基于Kafka Streams完成单词统计功能,通过读取输入Topic中的消息,统计每条消息中的单词个数,从输出Topic消费数据,然后将统计结果以Key-Value的形式输出。 Manager manager-examples FusionInsight Manager API接口调用示例。 本工程调用Manager API接口实现集群用户的创建、修改及删除等操作。 MapReduce 开启Kerberos认证集群的样例工程目录“mapreduce-example-security”。 未开启Kerberos认证集群的样例工程目录为“mapreduce-example-normal”。 MapReduce任务提交Java示例程序。 本工程提供了一个MapReduce统计数据的应用开发示例,实现数据分析、处理,并输出满足用户需要的数据信息。 另外以MapReduce访问HDFS、HBase、Hive为例,介绍如何编写MapReduce作业访问多个服务组件。帮助用户理解认证、配置加载等关键使用方式。 Oozie 开启Kerberos认证集群的样例工程目录“oozie-examples/ooziesecurity-examples”。 未开启Kerberos认证集群的样例工程目录为“oozie-examples/oozienormal-examples”。 OozieMapReduceExample Oozie提交MapReduce任务示例程序。 本示例演示了如何通过Java API提交MapReduce作业和查询作业状态,对网站的日志文件进行离线分析。 OozieSparkHBaseExample 使用Oozie调度Spark访问HBase的示例程序。 OozieSparkHiveExample 使用Oozie调度Spark访问Hive的示例程序。 Spark 开启Kerberos认证集群的样例工程目录“spark-examples/sparksecurity-examples”。 未开启Kerberos认证集群的样例工程目录为“spark-examples/sparknormal-examples”。 SparkHbasetoCarbonJavaExample Spark同步HBase数据到CarbonData的Java示例程序。 本示例工程中,应用将数据实时写入HBase,用于点查业务。数据每隔一段时间批量同步到CarbonData表中,用于分析型查询业务。 SparkHbasetoHbaseJavaExample Spark从HBase读取数据再写入HBase的Java/Scala/Python示例程序。 本示例工程中,Spark应用程序实现两个HBase表数据的分析汇总。 SparkHbasetoHbasePythonExample SparkHbasetoHbaseScalaExample SparkHivetoHbaseJavaExample Spark从Hive读取数据再写入到HBase的Java/Scala/Python示例程序。 本示例工程中,Spark应用程序实现分析处理Hive表中的数据,并将结果写入HBase表。 SparkHivetoHbasePythonExample SparkHivetoHbaseScalaExample SparkJavaExample Spark Core任务的Java/Python/Scala/R示例程序。 本工程应用程序实现从HDFS上读取文本数据并计算分析。 SparkRExample示例不支持未开启Kerberos认证的集群。 SparkPythonExample SparkScalaExample SparkRExample SparkLauncherJavaExample 使用Spark Launcher提交作业的Java/Scala示例程序。 本工程应用程序通过org.apache.spark.launcher.SparkLauncher类采用Java/Scala命令方式提交Spark应用。 SparkLauncherScalaExample SparkOnHbaseJavaExample Spark on HBase场景的Java/Scala/Python示例程序。 本工程应用程序以数据源的方式去使用HBase,将数据以Avro格式存储在HBase中,并从中读取数据以及对读取的数据进行过滤等操作。 SparkOnHbasePythonExample SparkOnHbaseScalaExample SparkOnHudiJavaExample Spark on Hudi场景的Java/Scala/Python示例程序。 本工程应用程序使用Spark操作Hudi执行插入数据、查询数据、更新数据、增量查询、特定时间点查询、删除数据等操作。 SparkOnHudiPythonExample SparkOnHudiScalaExample SparkOnMultiHbaseScalaExample Spark同时访问两个集群中的HBase的Scala示例程序。 本示例不支持未开启Kerberos认证的集群。 SparkSQLJavaExample Spark SQL任务的Java/Python/Scala示例程序。 本工程应用程序实现从HDFS上读取文本数据并计算分析。 SparkSQLPythonExample SparkSQLScalaExample SparkStreamingKafka010JavaExample Spark Streaming从Kafka接收数据并进行统计分析的Java/Scala示例程序。 本工程应用程序实时累加计算Kafka中的流数据,统计每个单词的记录总数。 SparkStreamingKafka010ScalaExample SparkStreamingtoHbaseJavaExample010 Spark Streaming读取Kafka数据并写入HBase的Java/Scala/Python示例程序。 本工程应用程序每5秒启动一次任务,读取Kafka中的数据并更新到指定的HBase表中。 SparkStreamingtoHbasePythonExample010 SparkStreamingtoHbaseScalaExample010 SparkStructuredStreamingJavaExample 在Spark应用中,通过使用StructuredStreaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数。 SparkStructuredStreamingPythonExample SparkStructuredStreamingScalaExample SparkThriftServerJavaExample 通过JDBC访问Spark SQL的Java/Scala示例程序。 本示例中,用户自定义JDBCServer的客户端,使用JDBC连接来进行表的创建、数据加载、查询和删除。 SparkThriftServerScalaExample StructuredStreamingADScalaExample 使用Structured Streaming,从kafka中读取广告请求数据、广告展示数据、广告点击数据,实时获取广告有效展示统计数据和广告有效点击统计数据,将统计结果写入kafka中。 StructuredStreamingStateScalaExample 在Spark结构流应用中,跨批次统计每个session期间发生了多少次event以及本session的开始和结束timestamp;同时输出本批次被更新状态的session。 SpringBoot(MRS 3.3.0及之后版本支持) clickhouse-examples clickhouse-rest-client-example SpringBoot连接ClickHouse服务应用开发示例。 本示例中,包含了建立服务端连接、创建数据库、创建数据表、插入数据、查询数据等操作示例。 doris-examples doris-rest-client-example Doris数据读写操作的SpringBoot应用开发示例。 提供SpringBoot连接Doris的样例程序。 flink-examples flink-dws-read-example GaussDB (DWS) SpringBoot方式连接Flink服务的应用开发示例。 flink-dws-sink-example hbase-examples SpringBoot连接Phoenix应用开发示例。 提供SpringBoot连接HBase与Phoenix的样例程序。 hive-examples hive-rest-client-example SpringBoot连接Hive应用开发示例。 本工程使用SpringBoot方式连接Hive,在Hive中执行创建表、加载数据、查询数据、删除表等操作。 kafka-examples SpringBoot连接Kafka实现Topic生产消费的应用开发示例。
  • 获取MRS样例工程 MRS样例工程下载地址为https://github.com/huaweicloud/huaweicloud-mrs-example。 切换分支为与MRS集群相匹配的版本分支,例如“mrs-3.2.0.1”,然后下载压缩包到本地后解压,即可获取各组件对应的样例代码工程。 图1 MRS样例工程代码下载 MRS LTS版本对应样例工程下载地址: MRS 3.3.0-LTS版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.3.0。 MRS 3.2.0-LTS.1版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.2.0.1。 MRS 3.1.2-LTS.3版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.1.2。 MRS普通版本对应样例工程下载地址: MRS 3.0.2版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.0.2。 MRS 3.1.0版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.1.0。 MRS 3.1.5版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.1.5。 MRS 2.1.x版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-2.1。 MRS 1.9.x版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-1.9。 MRS 1.8.x版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-1.8。 MRS 1.8之前版本:http://mapreduceservice.obs-website.cn-north-1.myhuaweicloud.com/。
  • 问题 在omm用户(非root用户)下,通过spark-submit提交yarn-client模式的任务,会出现FileNotFoundException异常,任务还能继续执行,但无法查看Driver端日志。例如:执行命令 spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client /opt/client/Spark/spark/examples/jars/spark-examples_2.11-2.2.1-mrs-1.7.0.jar ,结果如下图所示。
  • 回答 原因分析: 在yarn-client模式下执行任务时,Spark的Driver程序在本地执行;其中通过-Dlog4j.configuration=./log4j-executor.properties配置了Driver的日志文件,log4j-executor.properties配置文件设置日志输出到${spark.yarn.app.container.log.dir}/stdout文件中,由于Spark Driver在本地执行时${spark.yarn.app.container.log.dir}没有设置即为空,则输出目录为/stdout,而非root用户下,在根目录下面没有创建和修改stdout的权限,就会报FileNotFoundException异常。而在yarn-cluster模式下执行任务时,Spark的Driver程序在Application Master下执行,而在Application Master启动时就会通过-D${spark.yarn.app.container.log.dir}设置了输出目录,因此在yarn-cluster模式执行任务不会报FileNotFoundException异常。 处理方法: 注:下面所说的$SPARK_HOME默认是/opt/client/Spark/spark。 解决方案1:手动切换日志配置文件。修改文件$SPARK_HOME/conf/spark-defaults.conf中spark.driver.extraJavaOptions的配置项-Dlog4j.configuration=./log4j-executor.properties(默认情况下为./log4j-executor.properties),在yarn-client模式下,修改为-Dlog4j.configuration=./log4j.properties,在yarn-cluster模式下修改为-Dlog4j.configuration=./log4j-executor.properties。 解决方案2:修改启动脚本$SPARK_HOME/bin/spark-class。在spark-class脚本#!/usr/bin/env bash下面添加。 # Judge mode: client and cluster; Default: client argv=`echo $@ | tr [A-Z] [a-z]` if [[ "$argv" =~ "--master" ]];then mode=`echo $argv | sed -e 's/.*--master //'` master=`echo $mode | awk '{print $1}'` case $master in "yarn") deploy=`echo $mode | awk '{print $3}'` if [[ "$mode" =~ "--deploy-mode" ]];then deploy=$deploy else deploy="client" fi ;; "yarn-client"|"local") deploy="client" ;; "yarn-cluster") deploy="cluster" ;; esac else deploy="client" fi # modify the spark-defaults.conf number=`sed -n -e '/spark.driver.extraJavaOptions/=' $SPARK_HOME/conf/spark-defaults.conf` if [ "$deploy"x = "client"x ];then `sed -i "${number}s/-Dlog4j.configuration=.*properties /-Dlog4j.configuration=.\/log4j.properties /g" $SPARK_HOME/conf/spark-defaults.conf` else `sed -i "${number}s/-Dlog4j.configuration=.*properties /-Dlog4j.configuration=.\/log4j-executor.properties /g" $SPARK_HOME/conf/spark-defaults.conf` fi 这些脚本行的功能和解决方案1类似,通过判断yarn的模式来修改文件$SPARK_HOME/conf/spark-defaults.conf中spark.driver.extraJavaOptions的配置项-Dlog4j.configuration=./log4j-executor.properties。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全