华为云用户手册

  • 补丁基本信息说明 表1 补丁基本信息 补丁号 MRS _3.3.0-LTS.1.1 发布时间 2024-12-20 解决的问题 解决Manager问题: 修改Chrony的 域名 会导致Nodeagent无法启动。 集群扩容时,在同步组件配置时HDFS组件配置同步失败,导致启动HDFS服务失败。 Chrony时钟偏移精度低导致上报持续上报“NTP服务异常”与“NTP服务不可用”告警。 优化节点间互信失效告警,自动恢复功能。 重启Agent进程,如果这个Agent节点安装有服务健康检查配置的关键实例,将会误报服务不可用告警。 运维通道功能校验签名失败后任务阻塞。 节点内存打满,MRS集群磁盘出现踢盘,盘分区丢失。 租户资源修改用户策略功能无法使用。 空间聚合指标聚合时使用了实时数据聚合,导致聚合的数据不准确。 节点隔离后频繁告警节点故障告警。 Manager存在节点间网络异常误告警及告警无法自动消除情况。 Gaussdb健康检查异常,导致实例重启。 IAM 同步的用户加入supergroup用户组后,无法删除。 高并发认证过程web进程内存增加较多。 Ldap在部分数据主备不一致未能及时触发告警。 Meta缺少进程可用性健康检查。 Manager主备节点同步数据异常,pms目录下存在脏数据。 解决Flink问题: 普通集群Flink jar作业提交失败。 创建只有两个英文字母的用户后,无法登录Flink WebUI页面。 FlinkServer重启策略的失败重试间隔时间单位与实际不符。 修改Flink登录用户的密码后,提交作业失败。 作业从Checkpoint恢复后一直处于提交中。 Flinkserver作业提交后一直显示提交成功。 Flink作业写Hudi后,Spark查询报错。 Flink日志中打印Hudi数据。 两个以上join的场景中hash行为发生改变。 Hudi cow表lookup join作业启动时报错。 普通集群Flink写Hudi同步hive hms模式下失败。 Flink作业通过CheckPoint恢复失败。 解决JobGateWay问题: Jobgateway的flink作业launcherJob日志无详细信息。 不起realJob的FlinkSql类型作业偶现状态刷新失败。 历史作业信息的老化未根据任务结束时间进行老化。 用户添加成功后首次作业管理提交作业时显示MRS Manager中用户不存在。 全链路在DLF上的Spark/DWS作业For Each算子监控数据展示缺失。 MRS实时任务告警通知需显示具体作业名称。 Flink Jar作业实际失败了后作业状态却刷新为成功。 提交FlinkSQL作业,在Yarn上未启动真实作业。 DGC提交FlinkSSQL作业包含多个insert,每个insert会分别提交1个Flink作业。 LauncherJob重试后导致任务状态异常。 Sparkscript作业偶现作业状态与Yarn上作业状态不一致。 管理面提交MR引擎作业当任务有多个map时管理面任务结束统计时间不正确。 SQL中查询表格大于10张时,查询结果排序与实际的排序不符。 JobGateway提交的SparkSql/SparkScript同名列作业展示的结果不正确。 JobBalance连接数监控为空。 管控面提交Spark作业Jar包所在的桶与业务桶使用同一个时,长时间运行后访问obs 403。 解决ClickHouse问题: ClickHouse偶现libunwind内存越界,导致进程重启。 ClickHouse的迁移工具内部有数据迁移时长限制,数据量较大时迁移失败。 Nodeagent进程连接ZooKeeper,异常链接不释放。 数据库进入只读导致任务失败。 内存连续增长,导致进程无内存可用。 健康检查阻塞导致资源打满。 单节点下电重启后,ClickHouse实例故障。 表数量多的情况下,角色界面加载慢。 副本不一致告警频繁上报,影响用户体验。 使用scp方式替换sftp功能。 慢查询告警检测语句执行耗时过长。 Mysql引擎偶现卡住。 安全认证存在缓慢内存泄露。 数据盘误隔离,导致数据异常。 资源关闭异常导致僵尸进程。 system.build_options包含用户提交信息。 集群实例间的CPU负载不均衡。 解决Flume问题: 使用TaildirSource读取文件在节点inode重复场景下会造成少读文件或者读取文件不全。 Flume使用httpsource时,由于jetty-http-9.4.46.v20220331.jar包冲突导致报错。 解决Kafka问题: 故障场景下,KafkaUI没有释放ZooKeeper链接。 解决Ranger问题: Spark执行任务时,报错Ranger策略为空,导致批量Spark任务失败。 各组件日志默认保留数量和大小太少,无法支撑问题定位。 SparkSQL任务进行Ranger鉴权,偶发鉴权失败。 解决HBase问题: HBase在大量写入的场景下,回收站会被打满不能及清理导致磁盘空间不被释放。 [HBASE-27580] 健康检查进程因为热点自愈OOM,集群RegionServer节点反复重启。 各组件日志默认保留数量和大小太少,无法支撑问题定位。 compaction队列积压问题严重。 RegionServer不断重启,数据写入失败,任务失败。 HBase冷热表执行major compaction异常。 使用FSHLogProvider时,开启HAR特性在WAL滚动时将可能抛出FileNotFoundException。 HBase连接Zookeeper大量进程未释放,导致节点内存爆满。 HBase计划性迁移后存量复制导致全量数据重复迁移。 Cache key had block type null日志打印过多,可能影响性能。 ALM-19012告警HBase系统表目录或文件丢失告警误报。 健康检查脚本执行异常导致上报HBase服务不可用误告警。 解决Yarn问题: RM长时间运行后发现大量ContainerIdPBImpl对象占用导致内存泄漏。 提交HiveSQL任务长时间卡主无法往下运行。 Yarn资源抢占功能偶现不生效。 “/tmp/hadoop-yarn/staging/”目录下文件未清理。 Yarn队列资源充足,任务提交无法取到资源。 kill有预留资源的任务后,Yarn上预留资源累加不释放。 任务长时间运行后日志丢失。 解决HDFS问题: 双AZ集群NameNode主备倒换后出现大量待复制副本。 访问kerberos超时导致,上报异常告警。 容灾时候报错 CopyListing$DuplicateFileException。 HDFS主备容灾偶现失败。 HBase空指针异常导致regionserver abort问题。 解决MapReduce问题: 循环依赖校验有误。 解决Hive问题: 开启Ranger鉴权后查询大宽表耗时较长。 Ranger不支持禁用OBS鉴权策略。 influxdb生成的parquet文件timestamp类型为纳秒类型,Hive读取报错。 外置RDS MYSQL场景开启添加列优化执行alter cascade操作分区表由于库中分区量较大导致MYSQL异常。 日志默认保留数量和大小调整。 Tez引擎执行union后使用concatenate合并小文件数据丢失。 重启Zookeeper节点后Hive SQL执行失败。 普通集群,Hive需验证token,导致Flink管理面提交hive catlog作业失败。 MetaStore删除分区偶现死锁。 Tez引擎insert overwrite插入空集不会覆盖原数据。 conv函数第一个参数为空时执行结果异常。 Hive on Spark作业并发较高时会将所在节点内存打爆。 启用Ranger鉴权,本用户创建的UDAF,本用户使用,报无权限。 localtask导致inode满优化。 MetaStore死锁无法自动恢复。 Minus执行报空指针。 表location指定库路径导致删表后库数据丢失。 解决Hudi问题: 实时日切入湖场景(Flink on Hudi)数据入湖后,存在Hudi相同分区下同主键数据重复问题,导致数据不一致。 Alter删除分区在写同名分区数据,执行clean无效。 Hudi以数字开头的hudi表名,表创建成功,在进行删除分区时失败。 FileGroup下只有一个4bytes文件时,Hudi读写报错。 Hudi表删表之后重建会报错。 执行DDL后,Drop partition失败。 Insert Overwrite写MOR表,archive失效。 修改Hudi写Cow表逻辑,先写到temp目录,然后再rename到正式目录。 Hudi表执行drop partition后重新写入相同分区的数据,分区无法添加到metastore,导致Hive/HetuEngine读不到新数据。 Spark DataSource第一次写入数据时报NPE。 spark-shell建表失败。 解决HetuEngine问题: date_add开启隐式转换使用between执行失败。 queryInfo日志里面Memory采集不准确。 Hive大写CURRENT_USER函数创建的视图,hetu-cli查询不生效。 date_add('month', -1 vs - interval '1' month)计算不准确。 datediff时间函数计算结果不对。 普通模式集群HetuEngine需要支持对接外部LDAP。 Hive新增metastore实例之后,HetuEngine本地容器未刷新。 HetuEngine的SQL运维界面,基于用户维度的慢sql统计信息不正确。 SQL很长的时候,使用HSFabric连接JDBC执行SQL失败。 DBService服务异常重启恢复期间,如果HetuEngine的计算实例异常停止,在DBService恢复后,计算实例无法自愈。 QAS磁盘使用率无监控数据。 Hive嵌套视图包含cast varchar(n)时,查询视图报错。 解决Spark问题: JD BCS erver在session关闭超时的时候会出现session一直存在的情况。 spark.history.store.hybridStore.diskBackend默认值改为ROCKSDB。 用户Spark任务Driver执行完成后,Executor启动时出现RpcEndpointNotFoundException: Cannot find endpoint。 JDB CS erver driver进程出现log4j死锁。 commons-pool2版本冲突导致Spark访问kafka报错。 Sparkstreaming任务失败,但是Yarn WebUI中显示状态是succeeded。 Spark任务提交报Spark类序列化异常。 spark show tables不支持Ranger鉴权。 JobHistory GC回收慢导致长时间运行的任务场景下频繁出现实例GC告警。 Spark作业Driver经常Full GC报OOM异常。 Spark Jar读取Parquet和MySQL数据后进行Join和Filter操作后,必现栈溢出。 influxdb生成的parquet文件timestamp类型为纳秒,故导致数据读取报错。 CDM 执行Spark SQL使用的JDBC接口,SQL执行失败,但是返回给客户端结果是执行成功。 LYUAN.LYUAN_L2_LOT_PLAN_DETAIL_CA表增加字段后,使用insert into table xxx select xxx from xxx语句插入数据后,分区值插入到了其他字段。 无法获取包含genericUDF执行计划的json格式。 Insert overwrite table a select * from a, metastore故障后,数据丢失。 创建block异常失败场景未清理blockinfo状态导致dag-scheduler-event-loop线程挂死。 鉴权加固:spark.ranger.plugin.viewaccesscontrol.enable默认开启。 alter table drop partition权限管理_user有库的read,write权限时,删除库内表分区时,报错提示需要EXECUTE权限,但是表分区却删除成功。 alter table add partions set location指定为一个已有库的路径时,执行成功,有数据丢失风险。 Spark创建库时指定location路径和已有库路径一致时没有拦截,校验默认关闭。 spark未把.db路径加入黑名单保护列表会存在建表建分等指定location存在数据丢失风险。 spark.sql.relationCache.skip参数行为与描述不符合,为空时候不生效。 DGC对应连接Spark JDBCServer提及的Yarn任务 AM重试次数只有一次,单点故障会影响整个集群。 Driver存储大量JobConf对象,内存不断增加引发的内存泄露。 CSV中存在null时,covertRow会频繁读取SqlConf。 访问集群外HDFS,Spark认证失败。 UserA创建表和视图后,只授权给UserB视图Select权限,UserB可以查询到表数据。 用户任务Orc数据文件迁移到新集群后,出现读取Orc数据时出现数组越界异常。 管控面执行add jar obs路径空指针。 补丁兼容关系 MRS_3.3.0-LTS.1.1补丁包中包含所有MRS 3.3.0-LTS.1版本单点问题修复补丁。 父主题: MRS 3.3.0-LTS.1.1补丁说明
  • MapReduce常用端口 表中涉及端口的协议类型均为:TCP。 配置参数 开源默认端口 定制默认端口 端口说明 mapreduce.jobhistory.webapp.port 19888 26012 Job history服务器Web http端口。 该端口用于:查看Job History服务器的Web页面。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 mapreduce.jobhistory.port 10020 26013 Job history服务器端口。 该端口用于: 用于MapReduce客户端恢复任务的数据。 用于Job客户端获取任务报告。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 mapreduce.jobhistory.webapp.https.port 19890 26014 Job history服务器Web https端口。 该端口用于查看Job History服务器的Web页面。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是
  • Storm常用端口 表中涉及端口的协议类型均为:TCP。 配置参数 开源默认端口 定制默认端口 端口说明 nimbus.thrift.port 6627 29200 nimbus提供thrift服务 supervisor.slots.ports 6700,6701,6702,6703 29200-29499 接收由其它服务器转发过来的请求 logviewer.https.port 29248 29248 logviewer提供HTTPS服务 ui.https.port 29243 29243 Storm UI提供Https服务(ui.https.port)
  • Presto常用端口 表中涉及端口的协议类型均为:TCP。 配置参数 默认端口 端口说明 http-server.http.port 7520 presto coordinator对外提供服务的HTTP端口。 http-server.https.port 7521 presto coordinator对外提供服务的HTTPS端口。 http-server.http.port 7530 presto worker对外提供服务的HTTP端口。 http-server.https.port 7531 presto worker对外提供服务的HTTPS端口。
  • Spark常用端口 表中涉及端口的协议类型均为:TCP。 配置参数 开源默认端口 定制默认端口 端口说明 hive.server2.thrift.port 22550 22550 JDBC thrift端口。 该端口用于: Spark2.1.0 CLI/JDBC与Spark2.1.0 CLI/JDBC服务器进行socket通信。 说明: 如果hive.server2.thrift.port被占用,将抛端口被占用异常。 安装时是否缺省启用:是 安全加固后是否启用:是 spark.ui.port 4040 22950 JDBC的Web UI端口 该端口用于:Web请求与JDBC Server Web UI服务器进行HTTPS/HTTP通信。 说明: 系统会根据端口的设置取值,并验证其有效性;如果无效,端口+1,直到取到有效值为止(上限16次,重试次数可以通过配置spark.port.maxRetries改变)。 安装时是否缺省启用:是 安全加固后是否启用:是 spark.history.ui.port 18080 22500 JobHistory Web UI端口 该端口用于:Web请求与Spark2.1.0 History Server间的HTTPS/HTTP通信 说明: 系统会根据端口的设置取值,并验证其有效性;如果无效,端口+1,直到取到有效值为止(上限16次,重试次数可以通过配置spark.port.maxRetries改变)。 安装时是否缺省启用:是 安全加固后是否启用:是
  • YARN常用端口 表中涉及端口的协议类型均为:TCP。 配置参数 开源默认端口 定制默认端口 端口说明 yarn.resourcemanager.webapp.port 8088 26000 ResourceManager服务的Web http 端口。 yarn.resourcemanager.webapp.https.port 8090 26001 ResourceManager服务的Web https 端口。 该端口用于:安全模式下,接入Resource Manager Web应用。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 yarn.nodemanager.webapp.port 8042 26006 NodeManager Web http端口 yarn.nodemanager.webapp.https.port 8044 26010 NodeManager Web https端口。 该端口用于: 安全模式下,接入NodeManager web应用。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是
  • ClickHouse常用端口 表中涉及端口的协议类型均为:TCP和HTTP。 配置参数 开源默认端口 定制默认端口 端口说明 interserver_http_port 9009 9009 用于在ClickHouse server间通信的http端口。 interserver_https_port 9010 9010 用于在ClickHouse server间通信的https端口。 http_port 8123 8123 用于通过http连接到ClickHouse server的端口。 https_port 8443 8443 用于通过https连接到ClickHouse server的端口。 tcp_port 9000 9000 用于客户端通过TCP连接到ClickHouse server的端口。 tcp_port_secure 9440 9440 用于客户端通过TCP SSL连接到ClickHouse server的端口。 lb_tcp_port 21424 21424 ClickHouseBalancer的TCP通信端口号。 lb_http_port 21425 21425 ClickHouseBalancer的Http通信端口号。 lb_https_port 21426 21426 ClickHouseBalancer的Https通信端口号。 lb_tcp_secure_port 21428 21428 ClickHouseBalancer的TCP SSL通信端口号。
  • Doris常用端口 表中涉及端口的协议类型均为:TCP和HTTP。 配置参数 开源默认端口 定制默认端口 端口说明 http_port 8030 29980 FE服务的HTTP端口。 https_port 8050 29991 FE服务的HTTPS端口。 query_port 9030 29982 Doris FE通过MySQL协议查询连接端口。 rpc_port 9020 29981 FE服务的Thrift Server端口。 be_port 9060 29984 BE上Thrift Server的端口号,用于接收来自FE的请求。 brpc_port 8060 29987 BE上的BRPC的端口,用于各BE实例之间进行通讯连接。 heartbeat_service_port 9050 29985 BE上心跳服务端口(Thrift),用于接收来自FE的心跳。 webserver_port 8040 29986 BE上的HTTP Server的服务端口。 broker_ipc_port 8000 29990 Broker上的Thrift Server通信端口,用于接收请求。 single_replica_load_brpc_port 9070 29988 单副本数据导入功能中,Master副本和Slave副本之间通信的RPC端口。 single_replica_load_download_port 8050 29989 单副本数据导入功能中,Slave副本通过HTTP从Master副本下载数据文件的端口。
  • Kerberos常用端口 表中涉及端口的协议类型均为:TCP和UDP。 配置参数 默认端口 端口说明 KADMIN_PORT 21730 kerberos用户管理端口。 该端口用于: kerberos用户管理 安装时是否缺省启用:是 安全加固后是否启用:是 KPASSWD_PORT 21731 kerberos密码修改端口。 该端口用于: kerberos密码修改 安装时是否缺省启用:是 安全加固后是否启用:是 kdc_ports 21732 Kerberos服务端端口 该端口用于: 组件向Kerberos服务认证。配置集群互信可能会用到; 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是
  • Kafka常用端口 表中涉及端口的协议类型均为:TCP。 配置参数 开源默认端口 定制默认端口 端口说明 port 9092 21005 Broker提供数据接收、获取服务 ssl.port 9093 21008 Broker提供数据接收、获取服务的SSL端口 sasl.port 21007 21007 Broker提供SASL安全认证端口,提供安全Kafka服务 sasl-ssl.port 21009 21009 Broker提供SASL安全认证和SSL通信的端口,提供安全认证及通信加密服务
  • HetuEngine常用端口 表中涉及端口的协议类型均为:TCP。 配置参数 开源默认端口 定制默认端口 端口说明 server.port(HSBroker) 29860 29860 HSBroker服务侦听的端口号。 server.port(HSConsole) 29880 29880 HSConsole服务侦听的端口号。 server.port(HSFabric) 29900 29900 HSFabric服务侦听的端口号,用于跨域连接。 gateway.port 29902 29902 HSFabric服务侦听的端口号,用于JDBC连接。
  • Manager常用端口 表中涉及端口的协议类型均为:TCP。 配置参数 默认端口 (3.x之前版本) 端口说明 - 8080 WebService提供的供用户访问端口 该端口用于使用HTTP协议访问Web UI 安装时是否缺省启用:是 安全加固后是否启用:是 - 28443 WebService提供的供用户访问端口 该端口用于使用https协议访问Web UI 安装时是否缺省启用:是 安全加固后是否启用:是
  • HDFS常用端口 表中涉及端口的协议类型均为:TCP。 配置参数 开源默认端口 定制默认端口 端口说明 dfs.namenode.rpc.port 9820(MRS 3.x之前版本) 8020(MRS 3.x及之后版本) 25000 NameNode RPC 端口。 该端口用于: HDFS客户端与Namenode间的通信。 Datanode与NameNode之间的连接。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 dfs.namenode.http.port 9870 25002 HDFS HTTP端口(NameNode)。 该端口用于: 点对点的NameNode检查点操作。 远程Web客户端连接NameNode UI。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 dfs.namenode.https.port 9871 25003 HDFS HTTPS端口(NameNode)。 该端口用于: 点对点的NameNode检查点操作。 远程Web客户端连接NameNode UI。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 dfs.datanode.ipc.port 9867 25008 Datanode IPC 服务器端口。 该端口用于: 客户端连接DataNode用来执行RPC操作。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 dfs.datanode.port 9866 25009 Datanode数据传输端口。 该端口用于: HDFS客户端从DataNode传输数据或传输数据到DataNode。 点对点的Datanode传输数据。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 dfs.datanode.http.port 9864 25010 Datanode HTTP端口。 该端口用于: 安全模式下,远程Web客户端连接DataNode UI。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 dfs.datanode.https.port 9865 25011 Datanode HTTPS端口。 该端口用于: 安全模式下,远程Web客户端连接DataNode UI。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 dfs.JournalNode.rpc.port 8485 25012 JournalNode RPC端口。 该端口用于: 客户端通信用于访问多种信息。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 dfs.journalnode.http.port 8480 25013 JournalNode HTTP端口。 该端口用于: 安全模式下,远程Web客户端连接JournalNode。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 dfs.journalnode.https.port 8481 25014 JournalNode HTTPS端口。 该端口用于: 安全模式下,远程Web客户端连接JournalNode。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 httpfs.http.port 14000 25018 HttpFS HTTP服务器侦听的端口。 该端口用于: 远程REST接口连接HttpFS。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是
  • Hive常用端口 表中涉及端口的协议类型均为:TCP。 配置参数 开源默认端口 定制默认端口 端口说明 templeton.port 9111 21055 WebHCat提供REST服务的端口。 该端口用于: WebHCat客户端与WebHCat服务端之间的通信。 安装时是否缺省启用:是 安全加固后是否启用:是 hive.server2.thrift.port 10000 21066 HiveServer提供Thrift服务的端口。 该端口用于: HiveServer客户端与HiveServer之间的通信。 安装时是否缺省启用:是 安全加固后是否启用:是 hive.metastore.port 9083 21088 MetaStore提供Thrift服务的端口。 该端口用于: MetaStore客户端与MetaStore之间的通信,即HiveServer与MetaStore之间通信。 安装时是否缺省启用:是 安全加固后是否启用:是 hive.server2.webui.port 10002 - Hive的Web UI端口。 该端口用Web请求与Hive UI服务器进行HTTPS/HTTP通信。
  • HBase常用端口 表中涉及端口的协议类型均为:TCP。 配置参数 开源默认端口 定制默认端口 端口说明 hbase.master.port 16000 21300 HMaster RPC端口。该端口用于HBase客户端连接到HMaster。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 hbase.master.info.port 16010 21301 HMaster HTTPS端口。该端口用于远程Web客户端连接到HMaster UI。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 hbase.regionserver.port 16020 21302 RS (RegoinServer) RPC端口。该端口用于HBase客户端连接到RegionServer。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 hbase.regionserver.info.port 16030 21303 Region server HTTPS端口。该端口用于远程Web客户端连接到RegionServer UI。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 hbase.thrift.info.port 9095 21304 Thrift Server的Thrift Server侦听端口。 该端口用于: 客户端连接时使用该端口侦听。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 hbase.regionserver.thrift.port 9090 21305 RegionServer的Thrift Server侦听端口 。 该端口用于: 客户端连接RegionServer时使用该端口侦听。 说明: 端口的取值范围为一个建议值,由产品自己指定。在代码中未做端口范围限制。 安装时是否缺省启用:是 安全加固后是否启用:是 hbase.rest.info.port 8085 21308 RegionServer RESTServer原生Web界面的端口 - 21309 21309 RegionServer RESTServer的REST端口
  • 应用示例1:流水线执行条件表达式 在流水线阶段任务的执行条件中通过表达式引用上下文,用以限制任务执行。表达式由流水线上下文、操作符、函数或常量组合而成,表达式以编程的方式访问流水线上下文,实现将流水线中运行的实例、变量、任务等信息在流水线之间互相传递。 图1 执行条件表达式 示例: 在执行条件中定义任务在指定代码源的运行分支为“master”时才运行,表达式语法如下: ${{ sources.my_repo.target_branch == 'master' }} 流水线上下文 操作符 表达式中可以使用如下操作符: 表1 操作符 操作符 说明 . 属性引用。如:${{ pipeline.trigger_type }},表示获取流水线的触发类型。 ! 非。如:${{ !startsWith(sources.my_repo.target_branch, 'release') }},表示判断流水线代码源的分支是否不以release开头。 == 等于。如:${{ pipeline.trigger_type == 'Manual' }},表示判断流水线的触发方式是否为手动触发。 != 不等于。如:${{ pipeline.trigger_type != 'Manual' }},表示判断流水线的触发方式是否不为手动触发。 && 且。如:${{ pipeline.trigger_type == 'Manual' && sources.my_repo.target_branch == 'master' }},表示判断流水线的触发方式为手动触发并且流水线代码源的分支为master。 || 或。如:${{ pipeline.trigger_type == 'Manual' || sources.my_repo.target_branch == 'master' }},表示判断流水线的触发方式为手动触发或者流水线代码源的分支为master。 函数 表达式中可使用如下内置函数: 表2 内置函数 函数 说明 contains 格式 contains(search, item) 含义 如果“search”包含“item”,则函数返回“true”。 如果“search”是一个数组,那么如果“item”是数组中的一个元素,则此函数返回“true”。 如果“search”是一个字符串,那么如果“item”是“search”的子字符串,则函数返回“true”。 示例 contains('abc', 'bc') ,函数将返回“true”。 startsWith 格式 startsWith(searchString, searchValue) 含义 如果“searchString ”以“searchValue”开始,则函数返回“true ”。 示例 startsWith('abc', 'ab'),函数将返回“true”。 endsWith 格式 endsWith(searchString, searchValue) 含义 如果“searchString”以“searchValue”结束,则函数返回“true”。 示例 endsWith('abc', 'bc'),函数将返回“true”。 对象筛选器 使用“*”语法应用筛选器并选择集合中的匹配项。 示例:如下是流水线某次运行的jobs上下文 { "check_job": { "status": "COMPLETED", "metrics": { "critical": "0", "major": "0" } }, "demo_job": { "status": "FAILED" } } 示例1:“jobs.*.status”,表示所有任务的状态,所以返回“[ 'COMPLETED', 'FAILED' ]”。 示例2:结合contains函数一起使用,如:contains(jobs.*.status, 'FAILED'),“jobs.*.status”中包含“FAILED”,所以返回“true”。 父主题: 流水线上下文
  • 编排流水线任务 任务是流水线上可管理的最小执行单元,可以在流水线阶段中进行纳管和串并行编排。 访问CodeArts Pipeline首页。 在流水线列表页搜索目标流水线,单击操作列,选择“编辑”。 进入流水线“任务编排”页面,单击阶段下“新建任务”,弹出“新建任务”侧滑框。 单击任务下方的,可以添加一个和该任务串行编排的任务,即按顺序执行,如:构建任务和部署任务应该按顺序先后执行。 单击“并行任务”,可以添加一个和已有任务并行编排的任务,即同时执行,如:代码检查任务和构建任务可以同时执行。 为任务配置插件及任务信息,操作说明如下: 表1 配置任务 操作项 说明 添加插件 流水线插件分为构建插件、代码检查插件、部署插件、测试插件和通用插件5种类型,可以根据不同类型进行过滤或搜索,插件来源请参考管理流水线扩展插件。 将鼠标移动到插件卡片,单击“添加”,即可将插件添加到任务中,请根据需要配置插件相关信息: 填写插件名称。 选择需要调用的任务。支持搜索过滤,如果找不到合适的任务,请根据界面提示新建任务。 如果调用的任务有参数,参数也会显示出来,请根据需要配置相应参数。 插件名称后有对应标记,单个任务中最多只能添加一个带“任务”标记的插件;带“草稿”标记的插件表示当前用户发布为草稿的自定义插件。 “挂起流水线”插件只能添加在不含并行任务的阶段中。 删除插件 将鼠标移动到已经添加的插件卡片,单击,选择“删除”,可以删除当前插件。 更换插件 将鼠标移动到已经添加的插件卡片,单击,选择“更换”,或者单击插件上方“更换插件”,可以返回插件列表,更换当前插件。 排序插件 单击插件卡片不松开,可以移动插件调整插件顺序。 任务配置 配置任务ID、执行主机和执行条件。 任务ID:。流水线阶段任务的ID,同一条流水线上的任务ID不能重复。支持大小写英文字母、数字、“-”、“_”,长度范围为1~128个字符。 执行主机:包括内置执行机和自定义执行机。 内置执行机:服务提供的执行主机,用户无需配置开箱即用。 自定义执行机:支持用户自行配置工具和运行环境,以满足不同任务的需求。选择自定义执行机需提前在资源池添加代理资源池,详细操作请参见资源池管理。 说明: 执行主机仅针对非任务级插件。 任务选择 必须选择:必须执行,执行流水线时该任务默认勾选且无法修改。 禁止选择:禁止执行,执行流水线时该任务禁止勾选。 默认选择:执行流水线时该任务默认勾选但可按需修改。 默认不选择:执行流水线时该任务默认不勾选但可按需修改。 执行条件:即流水线阶段任务执行时需要满足的前提条件,通过配置执行条件,可以控制阶段任务是否执行。 前置任务未选择仍执行:上一个任务状态执行成功或未选择,都继续执行当前任务。 前置任务成功时执行:上一个任务执行成功才执行当前任务。 前置任务失败时执行:上一个任务执行失败才执行当前任务。 始终执行:始终执行当前任务,上一个任务状态是失败、成功、中止或忽略执行,都继续执行当前任务。 表达式:当前置任务到达终态,包括:成功(COMPLETED)、失败(FAILED)、中止(CANCELED)、忽略执行(IGNORED),且表达式结果为“true”时,执行当前任务,否则不执行。表达式形式为“${{ }}”,由流水线上下文、操作符、函数或常量任意组合而成。表达式编写请参考流水线执行条件表达式。 示例: 在执行条件中定义不管前置任务(任务ID为“job_1”)运行成功或失败,均执行当前任务,表达式语法如下: ${{ jobs.job_1.status == 'COMPLETED' || jobs.job_1.status == 'FAILED' }} 配置完任务,单击“确定”,完成任务添加,可根据实际需要编辑、复制、删除、移动任务。 表2 管理任务 操作项 说明 编辑任务 单击任务卡片,可以编辑当前任务。 复制任务 将鼠标移动到任务卡片,单击,可以复制一个和该任务串行编排的任务。 删除任务 将鼠标移动到任务卡片,单击,根据删除提示确定是否删除任务。 排序任务 单击任务卡片不松开,可以移动任务调整任务顺序。 说明: 任务并行执行时不支持调整顺序。 任务编排完成后,保存流水线。 父主题: 配置流水线
  • 新建流水线 访问CodeArts Pipeline首页。 单击“新建流水线”,进入“基本信息”页面,参考表1配置流水线基本信息。 表1 流水线基本信息参数说明 参数项 说明 名称 流水线的名称,自定义。支持中文、大小写英文字母、数字、“-”、“_”,长度不超过128个字符。 所属项目 流水线归属项目。 从流水线服务首页入口新建流水线,请根据实际需要选择已创建的项目。 从项目下流水线入口新建流水线,所属项目默认为当前项目,不可更改。 流水线源 流水线关联的源类型: CodeArts Repo代码源 Repo:提供企业代码托管的全方位服务,为软件开发者提供基于Git的在线 代码托管服务 。 第三方代码源 码云:连接码云账号之后可以获取该账号下的仓库、分支等信息。 Github:连接Github账号后可以获取该账号下的仓库、分支等信息。 Gitcode:连接Gitcode账号后可以获取该账号下的仓库、分支等信息。 通用Git:连接第三方通用Git仓库后可以获取该账号下的仓库、分支等信息。 华为云 容器镜像服务 SWR:使用华为云容器镜像作为流水线源运行流水线,并生成制品名称、制品下载地址和制品版本号系统参数,供需要的任务插件使用。 说明: GitCode流水线源当前仅支持“北京四”和“广州”局点白名单用户。如果您需要开通此功能,请新建工单或拨打客服热线进行咨询。 如果用户新建的流水线任务不需要关联代码仓,也可以选择“暂不选择”,不关联代码仓时,如果添加了需要关联代码仓的任务,执行时会提示错误,具体问题请参考常见问题。 创建方式 关联Repo代码源时,可以选择图形化编排和YAML化编排两种方式。 图形化编排:以图形化界面方式轻松配置流水线,清晰展示任务串并行关系。 YAML化编排:以代码化YAML方式编排流水线,支持语法自动补齐和校验,方便多流水线批量配置。请参考新建流水线(YAML化)。 服务扩展点 关联第三方代码源时,需通过服务扩展点实现与对应仓库的连接。可选择准备工作中提前创建的扩展点,也可单击“新建服务扩展点”进行创建,具体操作请参考新建CodeArts服务扩展点。 代码仓 流水线关联的代码仓库。 默认分支 仓库默认分支,手工或定时执行流水线时默认使用的分支。 Repo HTTPS授权 关联Repo代码源时,可配置授权扩展点以提升代码库操作权限,当前主要用于流水线服务的微服务变更功能模块及其相关插件。可选择准备工作中提前创建的扩展点,也可单击“新建授权”进行创建,具体操作请参考新建CodeArts服务扩展点。 别名 仓库别名,设置别名后可基于别名生成仓库对应的系统参数,如:“别名_REPOSITORY_NAME”,表示仓库名称。生成的参数可在参数设置页面查看,并在流水线中通过“${参数名}”进行引用。 支持输入大小写英文字母、数字、“_”,不超过128个字符。 描述 不超过1024个字符。 组织 关联SWR流水线源时,选择SWR组织。组织用于隔离镜像,每个组织可对应一个公司或部门,将其拥有的镜像集中在该组织下。 镜像名 关联SWR流水线源时,选择组织下的镜像。 指定版本 关联SWR流水线源时,选择镜像的版本。 制品源别名 制品源别名,设置别名后可基于别名生成对应的系统参数,如:“别名_ARTIFACT_NAME”,表示制品名称。生成的参数可在参数设置页面查看,并在流水线中通过“${参数名}”进行引用。 支持输入中文、大小写英文字母、数字、“-”、“_”、“.”,不超过128个字符。 配置完基本信息,单击“下一步”,进入“选择模板”页面。 您可以选择系统模板或自定义模板,在模板基础上快速新建流水线,并自动生成模板预置的任务,模板来源请参考管理流水线模板。 也可以选择“空模板”,即不使用模板,新建空任务流水线。 选择完模板,单击“确定”,完成流水线创建。 页面自动进入流水线“任务编排”页面,您可以继续配置流水线,也可以单击“取消”返回流水线列表。
  • 应用示例2:通过流水线上下文获取构建任务的产物信息 在任务的输入框中引用上下文获取信息:使用Build构建插件生成构建产物,并在后续阶段的“执行Shell”任务中引用,获取构建产物信息。 新建流水线。 在“阶段_1”添加“Build构建”插件,获取任务ID,如图1,并将构建产物标识设置为“demo”,如图2。 图1 获取任务ID 图2 Build构建插件 在“阶段_2”添加“执行Shell”插件,通过构建任务ID,结合流水线上下文,输入如下命令,即可获取构建产物的相关信息。 # 获取构建产物下载地址 echo ${{ jobs.JOB_xZGhF.artifacts.demo.download_url }} # 获取构建产物所有信息 echo ${{ jobs.JOB_xZGhF.artifacts.demo }} 图3 执行Shell 执行流水线,执行成功后即可在日志中查看打印的产物信息。 图4 查看产物信息 父主题: 流水线上下文
  • 9.1.0.100版本(2024年8月12日) 【弹性架构】 架构升级:基于华为云 对象存储服务 OBS,推出存算分离架构3.0,计算、存储分层弹性,存储按需收费,降本增效;计算支持多VW(Virtual Warehouse,逻辑集群,以下简称VW)部署,业务隔离性更好,解决业务间的资源争抢问题。 推出弹性VW特性,弹性VW完全无状态,支持读写加速,灵活应对并发处理能力不足、业务波峰波谷不均衡、数据加载和数据分析资源争抢等问题,详情参见弹性增删逻辑集群。 增删DN节点,支持弹性扩容和经典扩容,弹性扩容不会对OBS上的数据进行重分布,经典扩容会重分布所有数据,系统会根据bucket总数和DN数目,自动决定采用何种扩容方式。 存算分离架构(DWS 3.0)通过磁盘缓存和IO异步读写提升性能,在磁盘缓存全命中时,持平存算一体架构(DWS 2.0)。 图1 存算分离架构
  • 9.1.0.102补丁(2024年9月25日) 该版本为补丁版本,主要修复已知问题。 【升级收编】 支持9.0.3版本升级到9.1.0系列。 【修复已知问题】 存算分离版本支持alter database xxx rename to yyy。 修复存算分离表 \d+ 空间size显示错误问题。 修复备份恢复之后,异步排序未运行的问题。 修复bitmap index列删除后,无法使用Create Table Like语法的问题。 修复Turbo引擎在Group By场景下,hash算法冲突导致的性能回退问题。 调度器对于失败任务的处理行为和8.3.0版本保持一致。 修复故障场景下,pg_stat_object空间膨胀问题。 修复8.3.0升级到9.1.0, DataArts Studio 下发的Vacuum Full作业报错问题。 修复JSON字段计算CPU和内存消耗高问题。 【功能增强】 ORC外表支持zstd压缩格式。 GIS新增支持st_asmvtgeom/st_asmvt/st_squaregrid函数。
  • 9.1.0.210版本(2024年11月25日) 【存算分离】 支持通过使用explain warmup进行缓存预热,可以把数据预热到本地磁盘缓存的冷端或者热端。 弹性VW功能增强:更灵活的业务分流方式,支持以CN粒度配置业务分流到主VW或者弹性VW。 存算分离表支持insert并行,提升数据加载性能。 存算分离表支持回收站,可以对drop table/partition, truncate table/partition等误操作进行快速闪回。 冷热表支持使用磁盘缓存、异步IO进行性能加速。 【实时数仓】 limit…offset翻页场景性能大幅提升;inlist场景性能大幅提升。 正式商用Binlog特性。 自动分区支持整型和变长类型的时间列。 【湖仓一体】 parquet/orc读写新增对zstd压缩格式的支持。 Create table like支持使用external schema中的表作为like源表。 外表支持并行导出。 【高可用】 存算分离表和冷热表支持增量备份恢复。 通过并行拷贝优化存算分离场景的备份性能。 【生态兼容】 兼容MySQL的replace into语法,interval时间类型。 pg_get_tabledef导出支持字段展示comment。 【运维&稳定性提升】 磁盘使用率高时,支持配置从备数据转储到OBS。 当数据库即将发生只读时,拦截一些发生下盘的语句和产生新表和新物理文件的语句,以此快速回收磁盘空间,保证其它语句执行。 支持审计日志转储到OBS。 新增轻量级锁视图pgxc_lwlocks。 常规锁视图新增锁获取和等待时间戳。 全局死锁检测功能默认打开。 新增vacuum full与select之间的让锁功能。 gs_view_invalid增加失效时间,辅助运维人员清理无效对象 【规格&约束】 最大支持256个VW,每个VW 最大支持1024个DN。建议VW不超过32个,每个VW不超过128个DN。 OBS存算分离表不支持容灾,不支持细粒度备份恢复。 【行为变更】 升级开启max_process_memory自适应功能,主备均衡模式下,增加DN可用内存。 扩容数据重分布默认开启数据一致性校验,扩容时间会增加10%。 新建Hstore_opt表,默认打开turbo引擎,压缩级别默认为middle。 存算分离表OBS路径默认显示为相对路径。 使用磁盘缓存(diskcache)必须同时打开异步IO参数。 列存表的索引清理时间间隔从1小时调小为10分钟,可以更快速地清理占用的索引空间。 CREATE TABLE和ALTER TABLE不支持将有on update表达式的列设置为分布列。 Parquet数据查询,读取INT96格式保存的Timestamp数据时不再做8小时修正。 max_stream_pool用于控制stream线程池缓存的线程数量,默认值由65525调整至1024,避免空闲线程内存占用过大。 track_activity_query_size参数从动态生效调整为重启生效。 不再支持逻辑复制功能,相关接口调用会报错。
  • 荣联科技集团股份有限公司处罚公告 商家:荣联科技股份有限公司 处罚原因: 荣联科技于2023年12月29日爆出公司涉及信息披露虚假或严重误导性陈述的违规问题,此次事件造成网络负面舆情严重,违反了与华为云签署的相关协议及《云商店商家合作管理规范》条款。 处罚结果: 下架该商家在云商店的商品; 清退该商家。 请华为云云商店商家共同维护云商店秩序,遵守《云商店商家合作管理规范》,服务好我们的每一个客户。 华为云云商店 2024年1月5日
  • 深圳市慧科未来技术有限公司处罚公告 商家:深圳市慧科未来技术有限公司 处罚原因: 该商家在与华为云合作的数字化人才培养商品项目中存在验收材料作假的造假行为,违反了与华为云签署的相关协议,对应《云商店商家合作管理规范》中3.7服务承诺条款情形。 处罚结果: 根据华为云的伙伴管理政策要求,将该商家列入华为云合作伙伴黑名单6个月,处罚金10万元,并面向全体华为云合作伙伴进行通报。 下架该商家在云商店的联营商品及云商店自服务商品中对应该商家的规格,在黑名单期限(6个月)内,禁止该商家商品上架至华为云云商店。 请华为云云商店商家共同维护云商店秩序,遵守《云商店商家合作管理规范》,服务好我们的每一个客户。 华为云云商店 2023 年 11 月 24 日
  • 慧科教育科技集团有限公司处罚公告 商家:慧科教育科技集团有限公司 处罚原因: 该商家在与华为云合作的数字化人才培养商品项目中存在验收材料作假的造假行为,违反了与华为云签署的相关协议,对应《云商店商家合作管理规范》中3.7服务承诺条款情形。 处罚结果: 根据华为云的伙伴管理政策要求,将该商家列入华为云合作伙伴黑名单6个月,处罚金10万元,并面向全体华为云合作伙伴进行通报; 下架该商家在云商店的联营商品及云商店自服务商品中对应该商家的规格,在黑名单期限(6个月)内,禁止该商家商品上架至华为云云商店。 请华为云云商店商家共同维护云商店秩序,遵守《云商店商家合作管理规范》,服务好我们的每一个客户。 华为云云商店 2023 年 11 月 24 日
  • 北京数码大方科技股份有限公司处罚公告 商家:北京数码大方科技股份有限公司 处罚原因: 该商家在订单交付过程中存在交付验收件P图行为; 该商家实施交付内容与下单配置不一致:未部署在华为云上。 处罚结果: 将该商家列入云商店黄名单,期限为3个月; 该商家商家名下所有联营商品限制交易1个月; 限制期内禁止该商家申请等级提升,停止市场活动支持、停止各类奖励的申请和奖项的评选。 请华为云云商店商家共同维护云商店秩序,遵守《云商店商家合作管理规范》,服务好我们的每一个客户。 华为云云商店 2024年5月8日
  • 关于云商店涉及服务监管订单取消系统最长365天限制,系统将不再自动闭环订单的通知 尊敬的华为云云商店商家: 您好! 2024年3月5日0:00起,云商店涉及服务监管订单取消系统默认最长服务监管时长365天限制的IT功能已优化上线,后续涉及服务监管的订单,在达到365天时,系统将不再自动关闭订单。 原规则: 服务监管时长达到365天时,系统根据客户是否开票自动闭环订单,已开票订单自动确认验收,未开票订单则自动退订。 现规则: 服务监管时长达到365天时系统不再自动闭环订单,针对客户下单超180天仍未能验收的订单,云商店将自动推送提醒通知至订单中客户所归属BD及商品所属商家。请商家在收到预警信息后,及时与一线和客户联系,加快项目交付。 通知规则:针对服务监管超过180天未完成交付订单,系统自动发送预警。 通知频率:每周一次(每周一上午9:00) 通知对象:(1)客户所属BD :发送手机短信和应用号;(2)商品所属商家:发送邮件和手机短信至商家在服务商信息中预留的联系方式。 请商家关注订单交付进展,项目交付完成后尽快在【卖家中心-服务监管】上传交付验收件闭环订单。 *如您有任何问题,可随时通过工单或者服务邮箱(partner@huaweicloud.com)与我们联系。 感谢您对华为云云商店的支持! 华为云云商店 2024年3月13日 父主题: 公告
  • 写数据至一个Sink表 语法格式 1 2 INSERT INTO your_sink SELECT ... FROM your_source WHERE ... 示例 本例定义了两个表my_source 和my_sink,并使用INSERT INTO语句source表选择数据并插入到sink表。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 --使用datagen connector创建源表my_source CREATE TABLE my_source ( name VARCHAR, age BIGINT ) WITH ( 'connector' = 'datagen'); --使用jdbc connector创建目标表my_sink CREATE TABLE my_sink ( name VARCHAR, age BIGINT ) WITH ( 'connector' = 'jdbc', 'url' = 'jdbc:mysql://xxx/your-database', 'table-name' = 'your-table', 'username' = 'your-username', 'password' = 'your-password' ); --使用INSERT INTO语句从my_source表选择数据,并插入到my_sink表 INSERT INTO my_sink SELECT name, age FROM my_source;
  • 写数据至多个Sink表 EXECUTE STATEMENT SET BEGIN ... END; 是写数据至多个Sink表的必填语句,用于定义在同一个作业中执行多个插入数据的操作。 写数据至多个Sink表时,EXECUTE STATEMENT SET BEGIN ... END;是必填项。 语法格式 1 2 3 4 5 6 7 8 9 10 11 EXECUTE STATEMENT SET BEGIN -- 第一个DML语句 INSERT INTO your_sink1 SELECT ... FROM your_source WHERE ...; -- 第二个DML语句 INSERT INTO your_sink2 SELECT ... FROM your_source WHERE ... ... END; 示例 本例定义了源表datagen_source、Sink表print_sinkA和print_sinkB。然后使用EXECUTE STATEMENT执行两个INSERT INTO语句,分将转换后的数据写入两个不同的sink。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 --使用 datagen connector创建源表 datagen_source CREATE TABLE datagen_source ( name VARCHAR, age BIGINT ) WITH ( 'connector' = 'datagen' ); --使用print connector创建结果表 print_sinkA 和 print_sinkB CREATE TABLE print_sinkA( name VARCHAR, age BIGINT ) WITH ( 'connector' = 'print' ); CREATE TABLE print_sinkB( name VARCHAR, age BIGINT ) WITH ( 'connector' = 'print' ); --使用 EXECUTE STATEMENT SET BEGIN来执行两个 INSERT INTO 语句。 --第一个INSERT INTO语句将datagen_source表中的数据按需转换后写入 print_sinkA。 --第二个 INSERT INTO 语句将数据按需转换后写入 print_sinkB。。 EXECUTE STATEMENT SET BEGIN INSERT INTO print_sinkA SELECT UPPER(name), min(age) FROM datagen_source GROUP BY UPPER(name); INSERT INTO print_sinkB SELECT LOWER(name), max(age) FROM datagen_source GROUP BY LOWER(name); END;
  • 示例 从Kafka源表中读取数据,将DWS表作为维表,并将二者生成的宽表信息写入Kafka结果表中,其具体步骤如下: 参考增强型跨源连接,在 DLI 上根据DWS和Kafka所在的虚拟私有云和子网分别创建相应的增强型跨源连接,并绑定所要使用的Flink弹性资源池。 设置DWS和Kafka的安全组,添加入向规则使其对Flink的队列网段放通。参考测试地址连通性分别根据DWS和Kafka的地址测试队列连通性。若能连通,则表示跨源已经绑定成功,否则表示未成功。 连接DWS数据库实例,在DWS中创建相应的表,作为维表,表名为area_info,SQL语句如下: create table public.area_info( area_id VARCHAR, area_province_name VARCHAR, area_city_name VARCHAR, area_county_name VARCHAR, area_street_name VARCHAR, region_name VARCHAR); 连接DWS数据库实例,向DWS维表area_info中插入测试数据,其语句如下: insert into area_info (area_id, area_province_name, area_city_name, area_county_name, area_street_name, region_name) values ('330102', 'a1', 'b1', 'c1', 'd1', 'e1'), ('330106', 'a1', 'b1', 'c2', 'd2', 'e1'), ('330108', 'a1', 'b1', 'c3', 'd3', 'e1'), ('330110', 'a1', 'b1', 'c4', 'd4', 'e1'); 参考创建Flink OpenSource作业,创建flink opensource sql作业,输入以下作业运行脚本,提交运行作业。该作业脚本将Kafka作为数据源,DWS作为维表,数据输出到Kafka结果表中。 注意:创建作业时,在作业编辑界面的“运行参数”处,“Flink版本”选择“1.15”,勾选“保存作业日志”并设置保存作业日志的OBS桶,方便后续查看作业日志。如下脚本中的加粗参数请根据实际环境修改。 CREATE TABLE orders ( order_id string, order_channel string, order_time string, pay_amount double, real_pay double, pay_time string, user_id string, user_name string, area_id string, proctime as Proctime() ) WITH ( 'connector' = 'kafka', 'topic' = 'KafkaSourceTopic', 'properties.bootstrap.servers' = 'KafkaAddress1:KafkaPort,KafkaAddress2:KafkaPort', 'properties.group.id' = 'dws-order', 'scan.startup.mode' = 'latest-offset', 'format' = 'json' ); --创建地址维表 create table area_info ( area_id string, area_province_name string, area_city_name string, area_county_name string, area_street_name string, region_name string ) WITH ( 'connector' = 'gaussdb', 'driver' = 'org.postgresql.Driver', 'url' = 'jdbc:postgresql://DwsAddress:DwsPort/DwsDbName', 'table-name' = 'area_info', 'username' = 'DwsUserName', 'password' = 'DwsPassword', 'lookup.cache.max-rows' = '10000', 'lookup.cache.ttl' = '2h' ); --根据地址维表生成详细的包含地址的订单信息宽表 create table order_detail( order_id string, order_channel string, order_time string, pay_amount double, real_pay double, pay_time string, user_id string, user_name string, area_id string, area_province_name string, area_city_name string, area_county_name string, area_street_name string, region_name string ) with ( 'connector' = 'kafka', 'topic' = 'KafkaSinkTopic', 'properties.bootstrap.servers' = 'KafkaAddress1:KafkaPort,KafkaAddress2:KafkaPort', 'format' = 'json' ); insert into order_detail select orders.order_id, orders.order_channel, orders.order_time, orders.pay_amount, orders.real_pay, orders.pay_time, orders.user_id, orders.user_name, area.area_id, area.area_province_name, area.area_city_name, area.area_county_name, area.area_street_name, area.region_name from orders left join area_info for system_time as of orders.proctime as area on orders.area_id = area.area_id; 连接Kafka集群,向kafka中source topic中插入如下测试数据: {"order_id":"202103241606060001", "order_channel":"appShop", "order_time":"2021-03-24 16:06:06", "pay_amount":"200.00", "real_pay":"180.00", "pay_time":"2021-03-24 16:10:06", "user_id":"0001", "user_name":"Alice", "area_id":"330106"} {"order_id":"202103251202020001", "order_channel":"miniAppShop", "order_time":"2021-03-25 12:02:02", "pay_amount":"60.00", "real_pay":"60.00", "pay_time":"2021-03-25 12:03:00", "user_id":"0002", "user_name":"Bob", "area_id":"330110"} {"order_id":"202103251505050001", "order_channel":"qqShop", "order_time":"2021-03-25 15:05:05", "pay_amount":"500.00", "real_pay":"400.00", "pay_time":"2021-03-25 15:10:00", "user_id":"0003", "user_name":"Cindy", "area_id":"330108"} 连接Kafka集群,读取kafka中sink topic中数据,结果参考如下: {"order_id":"202103241606060001","order_channel":"appShop","order_time":"2021-03-24 16:06:06","pay_amount":200.0,"real_pay":180.0,"pay_time":"2021-03-24 16:10:06","user_id":"0001","user_name":"Alice","area_id":"330106","area_province_name":"a1","area_city_name":"b1","area_county_name":"c2","area_street_name":"d2","region_name":"e1"} {"order_id":"202103251202020001","order_channel":"miniAppShop","order_time":"2021-03-25 12:02:02","pay_amount":60.0,"real_pay":60.0,"pay_time":"2021-03-25 12:03:00","user_id":"0002","user_name":"Bob","area_id":"330110","area_province_name":"a1","area_city_name":"b1","area_county_name":"c4","area_street_name":"d4","region_name":"e1"} {"order_id":"202103251505050001","order_channel":"qqShop","order_time":"2021-03-25 15:05:05","pay_amount":500.0,"real_pay":400.0,"pay_time":"2021-03-25 15:10:00","user_id":"0003","user_name":"Cindy","area_id":"330108","area_province_name":"a1","area_city_name":"b1","area_county_name":"c3","area_street_name":"d3","region_name":"e1"}
共100000条