华为云用户手册

  • 资源和成本规划 表1 云服务资源清单 序号 资源名称 配置规格 命名示例 Region 数量 说明 1 VPC 默认配置即可 有需要可自定义网段 vpc-default / 1 所有资源建议公用一个VPC NAT网关 最小配置规格 nat-e2bf / / 配置内网专用服务器能上外网 2 安全组 根据需要开通入方向端口 Daas-Webserver / 1 确保所有服务器集群所在安全组可以访问数据源。 3 E CS s6.small.1 1vCPUs | 1GB | 40GB通用型SSD ecs-test / 1 用作跳板机 4 CCE鲲鹏集群 Master 2核4G NODE 8核32G Daas-2021 / 3maser 3node 应用服务器K8S容器平台 5 中间件 8核32G 100GB磁盘 Daas-yx / 6 RedisGraph Rocketmq Zookeeper 6 RDS(PostgreSQL) 2核4G 100GB Rds-972 / 1 PostgreSQL 7 云搜索服务 css 4核8G 100GB css-2ef5 / 1 elasticsearch 8 GaussDB (for MySQL) 8核32G 100GB Daas-mysql / 1 Mysql应用数据库 9 CDH集群 16核64G 150GB Daas-cdh / 6 cdh大数据集群 表2 软件信息 软件 版本 说明 Docker 18.09.9 docker容器 Kubernetes 容器集群 华为cce容器集群 MySQL 8.0 GaussDB华为云数据库 Redis 6.0.0 平台用缓存 RocketMQ 4.4 平台用消息中间件 Zookeeper 3.6.1 平台用服务注册中心 PostgreSQL 11.2 华为云RDS服务 Kong 1.1.0 平台用网关 Konga 0.14.1 Kong dashboard Apollo v1.9.0 Apollo配置中心 Eureka 2.0.0 平台用spring cloud服务注册中心 elasticsearch 7.7.1 华为云Css搜索服务 RedisGraph 2.2.0 图数据库 Jdk 1.8.0_251 Java程序工具 dolphinscheduler / 调度平台 deepexi-daas-security / Daas-安全项目 deepexi-daas-metrics / Daas-指标项目 deepexi-daas-develop / Daas-开发平台项目 deepexi-daas-bigdata-develop / Daas-大数据开发项目 deepexi-daas-datasource / Daas-数据源项目 deepexi-daas-data-service / Daas-数据服务项目 deepexi-daas-client-iam-admin / IAM -租户版本服务管理平台 deepexi-daas-client-iam-openapi / IAM-租户版本服务-开放接口 deepexi-daas-client-iam-sso / IAM-租户版本服务-单点登录 deepexi-daas-management-web / Daas管理平台-总管理平台(前端) deepexi-daas-service-web / Daas管理平台-数据/业务建模(前端) deepexi-daas-dev-web / Daas管理平台-开发平台(前端) deepexi-client-iam-front / IAM-管理端(前端) 表3 成本规划 云资源 规格 数量 每月费用(元) 弹性公网IP 带宽费用: 独享 | 全动态BGP | 按带宽计费 | 1Mbit/s弹性公网IP费用: 1个 1 86.25 企业主机安全 规格: 企业版 1 90.00 Anti-DDoS流量清洗 DDOS原生基础防护 1 0.00 弹性云服务器 规格: X86计算 | 通用入门型 | t6.2xlarge.4 | 8核 | 32GB 镜像: CentOS | CentOS 7.6 64bit 系统盘: 高IO | 200GB 弹性公网IP: 全动态BGP | 独享 | 按带宽计费 | 5Mbit/s 3 2,597.70 云容器引擎 产品分类: CCE容器集群 | 混合集群 | 集群管理规模50节点 | 高可用 含3个worknode 1 3,728.20 NAT网关 NAT网关 产品规格 小型NAT网关 1 306.00 弹性云服务器 规格: X86计算 | 通用入门型 | t6.2xlarge.4 | 8核 | 32GB 镜像: CentOS | CentOS 7.6 64bit 系统盘: 高IO | 500GB 弹性公网IP: 全动态BGP | 独享 | 按带宽计费 | 5Mbit/s 3 2,912.70 弹性云服务器 规格: X86计算 | 通用入门型 | t6.4xlarge.1 | 8核 | 16GB 镜像: CentOS | CentOS 7.6 64bit 系统盘: 通用型SSD | 500GB 弹性公网IP: 全动态BGP | 独享 | 按带宽计费 | 5Mbit/s 6 5,751.60 弹性云服务器 规格: X86计算 | 通用入门型 | t6.2xlarge.2 | 8核 | 16GB 镜像: CentOS | CentOS 7.6 64bit 系统盘: 通用型SSD | 500GB 弹性公网IP: 全动态BGP | 独享 | 按带宽计费 | 5Mbit/s 3 3,013.80 云搜索 服务 规格: X86计算 | 计算密集型 | 4 vCPUs | 8 GB 存储类型: 超高I/O | 100GB 带宽类型: 低带宽 | 5Mbit/s 1 2,399.16 云数据库 RDS(for MySQL) MySQL | 8.0 | 主备 | 通用型 | 2核4GB SSD云盘 | 40GB 1 470.00 云容器引擎 产品分类: CCE容器集群 | 混合集群 | 50节点 | 是 1 1,262.40 企业主机安全 规格: 企业版 1 90.00 Anti-DDoS流量清洗 DDOS原生基础防护 1 0.00 云数据库 RDS(for PostgreSQL) 4核,8G 200G SSD存储 华南区,主备, 版本:12 1 1,125.00 弹性公网IP 带宽费用: 独享 | 全动态BGP | 按带宽计费 | 5Mbit/s 弹性公网IP费用: 1个 1 115.00 弹性云服务器 规格: X86计算 | 通用入门型 | t6.2xlarge.4 | 8核 | 32GB 镜像: CentOS | CentOS 7.9 64bit 系统盘: 高IO | 40GB 数据盘: 通用型SSD | 200GB 弹性公网IP: 全动态BGP | 独享 | 按带宽计费 | 5Mbit/s 4 3,395.60 弹性云服务器 规格: X86计算 | 通用入门型 | t6.2xlarge.2 | 8核 | 16GB 镜像: CentOS | CentOS 7.9 64bit 系统盘: 高IO | 40GB 数据盘: 通用型SSD | 200GB 弹性公网IP: 全动态BGP | 独享 | 按带宽计费 | 5Mbit/s 8 5,652.80 弹性负载均衡ELB 动态BGP|固定带宽|5Mbps 公网IP 1 309.36 小型NAT网关 小型NAT网关 1 306.00
  • 数据服务管理 服务应用概览 概览主要分为调用总览(接口总数、应用总数、订阅率、调用次数、失败率),API 订购信息,调用趋势,错误类型分布、平均耗时排行、速率监控、API 调用排行、应用调用排行、 API 调用失败率排行、应用调用失败率排行。以上维度,可以根据今天、24 小时、本周、近 7 天、本月进行筛选。 图1 服务应用概览 API向导式生成 支持通过可视化配置的向导模式,无需 SQL 即可快速对数据表配置 API 实现对表的数据获取。 图2 API向导式生成1 配置好的 API 可自动生成 SQL 语句,用户可以方便的进行 API 测试后,发布上架。 图3 API向导式生成2 图4 API向导式生成3 自定义SQL开发 针对稍复杂的查询分析场景,可通过自定义 SQL 的方式,生成对多个表进行关联查询的复杂 API。 图5 自定义SQL开发 服务编排 支持用户通过服务编排的方式将多个 API 节点和 Python 函数进行串联处理的方式提供数据服务,以满足更复杂的服务开发需要。 图6 服务编排1 图7 服务编排2 API注册 对于企业现有的 API,可以通过 API 注册的方式,与平台内开发的 API 一样,上架在统一的网关上。 图8 API注册 API在线调试 支持用户在线调试 API。 图9 API在线调试 API上架 完成 API 的开发注册后,可以申请上架。API 上架后,外部应用可以通过 API 网关的统一鉴权获请求所订阅的数据 API。其中,DataFacts API 网关采用分布式架构设计,为平台服务层 提面向外部应用提供高并发的数据服务 API 调用能力。 图10 API上架 API安全 可配置黑白名单、调用次数限制等安全控制,实现企业数据服务的统一管理,保障企业数据的安全共享。 图11 API安全1 图12 API安全2 图13 API安全3 图14 API安全4 API告警 完成服务的注册或开发后,可以对各个 API 进行服务报错、耗时过长、超出限流等告警配置,从而实现对数据服务调用的统一、便捷的运维管理; 图15 API告警1 图16 API告警2 应用鉴权 获取服务需要通过应用来订阅。应用支持 appcode 简单身份认证模式和 AK/AS 签名身份认证模式两种鉴权方式,来访问 API。 图17 应用鉴权 API市场 API市场面向应用开发者提供了正式发布在 API 网关上的统一服务目录。通过对 API 进行订阅申请,并配置所需服务的应用及期限,在申请通过后,即可获得跨部门的数据服务。通过数据服务开发及 API 市场,实现数据资源在组织内跨部门的流通,从而将数据价值最大化释放。 图18 API市场1 图19 API市场2 父主题: 数据开发与治理
  • 数据标准管理 数据元标准 通过“数据标准”,可以对数据元标准进行统一的规范化定义,包括标准名称、标准版本、标准类型、标准来源、数据类型、数据格式、值域范围、计量单位、标准定义及标准代码集等内容。 图3 数据标准管理1 标准版本管理 支持数据标准的版本查看及对比。 图4 标准版本管理 数据标准文档管理 支持数据标准来源文档的上传及管理。创建数据标准文件,需上传相关文档,明确该标准文件的类型、实施状态、版本号等关键信息。创建后,可下载文件及关联标准文档所规定的数据元标准。其中,实施状态包含草稿、已发布、已实施、已作废等状态。 图5 数据标准文档管理
  • 数据质量管理 内置质量规则 内置多种质量规则,如:空值校验、重复数据校验、时延校验、聚合计算校验等校验多种校验方式,支持从合理性、完整性、唯一性、准确性、规范性、一致性、及时性等质量评分指标对数据质量进行监控。 图1 内置质量规则 自定义质量规则 支持用户通过自定义 SQL 校验、正则表达式校验等自定义的方式进行规则的扩展,实现如值域校验、精度校验等校验方式,形成规则模板以便重复使用。 图2 自定义质量规则 质量加权评分 支持用户自定义质量评分指标,为不同的质量规则关联指标并分配计分权重,从而根据企业的数据质量评估体系,有层次有重点地对数据质量进行评分。 图3 质量加权评分1 图4 质量加权评分2 单表质量检测 支持针对 Hive、Kudu、Oracle、MySQL、SQLServer、impala 等数据源类型,从合理性、完整性、唯一性、及时性、准确性、规范性及企业自定义等数据质量指标集成多个质量规则,对指定的单张表进行质量检查。 图5 单表质量检测 流式数据质量检测 针对 Kafka 等流式实时数据的质量稽核,还内置数据延迟和数据断流等规则进行支持。 图6 单表质量检测 多表对比分析 支持针对 Hive、Kudu、Oracle、MySQL、SQLServer、impala 等数据源类型,从一致性、及时性等数据质量指标集成多个质量规则,对指定的多张表进行比对分析,以判断,在数据同步或经 ETL 任务产出后,上下游的数据是否一致,所耗费的时间是否在预期范围内。 图7 多表对比分析 质量规则关联 支持关联内置模板规则、自定义模板库规则及自定义 SQL 规则。 图8 质量规则关联1 图9 质量规则关联2 图10 质量规则关联3 质量规则合规校验 支持通过固定值域区间或周期内统计波动的方式来判定是监测目标是否合规。 图11 质量规则关联3 质量检测任务调度 支持周期性调度、手动触发、关联任务、远程触发等多种调度方式。 图12 质量检测任务调度1 周期性调度支持月、周、天、小时、分、秒等粒度的检测周期设置,并支持生效时间段、重复日期或时刻、具体起调时间点等设置。 图13 质量检测任务调度2 关联ETL任务 关联任务调度支持数据质量任务关联多个数据开发任务。当数据开发任务运行一个周期后,数据质量任务会紧随其后对其产出的数据进行稽核,如稽核结果不达标,则会产生相应告警。如不达标的质量规则中包含强规则,则还会自动阻塞该数据开发任务的下游节点。 图14 关联ETL任务 质量监控报告 数据质量任务每次执行后会产生相应的实例。每个实例都包含对应的数据质量检测报告及执行日志。在任务运行实例监控列表中,可以直观的总览任务执行状态、运行时长、校验结果告警状态、错误规则数量等维度情况。 图15 质量监控报告1 数据质量报告以 Web 可视化的方式呈现。报告中,用户可以查看数据质量评分、总体规则数量及错误告警数量、任务时长详情等情况总览,查看触发错误告警的未通过规则列表、趋势、详情等信息。其中,数据质量规则列表清晰展示了各规则所检测的表字段、比对详情、校验结果等信息。 图16 质量监控报告2 图17 质量监控报告3 对相应的数据质量问题以工单形式进行流转和处理。 图18 质量监控报告4 数据质量概览大屏 数据质量概览大屏支持及时获悉不同统计周期内的错误告警数据量及环比、告警数量变换趋势及数据质量评分变化趋势、质量综合评分及不同质量指标的综合评分、按告警数量及指令分数对监控任务的排行等信息,从而整体地把握企业的数据质量现状及评估质量治理的重点。 图19 数据质量概览大屏 父主题: 数据开发与治理
  • 修改livy环境变量配置文件 [root@tools]# cp livy-env.sh.template livy-env.sh [root@tools]# vim livy-env.sh 修改配置项(以下配置需根据具体环境改动): export JAVA_HOME=/usr/java/default export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop export SPARK_CONF_DIR=/opt/cloudera/parcels/CDH/lib/spark/conf export SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark export HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop export LIVY_ LOG _DIR=/var/log/livy export LIVY_PID_DIR=/var/run/livy export LIVY_SERVER_JAVA_OPTS="-Xmx8g"
  • 配置数据规则引擎运行环境 hadoop fs -mkdir /griffin/ hadoop fs -put -f /opt/griffin-measure.jar /griffin/ hadoop fs -mkdir -p /home/spark_conf/ hadoop fs -put -f /opt/cloudera/parcels/CDH/lib/hive/conf/hive-site.xml /home/spark_conf/
  • 修改livy配置文件 [root@tools]# cd /opt/apache-livy-0.7.0-incubating-bin/conf/ [root@tools]# cp livy.conf.template livy.conf [root@tools]# vim livy.conf 修改配置项(非kerberos直接复制以下配置粘贴保存): livy.spark.master = yarn livy.spark.deployMode = cluster livy.environment = production livy.impersonation.enabled = true livy.server.csrf_protection.enabled true livy.server.port = 8998 livy.server.session.timeout = 3600000 livy.server.recovery.mode = recovery livy.server.recovery.state-store=filesystem livy.server.recovery.state-store.url=/tmp/livy kerberos集群需增加的配置(kerberos用户以及认证文件找相关运维人员要): livy.server.launch.kerberos.keytab = /etc/daas/kerberos/prd/kafka.keytab livy.server.launch.kerberos.principal = kafka/hadoop03.daas.com@DAAS.COM livy.server.access-control.enabled = false livy.server.auth.type = kerberos livy.server.auth.kerberos.principal = HTTP/hadoop1.daas.com@DAAS.COM livy.server.auth.kerberos.keytab =/etc/daas/kerberos/dev/http.keytab livy.server.auth.kerberos.name-rules = DEFAULT
  • Ntp配置 yum install ntp 配置master服务器: vim /etc/ntp.conf # 允许内网其他机器同步时间,如果不添加该约束默认允许所有IP访问本机同步服务 # IP为本局域网内的子网IP restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap #配置和上游标准时间同步 server 210.72.145.44 # 中国国家授时中心 server 0.cn.pool.ntp.org server 1.cn.pool.ntp.org server 2.cn.pool.ntp.org server 3.cn.pool.ntp.org #如果外部时间服务器不可用,NTP Server以本地时间作为时间服务器 server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 配置slaves 服务器 #配置和上游标准时间同步 Server 192.168.100.45 #配置允许上游时间服务器主动修改本机的时间 restrict 192.168.100.45 nomodify notrap noquery timedatectl set-ntp yes 查看当前时间和NTP服务的同步状态 timedatectl set-ntp yes timedatectl ntpstat
  • 主机映射 hostnamectl set-hostname cluster1-hadoop01-yx-daas-deepexi vim /etc/hosts # 192.168.0.225 cluster1-hadoop01-yx-daas-deepexi # 192.168.0.21 cluster1-hadoop02-yx-daas-deepexi # 192.168.0.232 cluster1-hadoop03-yx-daas-deepexi # 192.168.0.60 cluster2-hadoop01-yx-daas-deepexi # 192.168.0.97 cluster2-hadoop02-yx-daas-deepexi # 192.168.0.252 cluster2-hadoop03-yx-daas-deepexi
  • Tunned 系统调优服务禁用 查看tuned状态 systemctl status tuned 查看活动的服务 tuned-adm list 关闭tuned服务 tuned-adm off 确定没有活动的服务(No current active profile) tuned-adm list 关闭并禁止开启启动 systemctl stop tuned systemctl disable tuned
  • CDH集群部署 单集群部署,上传CDH离线安装包 CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha256 manifest.json 上传到 /opt/cloudera/parcel-repo/,没有则手动创建,修改.sha256文件后缀 mv CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha256 CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha 修改用户和组 chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/* 登录界面 图1 登录界面1 图2 登录界面2 图3 登录界面3 选择版本,免费版即可 图4 选择版本1 图5 选择版本2 单击继续,可输入和搜索主机,也可通过“当前管理的主机”看到已连接到server的agent,直接选择即可 图6 当前管理的主机1 图7 当前管理的主机2 图8 当前管理的主机3 图9 当前管理的主机4 图10 当前管理的主机5 图11 当前管理的主机6 集群安装 图12 集群安装1 图13 集群安装2 图14 集群安装3 图15 集群安装4 图16 集群安装5 图17 集群安装6 图18 集群安装7 图19 集群安装8 安装Httpd(集群中一台服务器上即可) yum install –y httpd 创建cloudera目录 mkdir -p /var/www/html/cloudera 复制安装包到 /var/www/html/cloudera allkeys.asc cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm cloudera-manager-server-db-2-6.2.1-1426065.el7.x86_64.rpm enterprise-debuginfo-6.2.1-1426065.el7.x86_64.rpm RPM-GPG-KEY-cloudera 安装createrepo服务,用于创建自定义仓库 yum install -y yum-utils createrepo 生成rpm元数据 cd /var/www/html/cloudera createrepo . 浏览器验证 http://master/cloudera 制作Cloudera Manager的repo源 vim /etc/yum.repos.d/cm6.1.1_repo [cm6.2.1_repo] name = cm6.2.1_repo baseurl=http://master/cloudera enable = true gpgcheck = false 重启CM systemctl start cloudera-scm-server 登录web web:http://master:7180 账号密码:admin 图20 登录web 选择服务器步骤与离线安装相同,从Paecel选择开始不同 图21 选择1 选择自定义存储库,输入上面配置的cloudera的http地址 图22 选择2 Parcel选择,单击“更多选项”,单击“-”删除其它所有地址,输入http://master/cloudera,单击“保存更改” 图23 选择3 图24 选择4 单击继续,选择jdk,上面已经安装jdk,取消勾选即可 图25 选择5 单击继续,配置ssh账号密码 图26 配置ssh账号密码 单击“继续”,进入下一步,安装cm agent相关到各个节点 图27 下一步1 图28 下一步2 Agent安装完以后,大数据组件安装与单集群离线安装相同
  • Cloudera Manager(6.x安装方式相同) 离线下载CM安装包上传到服务器,主节点上传server和daemons,从节点上传agent和daemons cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm 安装CM yum install bind-utils psmisc cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 MySQL-python libxslt rpm -ivh cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm rpm -ivh cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm 修改服务主机(所有agent) vim /etc/cloudera-scm-agent/config.ini server_host=master # server主机host server_port=7182 设置CM数据库 sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm # 输入scm密码 启动server sudo systemctl start cloudera-scm-server 查看启动情况 tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log 查看server状态 sudo systemctl status cloudera-scm-server 显示以下信息说明启动完成 INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server. 登录web web:http://master:7180 账号密码:admin
  • 容器编排文件总览 前端页面(5个) 统一账号管理前端页面 deepxi-daas-iam-front.yaml Daas管理平台前端 deepxi-daas-base-application-web.yaml deepxi-daas-dev-web.yaml deepxi-daas-management-web.yaml deepxi-daas-service-web.yaml 后端服务(17个) 统一账号后端接口域 deepxi-daas-iam-admin.yaml 统一账号开放平台域 deepxi-daas-iam-openapi.yaml 统一账号单点登录域 deepxi-daas-iam-sso.yaml 开发平台和大数据处理 deepexi-daas-bigdata-develop.yaml 数据服务工程 deepexi-daas-data-service.yaml 数据服务平台-数据源服务 deepexi-daas-data-service-platform-datasource.yaml 数据服务平台-鉴权服务 deepexi-daas-data-service-platform-oauth.yaml 数据源服务 deepexi-daas-datasource.yaml 统一分布式ID生成器 deepexi-daas-distribute-id-generator.yaml 数据质量 deepexi-daas-inspector.yaml 元数据收集服务 deepexi-daas-metadata-collector.yaml 元数据处理服务 deepexi-daas-metadata-server.yaml 元数据web服务 deepexi-daas-metadata-web.yaml 指标系统 deepexi-daas-metrics.yaml 数据安全 deepexi-daas-security.yaml 服务器指令执行服务 deepexi-daas-server.yaml 开发平台 deepxi-daas-develop.yaml
  • 元数据管理 元数据采集 支持 mysql、sqlserver、oracle、postgresql、db2 等主流关系型数据库; 支持 hive、greenplum、clickhouse 等分布式分析型数据库; 支持 hbase、kudu、mongodb 等 NoSQL 数据库; 支持 kafka、hdfs 等其他类型数据源; 图1 元数据采集 元数据明细 在具体的数据资产元数据明细里,可以查看字段信息、索引信息、存储情况概览、存储分区信息、以及变更信息。 图2 元数据明细1 支持以下载的方式导出数据表的元数据; 图3 元数据明细2 元数据版本 在变更信息中,可以查看元数据的版本列表,不同版本的元数据明细及差异比对。每次采集元数据后,如数据表的元数据与上次采集的结果有差异,则会形成新的元数据版本,并支持元数据差异比对。 图4 元数据版本1 如用户订阅了数据表,则该变更会通过用户邮件通知订阅者。订阅者可及时比对发现差异,并可进一步通过影响分析找到下游数据表及关联产出任务,及时进行相关调整。 图5 元数据版本2 元数据质量检测 内置主键缺失、无用表、属性空值及合规性检测等通用元数据质量规则,并支持用户自定义其他关键字段缺失规则,满足不同元数据质量检测场景的需要。其中,合理性规则用于检测各数据源中,字段的命名及备注等信息是否满足所关联的数据元标准约束,是感知标准落地情况的关键措施。 图6 元数据质量检测1 支持手动或周期性运行元数据质量检测任务。 图7 元数据质量检测2 任务运行后,所检测出有质量问题的元数据信息,会统一归档在待治理资产列表中。用户可以层层下钻,查看有质量问题的库、表及字段。 图8 元数据质量检测3 父主题: 数据开发与治理
  • 云服务cce集群鲲鹏 登录华为云控制台,搜索cce集群 图1 登录控制台 单击购买kubernetes,选择购买鲲鹏集群 图2 单击1 图3 单击1 图4 单击3 选择完成配置后单击下一步创建节点,选择node节点规格8核32G内存系统磁盘40GB,数据磁盘100GB 图5 创建节点1 图6 创建节点2 单击下一步创建,安装插件,选择默认即可,单击去支付完成集群创建 图7 集群创建1 图8 集群创建2 父主题: 华为云服务实例创建
  • 任务运维 任务级监控 任务监控支持查看任务运行状态、同步耗时、输入输出的记录数及趋势、磁盘占用及剩余空间信息、CPU 负载及内存使用性能曲线等信息。 图9 任务级监控 平台级监控 运维监控是针对所有数据集成任务进行的统一监控,包括数据监控、操作日志查看、实例管理等功能。其中,监控数据可以查看包含总任务数、离线任务数、实时任务数、当前运行实例、任务完成总体曲线、整体同步趋势、任务运行时长趋势及排行、资源使用情况等信息。 图10 平台级监控
  • 任务设计 拖拉拽设计 支持组件化拖拉拽方式快速完成数据同步任务的设计,用户在完成设计后,可通过预检测确认设计无误,通过开始、停止、刷新、查看日志等操作调试任务。 图2 拖拉拽设计 字段自动映射 配置好源表及目标表后,同名字段将自动映射,并支持用户手动调整映射关系。 图3 字段自动映射 调度配置 支持手动启动、定时启动两种方式,实现离线数据同步任务的调度。其中,定时启动方式下,可设置生效日期,及年、月、周、日、时、分、秒等不同颗粒度的调度频率及起调时间点,并生成 cron 表达式。 图4 调度配置
  • 数据同步模式 全量同步 离线同步模式中,在不设置任务前置过滤 SQL 的情况下,同步任务将执行对源端数据向目标端数据的全量同步。在组件上可以看到同步的数据量及运行时长等信息。 图5 全量同步 数据补录 当发生源端历史数据变更等情况时,通过在读取组件自定义 SQL,可以添加针对日期字段进行过滤的 WHERE 条件,可以实现针对特定时间段的数据补录需要。 图6 数据补录 增量同步 支持以当前位置、停止位置、指定位置作为采集起始点的不同模式的实时增量同步。其中,基于停止位置,可实现断点续传,使得网络中断等意外情况发生并恢复后,数据依旧可以完整无误的进行传输。 图7 增量同步 数据整合分发 针对分库分表数据整合场景及数据分发场景,可基于数据源逻辑组,通过多对一、一对多任务来实现批量任务的创建及运行。 图8 数据整合分发
  • 启动zookeeper 3个节点分别创建zookeeper系统启动文件 # vim /etc/systemd/system/zookeeper.service [Unit] Description=zkServer After=network.target remote-fs.target nss-lookup.target ConditionPathExists=/opt/zookeeper-3.6.1/conf/zoo.cfg [Service] Type=forking Environment=JAVA_HOME=/opt/jdk1.8.0_131 ExecStart=/opt/zookeeper-3.6.1/bin/zkServer.sh start ExecStop=/opt/zookeeper-3.6.1/bin/zkServer.sh stop PrivateTmp=true [Install] WantedBy=multi-user.target 重新加载systemctl配置 # systemctl daemon-reload 设置跟随linux启动,并启动zookeeper # systemctl start zookeeper && systemctl enable zookeeper 图1 启动 查看状态 # /opt/zookeeper-3.6.1/bin/zkServer.sh status 主节点 图2 启动 从节点 图3 启动
  • CCE导入服务 命名空间介绍 applife:中间件服务或中间件映射服务; daas: DAAS后台服务; daas-web: DAAS前台服务; kong: 网关服务. 图1 命名空间介绍 导入后台服务 打开kubectl控制机器进入/sort/daas-yaml/sh目录 图2 导入后台服务 陆续把容器编排文件导入 Kubectl apply -f . 如果出现下running状态提示,表面容器已启动,否则检查报错信息 图3 导入后台服务2 查看服务启动日志,选择某一个服务,“查看日志” kubectl logs -n daas deepexi-daas-security-deploy-ffb778cb9-2zgbj -f --tail=200 图4 查看日志 导入前台服务 同导入后台服务一样,打开kubectl机器 图5 导入前台服务1 陆续导入容器编排文件即可 结果如图 图6 导入前台服务2 导入中间件服务 打开kubectl控制机器 陆续导入中间件(映射)容器编排文件 图7 导入中间件服务1 结果如下: 图8 导入中间件服务2 父主题: DaaS部署
  • 配置哨兵 创建哨兵数据目录 # mkdir /data/redis-6.0.0/data/sentinel 新增配置文件 # vim /opt/redis-6.0.0/config/sentinel/sentinel.conf 分别在主从redis创建sentinel配置文件(3个实例一样) port 16379 daemonize yes pidfile /var/run/redis-sentinel.pid logfile /data/redis-6.0.0/logs/sentinel.log dir /data/redis-6.0.0/data/sentinel sentinel deny-scripts-reconfig yes #配置主redis的地址,“2”表示集群中有2个Sentinel认为master退出了就切换 sentinel monitor redisMaster 192.168.0.82 6379 2 sentinel auth-pass redisMaster Mypwd@123456 sentinel config-epoch redisMaster 1 sentinel leader-epoch redisMaster 1 启动哨兵,分别在主从redis创建redis-sentinel系统启动文件 # vim /etc/systemd/system/redis-sentinel.service [Unit] Description=The redis-sentinel Process Manager After=syslog.target network.target [Service] Type=forking PIDFile=/var/run/redis-sentinel.pid ExecStart=/opt/redis-6.0.0/bin/redis-sentinel /opt/redis-6.0.0/config/sentinel/sentinel.conf ExecStop=/opt/redis-6.0.0/bin/redis-cli -h 127.0.0.1 -p 16379 shundown PrivateTmp=true [Install] WantedBy=multi-user.target 重新加载systemctl配置 # systemctl daemon-reload 设置跟随linux启动,并启动es # systemctl start redis-sentinel && systemctl enable redis-sentinel 查看启动日志 # cat /data/redis-6.0.0/logs/sentinel.log 图2 查看启动日志 检查redis主从状态 # redis-cli -h 127.0.0.1 -p 6379 -a Mypwd@123456 info replication 图3 查看启动日志 # Replication role:master #角色master或者slave connected_slaves:2 #连接的slave个数 min_slaves_good_slaves:2 slave0:ip=192.168.0.228 ,port=6379,state=online,offset=288218,lag=0 #slave1节点信息 slave1:ip=192.168.0.56,port=6379,state=online,offset=288078,lag=1 #slave2节点信息 master_replid:2ac8c63f0185a38189010b192e42b761e69f549a master_replid2:4490ff668a9d41d5636e6a382ff1e80ca31892cf master_repl_offset:288218 master_repl_meaningful_offset:288218 second_repl_offset:69703 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:288218
  • 安装Redis主从 解压,上传压缩包redis-6.0.0-linux.tar.gz到/soft/redis并解压 # tar -vxf redis-6.0.0-linux.tar.gz # mv redis-6.0.0 /opt # mkdir /opt/redis-6.0.0/bin # cd /opt/redis-6.0.0/src # cp redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server -t ../bin/ 创建数据目录及授权 # mkdir -p /data/redis-6.0.0/{data,logs} # chmod 755 /opt/redis-6.0.0/modules/redisgraph.so redisgraph.so要授权可执行,否则会导致redis启动失败。 配置环境变量 # vim /etc/profile export REDIS_HOME=/opt/redis-6.0.0 export PATH=$REDIS_HOME/bin:$PATH 图1 配置环境变量 新增主redis配置文件 /opt/redis-6.0.0/config/redis.conf文件不存在,注意文件不要有特殊空格字符,踩过坑! # vim /opt/redis-6.0.0/config/redis.conf bind 0.0.0.0 port 6379 daemonize yes pidfile /var/run/redis.pid loglevel notice logfile /data/redis-6.0.0/logs/redis.log dir /data/redis-6.0.0/data masterauth Mypwd@123456 requirepass Mypwd@123456 appendonly yes loadmodule /opt/redis-6.0.0/modules/redisgraph.so # 确保有1个从节点写入,且延时不超过10s,否则主节点会停止写入请求(防止数据丢失) min-replicas-to-write 1 min-replicas-max-lag 10 新增从redis配置文件 在安装redis-slave机器上,重复上面5.4.2.1 到5.4.2.4过程,并使用下面配置。 如果/opt/redis-6.0.0/config/redis.conf文件不存在就新增。 # vim /opt/redis-6.0.0/config/redis.conf bind 0.0.0.0 port 6379 daemonize yes pidfile /var/run/redis.pid loglevel notice logfile /data/redis-6.0.0/logs/redis.log dir /data/redis-6.0.0/data masterauth Mypwd@123456 requirepass Mypwd@123456 appendonly yes loadmodule /opt/redis-6.0.0/modules/redisgraph.so # 确保有1个从节点写入,且延时不超过10s,否则主节点会停止写入请求(防止数据丢失) min-replicas-to-write 1 min-replicas-max-lag 10 #配置连接主redis replicaof 192.168.0.82 6379 启动redis-server 分别在主从创建redis-server系统启动文件 # vim /etc/systemd/system/redis-server.service [Unit] Description=redis After=network.target [Service] Type=forking PIDFile=/var/run/redis.pid ExecStart=/opt/redis-6.0.0/bin/redis-server /opt/redis-6.0.0/config/redis.conf ExecStop=/opt/redis-6.0.0/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown PrivateTmp=true [Install] WantedBy=multi-user.target 重新加载systemctl配置 # systemctl daemon-reload 设置跟随linux启动,并启动es # systemctl start redis-server && systemctl enable redis-server 查看redis角色 # redis-cli -h 192.168.0.82 -p 6379 -a Mypwd@123456 INFO | grep role
  • RedisGraph安装 安装路径约定,安装机器:中间件服务器 安装目录:/opt/redis-6.0.0 配置文件:/opt/redis-6.0.0/config/redis.conf 和 /opt/redis-6.0.0/config/sentinel/sentinel.conf 数据目录:/data/redis-6.0.0/data 日志目录:/data/redis-6.0.0/logs 插件目录:/opt/redis-6.0.0/modules/redisgraph.so
  • 前端服务Kong配置 管理平台基础页面(deepxi-daas-base-application-web) 图1 管理平台基础页面 指定为K8s服务名称 deepexi-daas-base-application-web-service.daas-web:30010,注意要加上命名空间“.daas-web” 图2 指定为K8s服务名称 管理平台数据开发页面(deepxi-daas-dev-web) 图3 管理平台数据开发页面1 指定为K8s服务名称 deepexi-daas-dev-web-service.daas-web:30013,注意要加上命名空间“.daas-web” 图4 指定为K8s服务名称 管理平台数据管理页面(deepxi-daas-management-web) 图5 管理平台数据管理页面 指定为K8s服务名称 deepexi-daas-management-web-service.daas-web:30012,注意要加上命名空间“.daas-web” 图6 指定为K8s服务名称1 管理平台数据服务页面(deepxi-daas-service-web) 图7 管理平台数据服务页面 指定为K8s服务名称 deepexi-daas-daas-service-web-service.daas-web:30011,注意要加上命名空间“.daas-web” 图8 指定为K8s服务名称2 父主题: DaaS部署
  • 配置JVM启动参数 默认的jvm启动参数内存都比较大,可以根据机器情况适当调整,不然有可能会启动失败;有3个脚本需要修改(注意内存单位m不能缺少,否则会启动失败): # vim /opt/rocketmq-4.4.0/bin/runserver.sh JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn640m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" # vim /opt/rocketmq-4.4.0/bin/runbroker.sh JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m" # vim /opt/rocketmq-4.4.0/bin/tools.sh JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m" 注意事项:注意去掉master/slave这些注册,特别注意IP后面不能有空格 图1 注意事项 父主题: Rocketmq部署
  • 任务运维 运维看板 支持总览离线任务、实时任务的运行状态、运行时长,及调度引擎的运行情况,帮助数据开发工程师及时发现问题,解决问题,同时达到充分利用资源,快速优化任务的目的。 图5 运维看板 离线任务运维 离线运维支持运维工程师对生产环境上的流程进行运行管理,支持重跑、错误重试、停止、置成功、置失败、补数据、配置质量规则、查看日志等操作。流程发布到生产环境后,运维工程师可以在流程管理中运行流程,并支持版本回滚。 图6 离线任务运维1 每次启动流程,都会生成相应的流程运行实例。每个实例都可以查看到其对应流程版本的 DAG 及对应任务节点版本的代码、资源。 图7 离线任务运维2 生产环境与开发环境实行严格的权限隔离及资源隔离,不同环境的任务运行所依赖的计算资源、数据资源、源码资源均相互独立,不受另一方影响。 实时任务运维 支持实时任务启动、停止、告警、查看日志等运维操作。支持通过保存点、检查点、业务时间等方式,来指定要读取的业务数据。 图8 实时任务运维
  • 数据发布CI/CD 支持数据发布 CI/CD。数据开发团队完成任务开发后,可以将流程提交到测试环境中进行验证、调整,任务在测试环境的运行过程中,不影响用户继续完成其他开发任务。对于通过测试的任务,数据工程师可以提交到发布流程中,开发 Leader 则可通过查看任务、比对版本来审核数据任务。审核通过后,运维工程师方可进一步发布到生产环境。 图1 数据发布CI/CD1 图2 数据发布CI/CD2 图3 数据发布CI/CD3 图4 数据发布CI/CD4
  • 数据资源管理 数据资源概览 资源概览对数据平台内的数据项目、数据源、数据表、API、指标、维度等进行统计,并反映存储资源消耗情况、数据价值表排行、元数据质量缺陷统计等情况。 图1 数据资源概览1 同时,可以查看不同数据源类型的数据源数量、表数量、数据量以及接入连通性等信息。 图2 数据资源概览2 热点资源盘点 根据 API 查询次数、被引用次数及收藏次数,对数据资产进行热点资源排行,及时发现闲置资源,以做好资源盘活工作。 图3 热点资源盘点 数据地图 通过数据地图,可以一目了然的总览数据模型及指标在不同业务主题域下的分布情况。 图4 数据地图1 用户可以依次展开想要探索的主题域、数据表,层层下钻,定位到目标表后,查看表详情。 图5 数据地图2 图6 数据地图3 图7 数据地图4 数据资源编目 基于元数据采集获取的企业数据资源清单后,可以进行编目管理,使得数据资源更易被用户所检索、调用。 图8 数据资源编目 数据资源详情 在全部资产中,可以查看所有数据表、数据模型、指标维度及 HDFS 上的文件。其中,数据表中可以进一步查看字段信息、索引信息、元数据变更信息、关联的数据产出任务、数据血缘关系等详情。 图9 数据资源详情 数据血缘分析 通过数据血缘分析,可以分析问题表的数据质量问题来自于上游的哪些数据表和字段。 图10 数据血缘分析 父主题: 数据开发与治理
  • 验证 在k8s宿主机上,查看pod的地址, 类型为ClusterIp是不能通过外网访问的 # kubectl get svc -n daas 图6 查看pod的地址 在K8s宿主机上,执行: # curl http://192.168.0.69:38103/distribute-id-generator/api/v1/snowflake/id/32 图7 执行 看到上面返回的结果,说明部署成功,否则检查一下zookeeper配置是否正确。
  • 创建应用副本 通过k8s master或者华为云cce控制台导入yaml文件。 图5 导入yaml文件 # kubectl apply -f deepexi-daas-distribute-id-generator.yaml apiVersion: apps/v1 kind: Deployment metadata: name: deepexi-distribute-id-generator-deploy namespace: daas spec: replicas: 1 template: metadata: labels: app: deepexi-distribute-id-generator-deploy openkube.deepexi.cloud/logtype: java spec: containers: - name: deepexi-distribute-id-generator-deploy imagePullPolicy: Always image: swr.cn-south-1.myhuaweicloud.com/daas/distribute-id-generator:v2.7.x_20210817_arm64 command: ["/bin/sh"] args: ["-c","cd /home; java -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -XX:+HeapDumpOnOutOfMemoryError -jar ./demo.jar --leaf.snowflake.zk.address=zk1.applife --dubbo.registry.address=zookeeper://zk1.applife?backup=zk2.applife,zk3.applife --server.port=38103"] imagePullSecrets: - name: default-secret selector: matchLabels: app: deepexi-distribute-id-generator-deploy --- apiVersion: v1 kind: Service metadata: name: deepexi-distribute-id-generator-service namespace: daas spec: type: NodePort ports: - port: 38103 nodePort: 38103 targetPort: 38103 selector: app: deepexi-distribute-id-generator-deploy
共100000条