云服务器内容精选

  • 条件(Condition) 条件(Condition)是自定义SCP生效的特定条件,包括和。 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:。 服务级条件键(前缀为服务缩写,如dli:)仅适用于对应服务的操作,详情请参见表5。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个 VPC终端节点 发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:。 DLI 定义了以下可以在自定义SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 表5 DLI支持的服务级条件键 服务级条件键 类型 单值/多值 说明 dli:VpcId string 单值 根据虚拟网络ID筛选访问权限。
  • 迁移方案 图1 迁移方案 H公司的车联网大数据业务平台当前CDH(Cloudera Hadoop) HBase集群中共有854张表约400TB,备HBase集群中共有149张表,约10TB数据。最近一个月新增的数据量是60TB。 使用 CDM 将CDH集群中的HBase HFile抽取出来存入到 MRS (MapReduce) HDFS中,再通过HBase修复命令重建HBase表。基于这种迁移方案,可以使用以下2种迁移方式同时进行: CDM通过专线直接迁移近一个月的数据以及备HBase集群的数据: CDH → CDM(华为云) → MRS 使用云专线直接迁移时的优缺点: 优点:数据无需做多次的搬迁,缩短整体搬迁周期。 缺点:在数据大量传输过程中会占用专线带宽,对客户并行进行的业务存在影响,跨越多个交换机设备。 CDM通过DES(数据快递服务)迁移1个月前的历史数据,迁移路径如下: CDH → DES → CDM(华为云) → OBS → CDM(华为云) → MRS DES适用场景:数据量大,用户私有云与华为云无专线打通,用户私有云网络到公网带宽有限。 优点:传输可靠性高,受专线以及网络质量影响较小。 缺点:迁移方式耗时较长。
  • 约束与限制 MaxCompute不支持datetime类型数据格式,在迁移之前,需要将所有datetime类型的字段转换为字符串(STRING)格式。 MaxCompute不支持varchar和char类型字段,在迁移之前,需要将所有varchar和char类型的字段转换为字符串(STRING)格式。 元数据迁移不支持事务表(即DDL中带有transactional=true字段的表)。 由于阿里云最近更新了timestamp_ntz字段类型,目前该字段类型尚未被阿里云SDK所兼容支持,这一兼容性问题导致SDK无法识别并读取该字段,从而使该字段所在的表元数据迁移失败。
  • 注意事项 CS V模板文件编辑 当使用MgC提供的CSV模板文件进行数据筛选时,请不要使用Excel对CSV模板文件进行编辑,通过Excel编辑并保存的模板文件无法被MgC识别。 DLI队列连接选择 元数据迁移和数据迁移需要使用不同的DLI队列连接,元数据迁移需要使用DLI SQL队列连接,数据迁移需要使用DLI 通用队列连接。配置错误的队列连接类型会导致迁移任务失败,因此在配置任务时,必须仔细检查并确保任务类型与队列类型相匹配。 元数据迁移与库的数量 在进行元数据迁移时,MgC会根据识别到的源端数据库的数量,在DLI中自动创建相应的库。如果是整库迁移,通常只会创建一个库;而表迁移可能需要创建多个库。通常,DLI的库数量上限为10。如果DLI空间不足,可能会导致元数据迁移失败,因此在元数据迁移前,需要评估源端库的数量,确保DLI有足够的空间来创建新的库。
  • 校验方式说明 全量校验:全量对比所有数据,适用与需要对比历史数据的场景。 日级增量校验:依靠元数据中的创建或更新时间,获取数据变化(增量)分区,再进行校验。支持单日或连续多日增量数据的统计,是最常用的校验方式。 小时级增量校验:依靠元数据中的创建或更新时间,获取数据变化(增量)分区,再进行校验。在24小时内自动进行多次校验,可以持续关注数据一致性变化情况。第二日0点自动停止任务。 指定日期校验:仅适用于分区为年月日格式的分区表,支持周期性指定一个或多个连续日期分区进行校验。分区格式不为年月日的表不会进行校验。 指定时间校验:用户可以选择一个时间段,校验该时间段内的数据。只能选择当前时间之前的时间段进行校验。
  • 各组件支持的校验方式 组件 支持的校验方式 Hive 全量校验 日级增量校验 小时级增量校验 指定日期校验 DLI MaxCompute 全量校验 日级增量校验 小时级增量校验 指定日期校验 Doris 全量校验 日级增量校验 小时级增量校验 Hbase 全量校验 指定时间校验 ClickHouse 全量校验 阿里云云数据库ClickHouse 全量校验 CloudTable(HBase) 全量校验 指定时间校验 CloudTable(ClickHouse) 全量校验 Delta 全量校验 日级增量校验 小时级增量校验 指定日期校验 Hudi 全量校验 日级增量校验 小时级增量校验 指定日期校验
  • 准备工作 需要先在源端内网环境中安装用于配合数据校验的工具Edge并注册用户,方法请参见安装Linux版本的Edge工具。 需要将源端和目的端所有节点的主机名和IP地址映射添加到安装Edge主机的/etc/hosts文件中,配置连接才能连接成功。 在安装Edge工具的主机上,打开/etc/hosts文件进行编辑。 在/etc/hosts文件中,为每个源端和目的端节点添加一行,格式如下: IP地址 主机名 例如,节点的IP地址是192.168.1.1,主机名是source-node-01,则添加: 192.168.1.1 source-node-01 完成所有映射的添加后,保存并关闭/etc/hosts文件。 为了确保配置正确,可以通过ping命令测试主机名解析是否成功。例如: ping source-node-01
  • 问题分析 出现该问题可能是因为数值超出了Hive支持的数值范围。 在数据处理中,如果遇到极大值或极小值,Hive可能无法以标准数值格式表示这些极端数值,而是将它们显示为 “Infinity”(表示无限大)或 “-Infinity”(表示无限小)。这些值并不是有效的数字,因此在进行数值转换或计算时,可能会引发异常。 在校验过程中,Hive和Spark对这些无法表示的数值有默认的处理方式: 当数值为 Infinity 或 -Infinity 时,会被默认处理并显示为 -1。 当数值为 NaN(Not a Number,非数字)时,会被默认处理并显示为 0。
  • 迁移方案 图1 迁移方案 H公司的车联网大数据业务平台当前CDH(Cloudera Hadoop) HBase集群中共有854张表约400TB,备HBase集群中共有149张表,约10TB数据。最近一个月新增的数据量是60TB。 使用CDM将CDH集群中的HBase HFile抽取出来存入到MRS(MapReduce) HDFS中,再通过HBase修复命令重建HBase表。基于这种迁移方案,可以使用以下2种迁移方式同时进行: CDM通过专线直接迁移近一个月的数据以及备HBase集群的数据: CDH → CDM(华为云) → MRS 使用云专线直接迁移时的优缺点: 优点:数据无需做多次的搬迁,缩短整体搬迁周期。 缺点:在数据大量传输过程中会占用专线带宽,对客户并行进行的业务存在影响,跨越多个交换机设备。 CDM通过DES(数据快递服务)迁移1个月前的历史数据,迁移路径如下: CDH → DES → CDM(华为云) → OBS → CDM(华为云) → MRS DES适用场景:数据量大,用户私有云与华为云无专线打通,用户私有云网络到公网带宽有限。 优点:传输可靠性高,受专线以及网络质量影响较小。 缺点:迁移方式耗时较长。
  • 对接步骤 配置Druid。 修改配置: conf/druid/single-server/micro-quickstart/_common/common.runtime.properties 将druid-hdfs-storage加入druid.extensions.loadList。 配置Deep storage在OBS中的存储路径。 配置OBSA-HDFS插件。 在官方Github下载OBSA-HDFS插件:下载地址,然后拷贝到extensions/druid-hdfs-storage/ 目录。 在配置目录conf/druid/single-server/micro-quickstart/_common/下增加hdfs-site.xml,配置如下(其中endpoint按照桶所在的实际endpoint填写): 启动Druid服务。
  • 操作流程 大数据场景下使用OBS实现存算分离的操作流程如图1所示。 图1 操作流程 配置的核心是完成大数据平台与OBS对接,实现OBS作为大数据的统一 数据湖 存储。本文档提供三种主流大数据平台的对接指导,详情请参见支持的大数据平台简介。 (可选)OBS除了可以与主流大数据平台对接外,还可以直接与开源的大数据组件对接。当您使用开源的大数据组件时,可参考支持的大数据组件简介完成与OBS对接。 (可选)如果您的数据仍存储在本地HDFS,需要先将数据迁移到华为云OBS中。详情请参见迁移HDFS数据至OBS。 父主题: 大数据场景下使用OBS实现存算分离
  • 在HDFS集群中增加配置项 在HDFS集群CONFIGS的ADVANCED配置项中增加Custom core-site.xml文件中的配置项,包括:fs.obs.access.key,fs.obs.secret.key,fs.obs.endpoint和fs.obs.impl。 fs.obs.access.key、fs.obs.secret.key、fs.obs.endpoint分别为用户的ak、sk和endpoint。访问密钥AK/SK和终端节点Endpoint请根据实际填写,AK/SK获取方式请参见访问密钥(AK/SK),Endpoint获取方式请参见终端节点(Endpoint)和访问 域名 。 fs.obs.impl配置为org.apache.hadoop.fs.obs.OBSFileSystem。 重启HDFS集群。
  • 增加Hive对接OBS的jar包 执行以下命令,在Hive Server节点创建auxlib文件夹。 mkdir /usr/hdp/3.0.1.0-187/hive/auxlib 执行以下命令,将OBSA-HDFS工具的jar包放到auxlib文件夹。 cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/hive/auxlib 重启Hive集群。
  • 更新OBSA-HDFS工具 下载与hadoop版本配套的OBSA-HDFS工具:下载地址。 下载OBSA-HDFS工具的jar包(如hadoop-huaweicloud-3.1.1-hw-53.8.jar)到/mnt/obsjar目录。 hadoop-huaweicloud-x.x.x-hw-y.jar包含义:前三位x.x.x为配套hadoop版本号;最后一位y为OBSA版本号,y值最大为最新版本。如:hadoop-huaweicloud-3.1.1-hw-53.8.jar,3.1.1是配套hadoop版本号,53.8是OBSA的版本号。 如hadoop版本为3.1.x,则选择hadoop-huaweicloud-3.1.1-hw-53.8.jar。 执行以下命令,将OBSA-HDFS工具jar包(如hadoop-huaweicloud-3.1.1-hw-53.8.jar)拷贝到如下目录中。 cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/share/hst/activity-explorer/lib/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/hadoop-mapreduce/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/spark2/jars/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/tez/lib/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /var/lib/ambari-server/resources/views/work/CAPACITY-SCHEDULER{1.0.0}/WEB-INF/lib/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /var/lib/ambari-server/resources/views/work/FILES{1.0.0}/WEB-INF/lib/ cp /mnt/obsjar/hadoop-huaweicloud-3.1.1-hw-53.8.jar /var/lib/ambari-server/resources/views/work/WORKFLOW_MANAGER{1.0.0}/WEB-INF/lib/ ln -s /usr/hdp/3.0.1.0-187/hadoop-mapreduce/hadoop-huaweicloud-3.1.1-hw-53.8.jar /usr/hdp/3.0.1.0-187/hadoop-mapreduce/hadoop-huaweicloud.jar
  • Flink性能优化 概述 Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。 集群服务部署架构 服务规模与业务容量参数配置 Flink作为流数据处理引擎,依赖内存和CPU。用户在规划规格时,应根据当前的业务容量和增长速度,规划合理的内存和CPU资源,特别需要关注以下几点: 根据自己的业务目标,规划CPU资源和内存资源。规划时,需要结合当前的数据分布情况,业务复杂度,设置JobManager的内存,TaskManager的数量,TaskManager的内存,每个TaskManager的slot数量,规划适当的CPU核数和内存大小。 在规划内存时,要预留一定量的内存空间作为操作系统的buffer cache,一般预留20%。 从HDFS中读入数据时,要考虑block解压缩后的数据膨胀。 规划一定的磁盘作为缓存空间,包括缓存数据与日志。 调优目标 Flink调优的目标是在不影响其他业务正常运行的前提下,高效的完成业务目标,通常为了达成该目标,一般需要最大限度利用集群的物理资源,如CPU、内存、磁盘IO,使其某一项达到瓶颈。 调优原则 提高CPU使用率同时减少额外性能开销。 提高内存使用率。 优化业务逻辑,减少计算量和IO操作。 性能调优常用方法-DataStream调优 配置内存:调整老年代和新生代的比值;开发Flink应用程序时,优化datastream的数据分区活分组操作。 设置并行度:用户可以根据实际的内存,CPU,数据以及应用程序逻辑的情况调整并行度参数。任务的并行度可以按优先级从高到低排列,由算子层次、执行环境层次、客户端层次、系统层次这四种层次指定。 配置进程参数:配置JobManager内存、TaskManager个数、TaskManager Slot数、TaskManager内存。 设计分区方法:可设置随机分区、rebalancing(round-robin partitioning,基于round-rebin对元素进行分区,使得每个分区负责均衡)、rescaling(以round-robin的形式将元素分区到下游操作的子集中)、广播分区(广播每个元素到所有分区)、自定义分区。 配置netty网络通信:可在客户端的“conf/flink-conf.yaml”配置文件中进行修改适配。 指标观测方法 性能衡量指标包含吞吐量、资源利用率、伸缩性。 吞吐量:在相同资源环境下,执行相同计算任务,查看任务的完成速度。 资源利用率:执行计算任务,查看在不同负载情况下,CPU、内存、网络的使用率。 伸缩性: − 横向扩容带来的性能提升曲线:增加资源,执行相同计算任务,查看性能提升比率。 − 增加系统负担带来的性能下降曲线:在相同资源环境下,增加计算负载,查看性能下降比率。 父主题: 大数据性能优化