华为云用户手册

  • URI GET /v1.0/{domain_id}/common/order-mgr/orders-resource/{order_id} 参数说明请参见下表。 表1 路径参数 参数 是否必选 取值范围 描述 domain_id 是 最大长度:64 客户账号ID。获取方法请参见如何获取客户的customer_id/domain_id。 order_id 是 最大长度:64 订单ID。 订购包年/包月产品时系统会生成一个订单ID。 表2 查询参数 参数 是否必选 参数类型 取值范围 描述 offset 是 Integer [1-2147483647] 页数,默认值为1。 limit 是 Integer [1-50] 每页查询条数,默认值为10。
  • 按需询价示例(通过价格计算器) 查询按需产品价格接口的请求参数可通过价格计算器获取。 以“弹性云服务器”为例: 区域:华北-北京四 可用区:通用可用区 计费模式:按需 CPU架构:X86计算 规格 :通用计算增强型 C6|2核|4GB 系统盘:通用型SSD 40G 购买时长:1个月 购买个数:1台 进入价格计算器页面,F12打开控制台。根据示例中的参数,在页面完成选择。 在控制台中进入Network选项,找到询价接口“resource”。点击“Payload”,查看接口请求参数。 根据步骤2获取到的请求参数拼接查询包年/包月产品价格接口请求参数。 如上图所示,查询包年/包月产品价格接口组合询价了一个弹性云服务器和一个云硬盘。所以产品信息列表product_infos需要两个结构体,最终结果如下所示: { "project_id": "c4c24********599c2", "product_infos": [ { "id": "1", "cloud_service_type": "hws.service.type.ec2", "resource_type": "hws.resource.type.vm", "resource_spec": "c6.large.2.linux", "region": "cn-north-4", "usage_factor": "Duration", "usage_value": 1, "usage_measure_id": 4, "subscription_num": 1 }, { "id": "2", "cloud_service_type": "hws.service.type.ebs", "resource_type": "hws.resource.type.volume", "resource_spec": "GPSSD", "region": "cn-north-4", "resource_size": 40, "size_measure_id": 17, "usage_factor": "Duration", "usage_value": 1, "usage_measure_id": 4, "subscription_num": 1 } ] } 【可选】登录APIExplorer,输入product_infos,询价得到的产品价格与价格计算器结果一致。 父主题: 询价接口指导
  • 操作场景 使用网络研讨会前,需要先进行资源分配与激活。 一次性资源 一次性资源分配之后需要激活才可以召开正式会议,激活后72小时内可无限次使用,激活前只能召开受限的测试会议(最大5嘉宾+10观众接入,限时45分钟)。 一次性资源最大有效期是1年,购买后请一年内激活使用,否则会自动过期。 一个网络研讨会资源同时只能分配给一个用户。 分配了网络研讨会资源的用户,才可以创建网络研讨会;若用户仅加入网络研讨会,则无需网络研讨会资源。 企业管理员可给同一个用户分配最多10个网络研讨会资源。
  • 操作场景 管理员添加企业用户后,用户下载华为云会议移动客户端即可登录使用。 操作系统要求 类型 最低要求 建议配置 Android客户端 Android 6.0/Harmony 2.0 Android 10.0及以上/Harmony 2.0及以上 iOS客户端 iOS 11 iOS 14 及以上版本 硬件要求 类型 最低要求 建议配置 Android客户端 CPU:双核 1.5GHz 内存:2G 硬盘可用空间:800M CPU: 四核2GHz及以上 内存: 6G及以上 硬盘可用空间: 1G iOS客户端 CPU:- 内存:1G 硬盘可用空间:500M CPU:- 内存:3G 硬盘可用空间:1GB
  • 操作场景 主持人根据表 业务培训会预约周期会议。 表1 业务培训会 会议基本信息 详情说明 会议形式 会议室+会议室线上会议 会议频率 不定期 会议时间 2022/xx/xx xx:xx 参会人数 子公司A项目组1~5业务相关人员共40人,子公司B项目组1~3业务相关人员24人 参会形式 子公司A项目组1~5会议室IdeaHub S2接入,子公司B项目组1~3会议室IdeaHub S2接入 会议时长 1小时
  • 方案架构 根据企业对会议功能应用需求,使用华为云会议方案,如表3。 表3 会议功能需求与方案 会议功能需求 云会议方案 多端接入 支持华为云会议桌面端/移动端、硬件终端、第三方硬件终端多种会议终端接入,满足各类会议场景。 会议控制 桌面端/移动端、华为云会议管理平台,多端超强会控能力。 资源管理 资源管理、业务发放、会议管理融为一体,企业管理员轻松掌握企业资源使用情况。 音视频质量 提供高清视频、共享画面,高效协同。 会议录播 1080P高清录制,高效转码,视频、音频、辅流多流录制。 安全可靠 从云、管、端三个层面全方位确保云会议业务安全可靠,为会议业务保驾护航。
  • 应用场景 A企业下属有多个子公司和项目组,广泛分布于全国多个区域。为满足企业日常运作中线上会议交流、远程协作的需求,也为应对在家办公场景,A企业部署了华为云会议,让内部工作沟通、远程商务交流等更加顺畅。 A企业当前有5个子公司,各地共有100个项目组,总人数3000人,主要使用的会议类型如表 A企业主要会议类型所示。 表1 A企业主要会议类型 会议类型 说明 线上会议 员工与员工、员工与客户的业务交流场景 单次会议参会人数2~500 单个用户随时随地接入会议 会议室+线上会议 员工与不同项目组会议室/办公区、员工与商务伙伴的业务交流场景 单次会议参会人数2~500 会议室、单个用户接入会议 会议室+会议室线上会议 不同地域、会议室、办公区的业务交流场景 单次会议参会人数2~500 会议室接入会议 网络研讨会 大型会议场景 单次会议参会人数500~5000 会议室、单个用户接入会议 会议室会议 小组会议讨论场景 单次会议参会人数2~15 会议设备线下使用 A企业当前会议使用场景详情如表 会议使用情况所示。 表2 会议使用情况 会议场景 使用范围 入会终端类型 所属类型 部门例会、客户交流、线上面试 企业内全员可用 外部人员可入会 桌面端/移动端 线上会议 跨企业、跨地区业务沟通 企业内全员可用 会议室/办公区可用 桌面端/移动端、硬件终端 会议室+线上会议 业务培训 会议室/办公区可用 硬件终端 会议室+会议室线上会议 企业全员大型会议、线上招聘宣讲会 企业内全员可用 会议室/办公区可用 外部人员可入会 桌面端/移动端/Web端、硬件终端 网络研讨会 临时小组讨论、项目头脑风暴 会议室/办公区可用 硬件终端 会议室会议
  • WAF攻击结构化模板日志详情 WAF攻击日志示例 表3 结构化模板示例 模板名称 示例日志 WAF攻击日志 {"policy_id":"cd081ba3d6674000acc37d7e2a4b9140","hport":"80","body_bytes_sent":"163","hostid":"1736cc7331b74b198e2ef07555a970ce","rule":"040002","engine_ip":"10.63.36.208","pid":"2152","http_host":"www.testh.com","process_time":"1","reqid":"0000-0000-0000-20820220729193940-f34cf25e","time_iso8601":"2022-07-29T19:39:40+08:00","upstream_status":"504","hit_data":"public/../style/general.css","attack_stream_id":"98de5d5a-9f54-4d01-9882-eca7bec99d09","remote_ip":"10.63.46.110","attack":"lfi","tenantid":"1d26cc8c86a840e28a4f8d0d07852f1d","host":"www.testh.com","action":"log","backend":{"protocol":"HTTP","alive":true,"port":80,"host":"100.93.2.229","weight":1,"type":"ip"},"id":"04-0000-0000-0000-20820220729193940-f34cf25e","sip":"10.63.46.110","projectid":"2a473356cca5487f8373be891bffc1cf","web_tag":"","attack-time":"2022-07-29T11:39:40.000Z","method":"GET","cookie":"{\"HWWAFSESTIME\":\"1659094780939\",\"HWWAFSESID\":\"e2cd0733b4712e4cc4\"}","level":2,"params":"{\"public\/..\/style\/general.css\":\"true\"}","x_real_ip":"","uri":"/","x_forwarded_for":"","cdn_src_ip":"","enterprise_project_id":"0","req_body":"","engine_id":"","group_id":"5d574e6a-87da-42bc-bfd4-ff61a1b336a4","requestid":"f34cf25eb33ed82cd7261a8276a60c39","multipart":"null","header":"{\"host\":\"www.testh.com\",\"user-agent\":\"curl\/7.29.0\",\"accept\":\"*\/*\"}","location":"params","upstream_response_time":"30.000","time":"2022-07-29 19:39:40","category":"attack","sport":28408,"status":"504"} 结构化字段及字段说明 表4 结构化字段 字段 示例 描述 类型 policy_id cd081ba3d6674000acc37d7e2a4b9140 防护策略ID string hport 80 请求的服务器端口 string body_bytes_sent 163 发送给客户端的响应体字节数 string hostid 1736cc7331b74b198e2ef07555a970ce 防护 域名 ID(upstream_id) string rule 040002 触发的规则ID或者自定义的策略类型描述 string engine_ip 10.63.36.208 引擎 IP string pid 2152 进程ID string http_host www.testh.com 请求的服务器域名 string process_time 1 引擎的检测用时 string reqid 0000-0000-0000-20820220729193940-f34cf25e 随机ID标识 string time_iso8601 2022-07-29T19:39:40+08:00 日志的ISO 8601格式时间 string upstream_status 504 后端服务器的响应码 string hit_data public/../style/general.css 触发恶意负载的字符串 string attack_stream_id 98de5d5a-9f54-4d01-9882-eca7bec99d09 日志流ID string remote_ip 10.63.46.110 请求的客户端IP string attack lfi 发生攻击的类型,仅在攻击日志中出现。 default:默认 sqli:SQL注入攻击 xss:跨站脚本攻击 webshell:WebShell攻击 robot:恶意爬虫 cmdi:命令注入攻击 rfi:远程文件包含 lfi: 本地文件包含 illegal:非法请求 vuln:漏洞攻击 cc:命中CC防护规则 custom_custom:命中精准防护规则 custom_whiteip:命中IP黑白名单规则 custom_geoip:命中地理位置控制规则 antitamper: 命中网页防篡改规则 anticrawler:命中JS挑战反爬虫规则 leakage:命中敏感信息泄露规则 followed_action:攻击惩罚,详见配置攻击惩罚标准 。 string tenantid 1d26cc8c86a840e28a4f8d0d07852f1d 防护域名的租户ID string host www.testh.com 请求的服务器域名 string action log WAF防护攻击动作。 block:拦截 log:仅记录 captcha:人机验证 string backend.protocol HTTP 当前后端协议 string backend.alive true 当前后端状态 string backend.port 80 当前后端端口 long backend.host 100.93.2.229 当前后端Host值 string backend.weight 1 当前后端权重 long backend.type ip 当前后端Host类型 string id 04-0000-0000-0000-20820220729193940-f34cf25e 请求ID标识 string sip 10.63.46.110 请求的客户端IP string projectid 2a473356cca5487f8373be891bffc1cf 防护域名的项目ID string web_tag - 网站名称 string attack-time 2022-07-29T11:39:40.000Z 攻击时间 string method GET 请求方法 string cookie {"HWWAFSESTIME":"1659094780939","HWWAFSESID":"e2cd0733b4712e4cc4"} Cookie内容 string level 2 表示Web基础防护策略级别。 1:宽松 2:中等 3:严格 long params {"public\/..\/style\/general.css":"true"} 请求URI后的参数信息 string x_real_ip - 当WAF前部署代理时,真实的客户端IP string uri / 请求URI string x_forwarded_for - 请求头中x_forwarded_for的内容 string cdn_src_ip - 当WAF前部署CDN时CDN识别到的客户端IP string enterprise_project_id 0 请求域名所属企业项目ID string req_body - 请求体 string engine_id - WAF引擎标识 string group_id 5d574e6a-87da-42bc-bfd4-ff61a1b336a4 group_id string requestid f34cf25eb33ed82cd7261a8276a60c39 随机ID标识 string multipart null multipart string header {"host":"www.testh.com","user-agent":"curl\/7.29.0","accept":"*\/*"} 请求header信息 string location params 触发恶意负载的位置 string upstream_response_time 30.000 后端服务器响应时间 string time 2022-07-29 19:39:40 日志时间 string waf_category attack WAF日志类别 string sport 28408 客户端请求端口 long status 504 请求的响应状态码 string
  • WAF访问结构化模板日志详情 WAF访问日志示例 表1 结构化模板示例 模板名称 示例日志 WAF访问日志 {"response_code":"504","scheme":"http","upstream_addr":"100.93.2.229:80","body_bytes_sent":"163","upstream_header_time":"-","connection_requests":"1","ssl_cipher":"","hostid":"1736cc7331b74b198e2ef07555a970ce","pid":"2152","tls_version":"","http_host":"www.testh.com","process_time":"0","access_stream_id":"88003425-d7bc-46ce-8ae7-77a8aa18a814","time_iso8601":"2022-07-29T19:39:10+08:00","intel_crawler":"","upstream_status":"504","remote_ip":"10.63.46.110","request_time":"30.008","tenantid":"1d26cc8c86a840e28a4f8d0d07852f1d","sip":"10.63.46.110","bytes_send":"420","projectid":"2a473356cca5487f8373be891bffc1cf","user_agent":"curl/7.29.0","web_tag":"","method":"GET","bind_ip":"10.63.36.208","region_id":"","remote_port":"20582","ssl_ciphers_md5":"","x_real_ip":"","url":"/","x_forwarded_for":"","sni":"","args":"public/../style/general.css=true","cdn_src_ip":"","enterprise_project_id":"0","upstream_connect_time":"-","engine_id":"","request_length":"110","group_id":"5d574e6a-87da-42bc-bfd4-ff61a1b336a4","requestid":"36f0a9212b14528ffc090f1811cd87d8","ssl_curves":"","ssl_session_reused":"","waf-time":"2022-07-29T11:39:10.000Z","upstream_response_time":"30.008","time":"29/Jul/2022:19:39:10 +0800","category":"access","eng_ip":"10.63.36.208"} 结构化字段及字段说明 表2 结构化字段 字段 示例 描述 类型 response_code 504 源站返回给WAF的响应状态码。 string scheme http 请求所使用的协议有: http https string upstream_addr 100.93.2.229:80 选择的后端服务器地址。例如,WAF回源到E CS ,则返回源站ECS的IP。 string body_bytes_sent 163 发送给客户端的响应体字节数 string upstream_header_time - 后端服务器接收到第一个响应头字节的用时 string connection_requests 1 连接请求 string ssl_cipher - SSL密码 string hostid 1736cc7331b74b198e2ef07555a970ce 访问请求的域名标识 string pid 2152 进程ID string tls_version - 建立SSL连接的协议版本 string http_host www.testh.com 请求的服务器域名 string process_time 0 引擎的检测用时 string access_stream_id 88003425-d7bc-46ce-8ae7-77a8aa18a814 日志流ID string time_iso8601 2022-07-29T19:39:10+08:00 日志的ISO 8601格式时间 string intel_crawler - 爬虫 string upstream_status 504 后端服务器的响应码 string remote_ip 10.63.46.110 请求的客户端IP string request_time 30.008 请求处理时间 string tenantid 1d26cc8c86a840e28a4f8d0d07852f1d 防护域名的租户ID string sip 10.63.46.110 客户端请求IP string bytes_send 420 发送给客户端的总字节数 string projectid 2a473356cca5487f8373be891bffc1cf 防护域名的项目ID string user_agent curl/7.29.0 请求header中的 user-agent string web_tag - 网站名称 string method GET 请求方法 string bind_ip 10.63.36.208 WAF引擎回源IP string region_id - 请求所属区域 string remote_port 20582 远程端口 string ssl_ciphers_md5 - ssl_ciphers 的 md5 值 string x_real_ip - 当WAF前部署代理时,真实的客户端IP string url / 请求URL string x_forwarded_for - 请求头中x_forwarded_for的内容 string sni - 通过SNI请求的域名 string args public/../style/general.css=true URL 中的参数数据 string cdn_src_ip - 当WAF前部署CDN时CDN识别到的客户端IP string enterprise_project_id 0 请求域名所属企业项目ID string upstream_connect_time - 后端服务器连接用时 string engine_id - WAF引擎标识 string request_length 110 请求的长度 string group_id 5d574e6a-87da-42bc-bfd4-ff61a1b336a4 对接LTS服务的日志组ID string requestid 36f0a9212b14528ffc090f1811cd87d8 随机ID标识 string ssl_curves - 客户端支持的曲线列表 string ssl_session_reused - SSL会话是否被重用 string waf-time 2022-07-29T11:39:10.000Z WAF日志时间 string upstream_response_time 30.008 后端服务器响应时间 string time 29/Jul/2022:19:39:10 +0800 访问请求的时间 string waf_category access WAF日志类别 string eng_ip 10.63.36.208 WAF引擎IP string
  • 入门实践 当您完成了日志组、日志流等基本操作后,可以根据自身的业务需求使用 云日志 服务提供的一系列常用实践。 表1 常用最佳实践 实践 描述 对华为云ELB日志进行分析 该解决方案介绍将ELB日志接入LTS后,配置日志结构化后,即可进行日志搜索分析。 通过仪表盘可视化分析ELB日志 该解决方案介绍当ELB日志接入云日志服务后,您可以通过SQL语句查询分析日志,将日志结果保存为多种图表,并将图表保存至仪表盘,从而使用仪表盘实时分析ELB日志数据。您可以参考如下内容,进行具体的操作配置。 无服务器日志实时分析 该解决方案帮助您无服务器架构实现弹性云服务器 ECS日志的采集、分析、告警以及存档,基于云日志服务 LTS实时采集弹性云服务器 ECS的日志数据,通过 函数工作流 FunctionGraph的LTS触发器自动获取日志数据,并实现对日志中告警信息的分析,通过 消息通知 服务 SMN 将告警信息推送给用户,并存储到 对象存储服务 OBS桶中进行存档。 无服务器日志文件上传LTS 该解决方案可以帮助用户无服务器架构实现日志文件上传至云日志服务 LTS。日志文件压缩上传到对象存储服务 OBS,通过函数工作流的OBS 触发器获取日志文件压缩包,并实现自动解压、解析日志文件,将日志结果逐行存储到云日志服务 LTS。适用于将业务系统日志上传至云日志服务 LTS进行管理的场景。
  • 约束与限制 本章节介绍 云桌面 服务产品功能的使用限制。 表1 云桌面使用限制 场景 限制项 限制说明 购买桌面 账号 只有使用实名认证后的账号登录云桌面控制台才能购买桌面。 是否对接AD 购买桌面后,不支持变更是否对接AD。 对接AD时,需确保云桌面所在网络与微软AD所在网络互通。 区域 不同区域的桌面之间内网互不相通,且需分区域管理桌面。 CPU架构 支持鲲鹏计算和X86计算。 桌面操作系统 目前支持UOS V20 1050操作系统版本、Windows Server 2016/2019操作系统版本。云桌面将会持续增加操作系统支持范围。 系统盘 受所选区域资源限制,系统盘大小需设置为80~1020GB。 数据盘 受所选区域资源限制,最多只能添加10个数据盘,且每个数据盘大小需为10~1020GB之间的10的整数倍。 网络 云桌面预留172.20.0.0/16~172.31.0.0/16网段作为内部服务运行网段,故请勿选择172开头的VPC网络,否则将无法成功购买桌面。 分配用户 每个桌面只能属于单个用户。 登录桌面 移动终端 支持安装了Android 6.0以上版本操作系统的移动终端设备登录桌面。 瘦终端和PC软终端 支持操作系统为Windows 10以及macOS(10.14~12.4,64位)的PC软终端,以及适配的瘦终端(UOS、Android等操作系统)登录桌面。 配置桌面 策略 桌面策略会在用户下一次登录桌面后生效。 支持从客户端到服务端或服务端到客户端的单向复制或者双向复制。 仅在客户端(TC/SC)操作系统和云桌面操作系统均为Windows时,支持富文本复制、文件复制,且最多同时可复制500个文件。 当客户端(TC/SC、移动客户端)操作系统或云桌面操作系统为其他时,只支持纯文本格式复制,不支持文件复制。 渲染加速仅适用多媒体 视频编辑 场景,其它场景不建议打开。 默认策略为预设好的通用策略,且不支持优先级修改。 当您创建多条策略时,默认策略的优先级最低。 单一区域默认的策略配额为50个。 网络接入方式 云桌面可同时支持互联网接入方式和专线接入方式,并且同一时间内至少保持一种接入方式处于开启状态,不可将两种接入方式同时关闭。 云桌面使用172.20.0.0/16~172.31.0.0/16网段为桌面管理网卡的保留网段,使用云专线的方式与企业内网的PC进行通信时,请避免在企业内网使用此网段,以免路由冲突而导致无法互相访问。 使用云专线接入方式需要创建 VPC终端节点 。 配置云桌面可访问企业内网 使用防火墙时,需确保防火墙中出方向的8443端口和443端口为放通状态。 变更规格 变更规格过程中,请勿对云桌面进行其他操作。 仅支持从通用办公版套餐类型变更为尊享版套餐类型。不支持其他跨套餐类型的规格变更。 重建系统盘 重建系统盘前,桌面“登录状态”不为“无法连接”,且“运行状态”为“运行中”或“已停止”。 重建系统盘后,原系统盘中的数据(如桌面,收藏夹等)会丢失,如果需要这些数据,请提前通知用户备份。 重置系统盘时,如果该云桌面使用的私有镜像,需确保该私有镜像仍存在。 管理桌面 重发通知邮件 只在该用户绑定了桌面的情况下,可重新发送通知邮件。 删除用户 只在该用户未绑定桌面的情况下,可删除用户。 重置密码 已对接Windows AD域,将无法给桌面用户重置密码。 解锁用户 已对接Windows AD域,将无法对桌面用户进行解锁。 禁用操作(UOS操作系统桌面) 执行命令项 禁止执行pkill hdp命令和pkill Xvfb命令结束进程,否则导致系统运行存在异常。 禁止执行ifconfig eth* down命令禁用网卡,否则导致桌面无法连接网络。 卸载项 禁止更换桌面图形界面软件,否则导致系统性能异常。 禁止卸载samba和winbind组件,否则导致系统运行异常。 删除项 禁止删除/etc/init.d/hdp**开头的文件,否则导致系统运行异常。 禁止删除28511/28512/28521/28522端口,否则可能导致虚拟机连接失败。 升级项 禁止自行升级Linux内核,否则可能导致系统崩溃。 禁用操作(Windows操作系统桌面) 进程和服务 禁止更改系统配置中默认的服务和启动选项。 禁止结束任务管理器中“LOCAL SERVICE”、“NETWORK SERVICE”和“SYSTEM”类进程。 禁止禁用HDP类服务。 禁止卸载以下程序。 Access Agent Microsoft .NET Framework x Client Profile Microsoft .NET Framework x Extended Microsoft Visual C++ xxx Redistributable - xxx 网络 禁止禁用网卡、禁用或修改网络配置。 禁止执行修改路由的脚本或命令,如route DELETE *。 禁止在Windows防火墙例外选项中删除28511、28512、28521和28522端口。 禁止打开IPsec等具有禁用网络流量功能的软件或工具。 其他 禁止删除“C:\Program Files\Huawei”目录下的文件和文件夹。 禁止对桌面执行睡眠操作,桌面默认不启用睡眠操作。 禁止修改HDP客户端(Access Agent)配置文件。 禁止运行魔法兔子或Windows优化大师等软件对注册表进行清理和优化。 自定义安装具有变换功能的屏保会消耗大量系统资源,导致用户重新进入桌面时会有一定延迟,请慎重操作。 云桌面使用 云桌面接访问互联网 云桌面是通过绑定数据中心的IP进行互联网访问,部分娱乐类的网站基于自身运营的需要,会对数据中心IP访问进行限制,导致的结果是云桌面无法访问相关的网站,目前识别到的有是优酷、淘宝等网站。
  • 执行性能自动化用例 找到需要执行的性能用例,点击“性能自动化”--》“执行”。 图7 点击执行性能用例 进入性能用例的详情页面,点击“操作”下拉按钮,选择“运行脚本”。 图8 点击运行脚本 可以看到“执行”的弹窗页面。根据您本次架构部署的形式,采用不同的操作方式。 若本次架构的部署形式为CCE部署,点击参考CCE部署的场景。 若本次架构的部署形式为Kubernetes集群部署,点击参考Kubernetes集群部署。 如果您本次认证方案架构的ECS是非CCE和Kubernetes集群部署的情况,继续按照下方的步骤指导操作即可。 您需要打开“自动获取CPU/内存数据”的开关,然后点击“添加机器”按钮。 在“添加机器”的弹窗页面,您需要选择本次方案部署的云服务器所在的区域,并在本次需要读取CPU和内存的ECS的名称前面勾选,无误后点击下图中的2个“确认”按钮,开始执行CPTS配置的压测脚本。 图9 配置需要自动获取CPU和内存的ECS 执行结束后,可以在页面查看执行的状态是否通过(下方“不通过”截图为举例说明,认证测试要求状态为“通过”)。 在“手工测试步骤”,系统会自动将压测的“实际结果”的截图生成到对应的步骤中。 图10 执行结束查的状态 当压测结果满足本次测试要求后,在操作步骤的下方,点击“用例状态”的下拉框,选择状态为“执行完毕”,执行结果选择“通过”,则用例执行完成。 图11 修改用例的状态也执行结果 在用例列表的页面,可以看到执行的用例的状态和执行结果。 图12 用例列表 若本次认证方案架构的ECS未使用CCE部署,则不能够按照上述操作方式自动获取压测期间的CPU与内存截图。以下对使用CCE和Kubernetes集群的场景分别说明,您可以根据本次实际部署场景选择查看。 CCE部署的场景,请参考下方的操作进行: 对于CCE的场景,如需要通过华为云 AOM 控制台(旧版)-总览-仪表盘-添加数据指标-曲线图-下一步, 图13 AOM创建仪表盘 然后在左侧选择需要监控的容器内的组件名称(可对选),在右侧可选择需要监控的指标,一般性能测试就是监控“物理内存使用率”和“CPU使用率”这两个指标。仪表盘创建成功后,去执行性能用例后,用例执行完成后返回仪表盘根据压测时间筛选所需要的时间段的报告截图即可。 图14 添加仪表盘的指标和容器组件 Kubernetes集群部署的场景,请参考下方的操作进行: 自建的Kubernetes容器,监控CPU和内存使用率,需要伙伴自建Prometheus Server,和华为云AOM云服务对接。 创建Remote Write Prometheus实例:点击参考操作指导。 工作负载监控:点击参考操作指导。
  • 执行安全自动化用例 安全自动化测试用例包含“Web扫描(网站扫描)”、“主机扫描”、“二进制扫描”三类,。 Web扫描的操作指导点击参考:Web扫描。 主机扫描的操作指导点击参考:主机扫描。 二进制扫描的操作指导点击参考:二进制扫描。 安全自动化常见问题可参考安全扫描类FAQ。 不同类型的手工测试用例执行结果要求如下: “性能自动化用例”:分为自动化的步骤和手工的步骤,执行完自动化的步骤再执行手工的步骤,按照手工的测试步骤描述提供截图和截图的文字描述。 “安全用例”:每条安全用例都要提供截图和截图的文字描述(“访谈类”和执行结果为“不涉及”的用例只需在“实际结果”使用文字描述即可);工具扫描需要满足安全指标的要求。 “可靠性用例”:每条可靠性测试用例都要在实际结果上传截图和截图的文字描述。
  • “二进制扫描”漏洞处理 关于“二进制扫描”漏洞的修改,您可以参考以下几点建议来进行处理。 由于扫描工具存在一定的误报概率,对怀疑为误报的漏洞参考“服务依赖组件漏洞分析表”中的“漏洞误报分析”进行误报分析。分析结果通过华为扫描工具工程师确认为误报的可不处理。 将漏洞组件升级到最新版本。 产品版本打包时排除未使用的组件;容器镜像选择使用安全的基础镜像,只包含应用运行时依赖的组件。 将长期无人维护的开源组件替换为功能类似活跃度更高的安全组件。 对于没有可用升级版本的,参考“服务依赖组件漏洞分析表”中的“漏洞处理分析”进行漏洞处理分析。需根据漏洞原理分析漏洞触发场景、出现漏洞的影响,对产品受影响的场景需采取有效规避措施,测试完成前不能整改的需给出整改计划。分析结果通过华为安全工程师评审后归档保存。 “服务依赖组件漏洞分析”表提供了填写说明和填写模板供您填写前参考。 漏洞处理分析需要由熟悉产品内部运行过程的人员结合漏洞触发场景完成。
  • 场景说明 假定一个广告业务,存在广告请求事件、广告展示事件、广告点击事件,广告主需要实时统计有效的广告展示和广告点击数据。 已知: 终端用户每次请求一个广告后,会生成广告请求事件,保存到kafka的adRequest topic中。 请求一个广告后,可能用于多次展示,每次展示,会生成广告展示事件,保存到kafka的adShow topic中。 每个广告展示,可能会产生多次点击,每次点击,会生成广告点击事件,保存到kafka的adClick topic中。 广告有效展示的定义如下: 请求到展示的时长超过A分钟算无效展示。 A分钟内多次展示,每次展示事件为有效展示。 广告有效点击的定义如下: 展示到点击时长超过B分钟算无效点击。 B分钟内多次点击,仅首次点击事件为有效点击。 基于此业务场景,模拟简单的数据结构如下: 广告请求事件 数据结构:adID^reqTime 广告展示事件 数据结构:adID^showID^showTime 广告点击事件 数据结构:adID^showID^clickTime 数据关联关系如下: 广告请求事件与广告展示事件通过adID关联。 广告展示事件与广告点击事件通过adID+showID关联。 数据要求: 数据从产生到到达流处理引擎的延迟时间不超过2小时 广告请求事件、广告展示事件、广告点击事件到达流处理引擎的时间不能保证有序和时间对齐
  • 打包项目 将user.keytab、krb5.conf 两个文件上传客户端所在服务器上。 通过IDEA自带的Maven工具,打包项目,生成jar包。具体操作请参考在Linux环境中调测Spark应用。 编译打包前,样例代码中的user.keytab、krb5.conf文件路径需要修改为该文件所在客户端服务器的实际路径。例如:“/opt/female/user.keytab”,“/opt/female/krb5.conf”。 将打包生成的jar包上传到Spark客户端所在服务器的任意目录(例如“ /opt” )下。
  • 数据规划 在kafka中生成模拟数据(需要有Kafka权限用户)。 java -cp $SPARK_HOME/conf:$SPARK_HOME/jars/*:$SPARK_HOME/jars/streamingClient010/*:{ClassPath} com.huawei.bigdata.spark.examples.KafkaADEventProducer {BrokerList} {timeOfProduceReqEvent} {eventTimeBeforeCurrentTime} {reqTopic} {reqEventCount} {showTopic} {showEventMaxDelay} {clickTopic} {clickEventMaxDelay} 确保集群安装完成,包括HDFS、Yarn、Spark2x和Kafka。 将Kafka的Broker配置参数“allow.everyone.if.no.acl.found”的值修改为“true”。 启动Kafka的Producer,向Kafka发送数据。 {ClassPath}表示工程jar包的存放路径,详细路径由用户指定,可参考在Linux环境中调测Spark应用章节中导出jar包的操作步骤。 命令举例: java -cp /opt/client/Spark2x/spark/conf:/opt/StructuredStreamingADScalaExample-1.0.jar:/opt/client/Spark2x/spark/jars/*:/opt/client/Spark2x/spark/jars/streamingClient010/* com.huawei.bigdata.spark.examples.KafkaADEventProducer 10.132.190.170:21005,10.132.190.165:21005 2h 1h req 10000000 show 5m click 5m 此命令将在kafka上创建3个topic:req、show、click,在2h内生成1千万条请求事件数据,请求事件的时间取值范围为{当前时间-1h 至 当前时间},并为每条请求事件随机生成0-5条展示事件,展示事件的时间取值范围为{请求事件时间 至请求事件时间+5m },为每条展示事件随机生成0-5条点击事件,点击事件的时间取值范围为{展示事件时间 至展示事件时间+5m }
  • 操作步骤 编译JDBC样例程序: 在IDEA界面左下方单击“Terminal”进入终端,执行命令mvn clean package进行编译。 当输出“BUILD SUC CES S”,表示编译成功,如下图所示。编译成功后将会在样例工程的target下生成含有“-with-dependencies”字段的jar包。 运行JDBC样例程序: 在Linux上创建一个目录作为运行目录,如“/opt/jdbc_example”,将1中生成的“target”目录下包名中含有“-with-dependencies”字段的Jar包放进该路径下,并在该目录下创建子目录“src/main/resources”,将已获取的“hive-jdbc-example\src\main\resources”目录下的所有文件复制到“resources”下。 执行以下命令运行Jar包: chmod +x /opt/jdbc_example -R cd /opt/jdbc_example java -jar hive-jdbc-example-1.0-SNAPSHOT-jar-with-dependencies.jar 以上Jar包名称仅供参考,具体名称以实际生成为主。 在命令行终端查看样例代码中的HQL所查询出的结果,运行成功会显示如下信息: Create table success! _c0 0 Delete table success!
  • 场景说明 假定用户有某个周末网民网购停留时间的日志,基于某些业务要求,要求开发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
  • 数据规划 首先需要把原日志文件放置在HDFS系统里。 本地新建两个文本文件input_data1.txt和input_data2.txt,将log1.txt中的内容复制保存到input_data1.txt,将log2.txt中的内容复制保存到input_data2.txt。 在HDFS客户端路径下建立一个文件夹,“/tmp/input”,并上传input_data1.txt,input_data2.txt到此目录,命令如下: 在Linux系统HDFS客户端使用命令hadoop fs -mkdir /tmp/input(hdfs dfs命令有同样的作用),创建对应目录。 进入到HDFS客户端下的“/tmp/input”目录,在Linux系统HDFS客户端使用命令hadoop fs -putinput_data1.txt /tmp/input和hadoop fs -putinput_data2.txt /tmp/input,上传数据文件。
  • ClickHouse应用开发流程介绍 开发流程中各阶段的说明如图1和表1所示。 图1 ClickHouse应用程序开发流程 表1 ClickHouse应用开发的流程说明 阶段 说明 参考文档 了解基本概念 在开始开发应用前,需要了解ClickHouse的基本概念。 基本概念 准备开发和运行环境 ClickHouse的应用程序支持多种语言开发,主要为Java语言,推荐使用IntelliJ IDEA工具,请根据指导完成开发环境配置。 准备ClickHouse应用开发和运行环境 根据场景开发工程 提供样例工程,帮助用户快速了解ClickHouse各部件的编程接口。 导入并配置ClickHouse样例工程 运行程序及查询结果 用户可以直接通过运行结果查看应用程序运行情况。 在本地Windows环境中调测ClickHouse应用( MRS 3.3.0之前版本) 在Linux环境中调测ClickHouse应用(MRS 3.3.0之前版本) 父主题: ClickHouse开发指南(安全模式)
  • 场景说明 假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发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
  • 打包项目 将user.keytab、krb5.conf 两个文件上传客户端所在服务器上。 通过IDEA自带的Maven工具,打包项目,生成jar包。具体操作请参考在Linux环境中调测Spark应用。 编译打包前,样例代码中的user.keytab、krb5.conf文件路径需要修改为该文件所在客户端服务器的实际路径。例如:“/opt/female/user.keytab”,“/opt/female/krb5.conf”。 运行Python样例代码无需通过Maven打包,只需要上传user.keytab、krb5.conf 文件到客户端所在服务器上。 将打包生成的jar包上传到Spark客户端所在服务器的任意目录(例如“ /opt/female/” )下。
  • 场景说明 假定一个广告业务,存在广告请求事件、广告展示事件、广告点击事件,广告主需要实时统计有效的广告展示和广告点击数据。 已知: 终端用户每次请求一个广告后,会生成广告请求事件,保存到kafka的adRequest topic中。 请求一个广告后,可能用于多次展示,每次展示,会生成广告展示事件,保存到kafka的adShow topic中。 每个广告展示,可能会产生多次点击,每次点击,会生成广告点击事件,保存到kafka的adClick topic中。 广告有效展示的定义如下: 请求到展示的时长超过A分钟算无效展示。 A分钟内多次展示,每次展示事件为有效展示。 广告有效点击的定义如下: 展示到点击时长超过B分钟算无效点击。 B分钟内多次点击,仅首次点击事件为有效点击。 基于此业务场景,模拟简单的数据结构如下: 广告请求事件 数据结构:adID^reqTime 广告展示事件 数据结构:adID^showID^showTime 广告点击事件 数据结构:adID^showID^clickTime 数据关联关系如下: 广告请求事件与广告展示事件通过adID关联。 广告展示事件与广告点击事件通过adID+showID关联。 数据要求: 数据从产生到到达流处理引擎的延迟时间不超过2小时 广告请求事件、广告展示事件、广告点击事件到达流处理引擎的时间不能保证有序和时间对齐
  • 数据规划 在kafka中生成模拟数据(需要有Kafka权限用户)。 java -cp $SPARK_HOME/conf:$SPARK_HOME/jars/*:$SPARK_HOME/jars/streamingClient010/*:{ClassPath} com.huawei.bigdata.spark.examples.KafkaADEventProducer {BrokerList} {timeOfProduceReqEvent} {eventTimeBeforeCurrentTime} {reqTopic} {reqEventCount} {showTopic} {showEventMaxDelay} {clickTopic} {clickEventMaxDelay} 确保集群安装完成,包括HDFS、Yarn、Spark2x和Kafka。 将Kafka的Broker配置参数“allow.everyone.if.no.acl.found”的值修改为“true”。 启动Kafka的Producer,向Kafka发送数据。 {ClassPath}表示工程jar包的存放路径,详细路径由用户指定,可参考在Linux环境中调测Spark应用章节中导出jar包的操作步骤。 命令举例: java -cp /opt/client/Spark2x/spark/conf:/opt/StructuredStreamingADScalaExample-1.0.jar:/opt/client/Spark2x/spark/jars/*:/opt/client/Spark2x/spark/jars/streamingClient010/* com.huawei.bigdata.spark.examples.KafkaADEventProducer 10.132.190.170:21005,10.132.190.165:21005 2h 1h req 10000000 show 5m click 5m 此命令将在kafka上创建3个topic:req、show、click,在2h内生成1千万条请求事件数据,请求事件的时间取值范围为{当前时间-1h 至 当前时间},并为每条请求事件随机生成0-5条展示事件,展示事件的时间取值范围为{请求事件时间 至请求事件时间+5m },为每条展示事件随机生成0-5条点击事件,点击事件的时间取值范围为{展示事件时间 至展示事件时间+5m }
  • 数据规划 创建HBase表,构造数据,列需要包含key,modify_time,valid。其中每条数据key值全表唯一,modify_time代表修改时间,valid代表是否为有效数据(该样例中'1'为有效,'0'为无效数据)。 示例:进入hbase shell,执行如下命令: create 'hbase_table','key','info' put 'hbase_table','1','info:modify_time','2019-11-22 23:28:39' put 'hbase_table','1','info:valid','1' put 'hbase_table','2','info:modify_time','2019-11-22 23:28:39' put 'hbase_table','2','info:valid','1' put 'hbase_table','3','info:modify_time','2019-11-22 23:28:39' put 'hbase_table','3','info:valid','0' put 'hbase_table','4','info:modify_time','2019-11-22 23:28:39' put 'hbase_table','4','info:valid','1' 上述数据的modify_time列可设置为当前时间之前的值。 put 'hbase_table','5','info:modify_time','2021-03-03 15:20:39' put 'hbase_table','5','info:valid','1' put 'hbase_table','6','info:modify_time','2021-03-03 15:20:39' put 'hbase_table','6','info:valid','1' put 'hbase_table','7','info:modify_time','2021-03-03 15:20:39' put 'hbase_table','7','info:valid','0' put 'hbase_table','8','info:modify_time','2021-03-03 15:20:39' put 'hbase_table','8','info:valid','1' put 'hbase_table','4','info:valid','0' put 'hbase_table','4','info:modify_time','2021-03-03 15:20:39' 上述数据的modify_time列可设置为样例程序启动后30分钟内的时间值(此处的30分钟为样例程序默认的同步间隔时间,可修改)。 put 'hbase_table','9','info:modify_time','2021-03-03 15:32:39' put 'hbase_table','9','info:valid','1' put 'hbase_table','10','info:modify_time','2021-03-03 15:32:39' put 'hbase_table','10','info:valid','1' put 'hbase_table','11','info:modify_time','2021-03-03 15:32:39' put 'hbase_table','11','info:valid','0' put 'hbase_table','12','info:modify_time','2021-03-03 15:32:39' put 'hbase_table','12','info:valid','1' 上述数据的modify_time列可设置为样例程序启动后30分钟到60分钟内的时间值,即第二次同步周期。 在sparksql中创建HBase的hive外表,命令如下: create table external_hbase_table(key string ,modify_time STRING, valid STRING) using org.apache.spark.sql.hbase.HBaseSource options(hbaseTableName "hbase_table", keyCols "key", colsMapping "modify_time=info.modify_time,valid=info.valid"); 在sparksql中创建CarbonData表: create table carbon01(key string,modify_time STRING, valid STRING) stored as carbondata; 初始化加载当前hbase表中所有数据到CarbonData表; insert into table carbon01 select * from external_hbase_table where valid='1'; 用spark-submit提交命令: spark-submit --master yarn --deploy-mode client --keytab /opt/FIclient/user.keytab --principal sparkuser --class com.huawei.bigdata.spark.examples.HBaseExternalHivetoCarbon /opt/example/HBaseExternalHivetoCarbon-1.0.jar
  • 打包项目 将user.keytab、krb5.conf 两个文件上传客户端所在服务器上。 通过IDEA自带的Maven工具,打包项目,生成jar包。具体操作请参考在Linux环境中调测Spark应用。 编译打包前,样例代码中的user.keytab、krb5.conf文件路径需要修改为该文件所在客户端服务器的实际路径。例如:“/opt/user.keytab”,“/opt/krb5.conf”。 将打包生成的jar包上传到Spark客户端所在服务器的任意目录(例如“ /opt/” )下。
  • 获取样例工程 通过开源镜像站获取样例工程。 下载样例工程的Maven工程源码和配置文件,并在本地配置好相关开发工具,可参考通过开源镜像站获取样例工程。 根据集群版本选择对应的分支,下载并获取MRS相关样例工程。 例如本章节场景对应示例为“hdfs-example-security”样例,获取地址:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.2.0.1/src/hdfs-example-security。 本地使用IDEA工具导入样例工程,等待Maven工程下载相关依赖包,具体操作可参考配置并导入样例工程。 图1 HDFS样例工程示例 本地配置好Maven及SDK相关参数后,样例工程会自动加载相关依赖包。 将准备应用开发配置文件中获取的集群配置文件及用户认证文件放置在样例工程的“conf”目录下。 在HDFS样例工程代码中,不同的样例工程,使用的认证代码不同,包括基本安全认证和带ZooKeeper认证。 本示例中,不需要访问HBase或ZooKeeper,所以使用基本的安全认证代码即可。 在“com.huawei.bigdata.hdfs.examples”包的“HdfsExample”类中修改“PRNCIPAL_NAME”为实际用户名,例如“developuser”。 private static final String PATH_TO_HDFS_SITE_XML = System.getProperty("user.dir") + File.separator + "conf" + File.separator + "hdfs-site.xml"; private static final String PATH_TO_CORE_SITE_XML = System.getProperty("user.dir") + File.separator + "conf" + File.separator + "core-site.xml"; private static final String PRNCIPAL_NAME = "developuser"; private static final String PATH_TO_KEYTAB = System.getProperty("user.dir") + File.separator + "conf" + File.separator + "user.keytab"; private static final String PATH_TO_KRB5_CONF = System.getProperty("user.dir") + File.separator + "conf" + File.separator + "krb5.conf"; ... 本样例工程中,基于业务场景的开发思路如下,各功能代码片段详情说明可参考开发HDFS应用。 以“/user/hdfs-examples/test.txt”文件的读写删除等操作为例,说明HDFS文件的基本操作流程: 通过集群安全认证。 创建FileSystem对象:fSystem。 调用fSystem的mkdir接口创建目录。 调用fSystem的create接口创建FSDataOutputStream对象:out,使用out的write方法写入数据。 调用fSystem的append接口创建FSDataOutputStream对象:out,使用out的write方法追加写入数据。 调用fSystem的open接口创建FSDataInputStream对象:in,使用in的read方法读取文件。 调用fSystem中的delete接口删除文件。 调用fSystem中的delete接口删除文件夹。
  • 数据规划 StructuredStreaming样例工程的数据存储在Kafka组件中。向Kafka组件发送数据(需要有Kafka权限用户)。 确保集群安装完成,包括HDFS、Yarn、Spark和Kafka。 创建Topic。 {zkQuorum}表示ZooKeeper集群信息,格式为IP:port。 $KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper {zkQuorum}/kafka --replication-factor 1 --partitions 1 --topic {Topic} 启动Kafka的Producer,向Kafka发送数据。 {ClassPath}表示工程jar包的存放路径,详细路径由用户指定,可参考在Linux环境中调测Spark应用章节中导出jar包的操作步骤。 java -cp $SPARK_HOME/jars/*:$SPARK_HOME/jars/streamingClient010/*:{ClassPath} com.huawei.bigdata.spark.examples.KafkaWordCountProducer {BrokerList} {Topic} {messagesPerSec} {wordsPerMessage}
  • 回答 第三方jar包(例如自定义udf)区分x86和TaiShan版本时,混合使用方案: 进入到服务端spark2x sparkResource的安装目录(这个集群安装过程中可能会安装在多个节点上,随便进入一个安装节点,cd到sparkResource的安装目录)。 准备好自己的jar包例如xx.jar的x86版本和TaiShan版本。将x86版本和TaiShan版本的xx.jar分别复制到当前目录的x86文件夹和TaiShan文件夹里面。 在当前目录下执行以下命令将jar包打包: zip -qDj spark-archive-2x-x86.zip x86/* zip -qDj spark-archive-2x-arm.zip arm/* 执行以下命令查看hdfs上的spark2x依赖的jar包: hdfs dfs -ls /user/spark2x/jars/8.1.0.1 8.1.0.1是版本号,不同版本不同。 执行以下命令移动hdfs上旧的jar包文件到其他目录,例如移动到“tmp”目录。 hdfs dfs -mv /user/spark2x/jars/8.1.0.1/spark-archive-2x-arm.zip /tmp hdfs dfs -mv /user/spark2x/jars/8.1.0.1/spark-archive-2x-x86.zip /tmp 上传3中打包的spark-archive-2x-arm.zip和spark-archive-2x-x86.zip到hdfs的/user/spark2x/jars/8.1.0.1目录下,上传命令如下: hdfs dfs -put spark-archive-2x-arm.zip /user/spark2x/jars/8.1.0.1/ hdfs dfs -put spark-archive-2x-x86.zip /user/spark2x/jars/8.1.0.1/ 上传完毕后删除本地的spark-archive-2x-arm.zip,spark-archive-2x-x86.zip文件。 对其他的SparkResource安装节点执行1~2。 进入WebUI重启Spark的JD BCS erver实例。 重启后,需要更新客户端配置。按照客户端所在的机器类型(x86、TaiShan)复制xx.jar的相应版本到客户端的spark2x安装目录${install_home}/Spark2x/spark/jars文件夹中。${install_home}是用户的客户端安装路径,用户需要填写实际的安装目录;若本地的安装目录为/opt/hadoopclient,那么就复制相应版本xx.jar到/opt/hadoopclient/Spark2x/spark/jars文件夹里。
共100000条