华为云用户手册

  • 配置HetuEngine使用代理用户鉴权 适用于 MRS 3.3.0及以后版本。 HetuEngine支持使用 FusionInsight Manager用户认证时通过客户自有用户(代理用户)使用Ranger鉴权的能力。即在使用HetuEngine客户端时,通过--session-user来指定代理用户。 创建认证用户或代理用户请参考创建HetuEngine权限角色。 启用Ranger鉴权并为代理用户配置操作数据源的数据库、表、列的管理权限,具体操作请参考添加HetuEngine的Ranger访问权限策略。 集群已启用Kerberos认证(安全模式) 使用kinit指定认证用户(需为HetuEngine管理员用户,并额外添加supergroup用户组才能代理其他用户鉴权),如hetuadmin1。 kinit hetuadmin1 根据提示输入用户密码,首次登录需重置密码。 再使用--session-user指定代理用户,如user1。 hetu-cli --session-user user1 集群未启用Kerberos认证(普通模式) 使用--user指定认证用户(需拥有hetuuser用户组才能代理其他用户鉴权),如user;使用--session-user指定代理用户,如user1。 hetu-cli --user user --session-user user1 该功能不适用于HiveMetastore数据源鉴权与多用户映射共存的场景。 父主题: HetuEngine用户权限管理
  • 聚合模型示例 聚合列不支持修改聚合类型。 在col1列后添加new_col列(key列): ALTER TABLE example_db.my_table ADD COLUMN new_col INT DEFAULT "0" AFTER col1; 在col1后添加new_col列(Value列SUM聚合类型): ALTER TABLE example_db.my_table ADD COLUMN new_col INT SUM DEFAULT "0" AFTER col1; 修改col1列的类型为BIGINT(Key列): ALTER TABLE example_db.my_table MODIFY COLUMN col1 BIGINT DEFAULT "1"; 修改col1列的类型为BIGINT(Value列): ALTER TABLE example_db.my_table MODIFY COLUMN col1 BIGINT MAX DEFAULT "1"; 删除col1列: ALTER TABLE example_db.my_table DROP COLUMN col1;
  • 非聚合模型示例 在col1列后添加new_col列(添加Key列): ALTER TABLE example_db.my_table ADD COLUMN new_col INT KEY DEFAULT "0" AFTER col1; 在col1列后添加new_col列(添加Value列): ALTER TABLE example_db.my_table ADD COLUMN new_col INT DEFAULT "0" AFTER col1; 修改col1列的类型为BIGINT(Key列): ALTER TABLE example_db.my_table MODIFY COLUMN col1 BIGINT KEY DEFAULT "1"; 修改col1列的类型为BIGINT(Value列): ALTER TABLE example_db.my_table MODIFY COLUMN col1 BIGINT DEFAULT "1"; 删除col1列: ALTER TABLE example_db.my_table DROP COLUMN col1;
  • 检查全局二级索引数据一致性 在HBase客户端执行以下命令可检查数据一致性,如果不一致,将重新构建索引数据。一致性检查结果会保存到“{数据表所在的NameSpace}:GSI_INCONSISTENCY_TABLE”表中。 hbase org.apache.hadoop.hbase.hindex.global.tools.GlobalHIndexConsistencyTool -dt table1 -n idx3 -src BOTH -r 相关参数介绍如下: -dt,--data-table:要进行一致性检查的数据表名称。 -n,--index-name:要进行一致性检查的索引名称。 -src,--source:检查模式选择,默认为“BOTH”,支持以下模式: INDEX_TABLE_SOURCE:索引表作为源表。 DATA_TABLE_SOURCE:数据表作为源表。 BOTH:索引表和数据表均作为源表。 -r,--repair:索引数据修复选项,添加此参数,表示检查后进行修复。 -sc,--scan-caching(可选) :一致性检查/修复的MapReduce任务中scan caching大小。
  • 物化视图改写能力支持范围 物化视图支持的类型 BOOLEAN、DECIMAL、DOUBLE、REAL/FLOAT、INT、BIGINT、SMALLINT、TINYINT、CHAR/VARCHAR、DATE、TIME、TIMESTAMP、INTERVAL YEAR TO MONTH、INTERVAL DAY TO SECOND、BINARY/VARBINARY、UUID。 物化视图改写支持的函数 转换函数:只支持CAST函数。 字符串函数:支持所有字符串函数,包括char_length、character_length、chr、codepoint、decode、encode、find_in_set、format_number、locate、hamming_distance、instr、levenshtein、levenshtein_distance、ltrim、lpad、octet_length、position、quote、repeat2。 数学运算符:支持所有数学运算符。 聚合函数:支持的聚合函数包括 COUNT、SUM、MIN、MAX、AVG、LEAD、LAG、FIRST_VALUE、LAST_VALUE、COVAR_POP、COVAR_SAMP、REGR_SXX、REGR_SYY、STDDEV_POP、STDDEV_SAMP、VAR_POP、VAR_SAMP、ROW_NUMBER、RANK、PERCENT_RANK、DENSE_RANK、CUME_DIST。 以下场景,物化视图不支持对包含了函数的SQL查询进行改写: SQL中包含无参函数 SQL中包含了HetuEngine支持的会根据参数的类型获得不同类型的返回值的函数 SQL中函数存在嵌套使用,或者是使用的函数会发生异常导致重写失败的函数 物化视图创建语句改写不支持二段式表名,支持一段式和三段式表名。 如支持改写表名为“hive.mvschema.t1”和“t1”,不支持改写表名为“mvschema.t1”。
  • 前提条件 集群已安装CDL、Hudi和ClickHouse服务且运行正常。 用户需要有操作ClickHouse的权限,相关操作请参见创建ClickHouse角色。 在FusionInsight Manager中创建一个人机用户,例如“cdluser”,该用户需具有ClickHouse管理员权限(相关操作请参见创建ClickHouse角色),并加入用户组cdladmin、hadoop、kafka、supergroup,主组选择“cdladmin”组,关联角色“System_administrator”。 手动创建ClickHouse侧的本地表和分布式表, 本地表使用ReplicatedReplacingMergeTree引擎,详细操作请参见ClickHouse客户端使用实践章节。
  • 使用HetuEngine查询容错执行能力须知 容错不适用于已损坏的查询或其他用户错误场景。例如:不会花费资源重试由于无法解析SQL而失败的查询任务。 不同数据源对SQL语句的容错支持能力存在差异: 所有数据源都支持读操作的容错执行。 Hive数据源支持写操作的容错执行。 容错能力非常适合大批量查询,如果用户在容错集群上同时运行大量短时间小查询,则可能会遇到延迟。因此,建议处理批处理操作时使用专用的容错计算实例,与进行交互式查询的更高查询量的计算实例分开。
  • HetuEngine查询容错执行能力介绍 当集群中的节点因网络、硬件或软件问题发生故障时,在故障节点上运行的所有查询任务都将丢失。这可能会严重影响集群生产力并造成资源浪费,尤其对于长时间运行的查询影响较大。HetuEngine提供一种故障恢复机制,即容错执行能力。集群可通过自动重新运行受影响的查询或其组件任务来降低查询失败概率。可降低人工干预并提高了容错性,但会延长总执行时间。 当前支持如下两种容错执行机制: QUERY级重试策略:开启QUERY级别容错不会进行中间数据落盘,如果查询任务失败,将自动重试该查询任务的所有task。当集群的大部分工作由小查询组成时建议使用此策略。 TASK级重试策略:开启TASK级别容错会默认配置HDFS作为交换区,将exchange中间数据落盘,如果查询任务失败,将重试失败的task。建议在执行大批量查询时使用此策略,集群可以更高效的重试查询中的小颗粒任务,而不是整个查询。 本示例介绍设置“TASK”重试策略容错执行机制。
  • 参数描述 表1 参数描述 参数 描述 是否必填 op 生成compaction计划(op指定为“schedule”),或者执行已经生成的compaction计划(op指定为“run”) 是 table 需要查询表的表名,支持database.tablename格式 否 path 需要查询表的路径 否 timestamp 在op指定为“run”时,可以指定timestamp来执行该时间戳对应的compaction计划以及该时间戳之前未执行的compaction计划 否
  • 日志描述 日志路径:Guardian相关日志的存储路径为:“/var/log/Bigdata/guardian/token-server”。 日志归档规则:Guardian的运行日志启动了自动压缩归档功能,当日志大小超过50MB的时候(此日志文件大小可进行配置),会自动压缩,压缩后的日志文件名规则为:“token-server.log.[编号]”。最多保留最近的20个压缩文件,压缩文件保留个数和压缩文件阈值可以配置。
  • 参数描述 表1 UPDATE参数 参数 描述 tableIdentifier 在其中执行MergeInto操作的Hudi表的名称。 target_alias 目标表的别名。 sub_query 子查询。 source_alias 源表或源表达式的别名。 merge_condition 将源表或表达式和目标表关联起来的条件 condition 过滤条件,可选。 matched_action 当满足条件时进行Delete或Update操作 not_matched_action 当不满足条件时进行Insert操作
  • 注意事项 以下为分别使用SET和RESET命令进行动态设置或清除操作的属性: 表2 属性描述 属性 描述 hoodie.insert.shuffle.parallelism insert方式写入数据时的spark shuffle并行度。 hoodie.upsert.shuffle.parallelism upsert方式写入数据时的spark shuffle并行度。 hoodie.delete.shuffle.parallelism delete方式删除数据时的spark shuffle并行度。 hoodie.sql.insert.mode 指定Insert模式,取值为strict、non-strict及upsert。 hoodie.sql.bulk.insert.enable 指定是否开启bulk insert写入。 spark.sql.hive.convertMetastoreParquet sparksql把parquet表转化为datasource表进行读取。当hudi的provider为hive的情况下,使用sparksql或sparkbeeline进行读取,需要将该参数设置为false。
  • 命令格式 Add或Update参数值: SET parameter_name=parameter_value 此命令用于添加或更新“parameter_name”的值。 Display参数值: SET parameter_name 此命令用于显示指定的“parameter_name”的值。 Display会话参数: SET 此命令显示所有支持的会话参数。 Display会话参数以及使用细节: SET -v 此命令显示所有支持的会话参数及其使用细节。 Reset参数值: RESET 此命令清除所有会话参数。
  • 示例 部分字段更新 create table h0(id int, comb int, name string, price int) using hudi options(primaryKey = 'id', preCombineField = 'comb');create table s0(id int, comb int, name string, price int) using hudi options(primaryKey = 'id', preCombineField = 'comb');insert into h0 values(1, 1, 1, 1);insert into s0 values(1, 1, 1, 1);insert into s0 values(2, 2, 2, 2);//写法1merge into h0 using s0on h0.id = s0.idwhen matched then update set h0.id = s0.id, h0.comb = s0.comb, price = s0.price * 2;//写法2merge into h0 using s0on h0.id = s0.idwhen matched then update set id = s0.id,name = h0.name,comb = s0.comb + h0.comb,price = s0.price + h0.price; 缺省字段更新和插入 create table h0(id int, comb int, name string, price int, flag boolean) using hudi options(primaryKey = 'id', preCombineField = 'comb');create table s0(id int, comb int, name string, price int, flag boolean) using hudi options(primaryKey = 'id', preCombineField = 'comb');insert into h0 values(1, 1, 1, 1, false);insert into s0 values(1, 2, 1, 1, true);insert into s0 values(2, 2, 2, 2, false);merge into h0 as targetusing (select id, comb, name, price, flag from s0) sourceon target.id = source.idwhen matched then update set *when not matched then insert *; 多条件更新和删除 create table h0(id int, comb int, name string, price int, flag boolean) using hudi options(primaryKey = 'id', preCombineField = 'comb');create table s0(id int, comb int, name string, price int, flag boolean) using hudi options(primaryKey = 'id', preCombineField = 'comb');insert into h0 values(1, 1, 1, 1, false);insert into h0 values(2, 2, 1, 1, false);insert into s0 values(1, 1, 1, 1, true);insert into s0 values(2, 2, 2, 2, false);insert into s0 values(3, 3, 3, 3, false);merge into h0using (select id, comb, name, price, flag from s0) sourceon h0.id = source.idwhen matched and flag = false then update set id = source.id, comb = h0.comb + source.comb, price = source.price * 2when matched and flag = true then deletewhen not matched then insert *;
  • Schema演进支持范围 Schema演进支持范围: 支持列(包括嵌套列)相关的增、删、改、位置调整等操作。 不支持对分区列做演进。 不支持对Array类型的嵌套列进行增、删、列操作。 表1 引擎支持矩阵 引擎 DDL操作Schema 变更后的Hudi表写操作支持 变更后的Hudi表读操作支持 变更后Hudi表compaction支持 SparkSQL Y Y Y Y Flink N Y Y Y HetuEngine N N Y N Hive N N Y N
  • 操作步骤 以Hive客户端安装用户登录源端集群安装客户端的节点。 执行以下命令,切换到客户端安装目录,例如安装目录为“/opt/client”,请用户根据实际情况修改。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 如果集群开启了Kerberos认证,执行以下命令认证用户,否则跳过此步骤。 kinit Hive业务用户 执行以下命令登录源端集群的Hive客户端。 beeline 执行以下命令创建表“export_test”。 create table export_test(id int) ; 执行以下命令向表“export_test”中插入数据。 insert into export_test values(123); 在目标集群重复执行1-4,并执行以下命令创建存放表“export_test”导出后的HDFS路径。 dfs -mkdir /tmp/export 执行以下命令登录目标集群的Hive客户端。 beeline 导入导出表“export_test”。 使用Hive Import/Export对表数据迁移时,支持以下几种场景,可以根据实际情况选择合适的导入导出方式。 场景一:简单导出导入 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“export_test”中。 import from '/tmp/export'; 场景二 :在导入时重命名表 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“import_test”中。 import table import_test from '/tmp/export'; 场景三:导出分区数据并导入 在源端集群执行以下命令将表“export_test”的pt1和pt2分区导出到8创建的目录下。 export table export_test partition (pt1="in", pt2="ka") to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“export_test”中。 import from '/tmp/export'; 场景四:导出表数据并且将该数据导入到分区中 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“import_test”的pt1和pt2分区中。 import table import_test partition (pt1="us", pt2="tn") from '/tmp/export'; 场景五:导入表数据时指定表的Location 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“import_test”中,且该表的Location为“/tmp/export”。 import table import_test from '/tmp' location '/tmp/export'; 场景六:导入表数据为外部表 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到外部表“import_test”中。 import external table import_test from '/tmp/export'; 导出表/分区数据时,存放表/分区数据的HDFS路径需提前创建,且该目录为空,否则导出失败。 导出分区时,导出的表必须为分区表,且不支持导出同一个分区字段的多个分区值的数据;导入到表中分区时导入的表必须是分区表。 导入数据时需注意: 使用import from '/tmp/export';命令导入表是没有指定表名的场景,该场景导入的数据会保存到与源表名相同的表路径下,需注意以下两点: 如果目标集群上不存在与源集群上同名的表,在导入表的过程中会创建该表。 如果目标集群上已存在与源集群上同名的表,该表对应的HDFS目录下必须为空,否则导入失败。 使用import external table import_test from '/tmp/export';命令导入表会将导出的表导入到指定的表中,需注意以下两点: 如果目标集群上不存在与指定的表名相同的表,在导入表的过程中会创建该表。 如果目标集群上已存在与指定的表名相同的表,该表对应的HDFS目录下必须为空,否则导入失败。 “haclusterX”为新增的自定义参数“dfs.namenode.rpc-address.haclusterX”中的“haclusterX”
  • IoTDB支持的数据类型和编码 IoTDB支持如下几种数据类型和编码方式,参见表1。 表1 IoTDB支持的数据类型和编码 类型 说明 支持的编码 BOOLEAN 布尔值 PLAIN、RLE INT32 整型 PLAIN、RLE、TS_2DIFF、GORILLA、FREQ、ZIGZAG INT64 长整型 PLAIN、RLE、TS_2DIFF、GORILLA、FREQ、ZIGZAG FLOAT 单精度浮点数 PLAIN、RLE、TS_2DIFF、GORILLA、FREQ DOUBLE 双精度浮点数 PLAIN、RLE、TS_2DIFF、GORILLA、FREQ TEXT 字符串 PLAIN、DICTIONARY 父主题: 使用IoTDB
  • 回答 HetuEngine计算实例的启动依赖Python文件,需确保各节点“/usr/bin/”路径下面存在Python文件。 登录FusionInsight Manager,单击“主机”,查看并记录所有主机的业务IP。 以root用户登录1记录的节点,在所有节点都执行以下命令,在“/usr/bin/”目录下添加“python3”的软连接。 cd /usr/bin ln -s python3 python 重新启动HetuEngine计算实例。
  • 返回结果 参数 描述 path_num 指定目录的子目录数量 file_num 指定目录的文件数量 storage_size 该目录的Size(bytes) storage_size(unit) 该目录的Size(KB) storage_path 指定目录的完整FS绝对路径 space_consumed 返回文件/目录在集群中占用的实际空间,即它考虑了为集群设置的复制因子 quota 名称配额(名称配额是对当前目录树中的文件和目录名称数量的硬性限制) space_quota 空间配额(空间配额是对当前目录树中的文件所使用的字节数量的硬性限制)
  • 问题 安装集群外客户端或使用集群外客户端时,有时会出现连接Spark任务端口失败的问题。 异常信息:Failed to bind SparkUi Cannot assign requested address: Service ‘sparkDriver’ failed after 16 retries (on a random free port)! Consider explicitly setting the appropriate binding address for the service ‘sparkDriver’ (for example spark.driver.bindAddress for SparkDriver) to the correct binding address.
  • 解决方法 应用无法访问到SparkUI的IP:PORT。可能有以下原因: 可能原因一:集群节点与客户端节点网络不通。 解决方法: 查看客户端节点“/etc/hosts”文件中是否配置集群节点映射,在客户端节点执行命令: ping sparkui的IP 如果ping不通,检查映射配置与网络设置。 可能原因二:客户端节点防火墙未关闭。 解决方法: 执行如下命令可查看是否关闭: systemctl status firewalld(不同的操作系统查询命令不一致,此命令以CentOS为例) 如下图所示:dead表示关闭。 防火墙开则影响通信,执行如下命令关闭防火墙: service firewalld stop(不同的操作系统查询命令不一致,此命令以CentOS为例) 可能原因三:端口被占用,每一个Spark任务都会占用一个SparkUI端口,默认为22600,如果被占用则依次递增端口重试。但是有个默认重试次数,为16次。16次重试都失败后,会放弃该任务的运行。 查看端口是否被占用: ssh -v -p port username@ip 如果输出“Connection established”,则表示连接成功,端口已被占用。 Spark UI端口范围由配置文件spark-defaults.conf中的参数“spark.random.port.min”和“spark.random.port.max”决定,如果该范围端口都已被占用,则 导致无端口可用从而连接失败。 解决方法:调节重连次数spark.port.maxRetries=50,并且调节executor随机端口范围spark.random.port.max+100 可能原因四:客户端Spark配置参数错误。 解决方法: 在客户端节点执行命令cat spark-env.sh,查看SPARK_LOCAL_HOSTNAME,是否为本机IP。 该问题容易出现在从其他节点直接复制客户端时,配置参数未修改。 需修改SPARK_LOCAL_HOSTNAME为本机IP。 注:如果集群使用EIP通信,则需要设置以下参数。 spark-default.conf中添加spark.driver.host = EIP(客户端节点弹性公网IP) spark-default.conf中添加spark.driver.bindAddress=本地IP spark-env.sh中修改SPARK_LOCAL_HOSTNAME=EIP(客户端节点弹性公网IP) 可能原因五:代码问题。 解决方法: Spark在启动任务时会在客户端创建sparkDriverEnv并绑定DRIVER_BIND_ADDRESS,该逻辑并没有走到服务端,所以该问题产生的原因也是客户端节点操作系统环境问题导致sparkDriver获取不到对应的主机IP。 可以尝试设置spark.driver.bindAddress=127.0.0.1,使提交任务driver端可以加载到loopbackAddress,从而规避问题。
  • 约束 支持在Hudi客户端执行Spark SQL操作Hudi。 支持在Spark2x的JD BCS erver中执行Spark SQL操作Hudi。 不支持在Spark2x的客户端执行Spark SQL操作Hudi,支持在Spark3.1.1及之后版本的客户端执行Spark SQL操作Hudi。 不支持在Hive、Hetu引擎中写hudi表,以及修改hudi表结构,仅支持读。 由于SQL的KeyGenerator默认是org.apache.hudi.keygen.ComplexKeyGenerator,要求DataSource方式写入时KeyGenerator与SQL设置的一致。
  • 操作场景 默认情况下关闭HDFS文件时需要等待所有的Block都上报成功(处于COMPLETED状态)。因此HDFS的一部分写性能消耗为等待DataNode块上报以及NameNode处理块上报。对于一个负载较大的集群,等待的消耗对集群影响较大。HDFS可以通过配置NameNode参数“dfs.namenode.file.close.num-committed-allowed”来提前关闭文件,提升写数据性能。但是由于提前关闭了文件,可能在读取数据的时候由于块找不到或者NameNode元数据中记录的数据块信息和DataNode中存储的真实副本不一致而失败。因此该特性不适用于写完数据即读的场景,请结合业务场景谨慎使用该特性。 该功能适用于MRS 3.2.0-LTS.1及之后版本。
  • 操作场景 TimelineServer作为Yarn服务的一个角色,当前版本开始支持HA模式。如果需要避免TimelineServer单点故障问题,可以通过开启TimelineServer HA来确保Yarn TimelineServer角色的高可用性。 TimelineServer会将数据保存到内存数据库LevelDB中,占用大量内存,安装TimelineServer的节点内存至少需要预留30GB。 该功能适用于MRS 3.2.0-LTS.1及之后版本。
  • 容量规格 ConfigNode容量规格 当创建新的存储组时,IoTDB默认为该存储组分配10000个槽位,数据写入时根据写入的设备名和时间值,分配或创建一个data region并挂载在某个槽位上。所以ConfigNode的内存容量占用跟存储组个数和该存储组持续写入的时间相关。 槽位分配相关对象 对象大小(字节) TTimePartitionSlot 4 TSeriesPartitionSlot 8 TConsensusGroupId 4 根据上表计算可得一个ConfigNode,如果创建一个存储组,持续运行10年,大约需要0.68G内存 : 10000(槽位) * 10(年)* 53 (分区) * (TTimePartitionSlot size + TSeriesPartitionSlot size + TConsensusGroupId size)= 0.68G IoTDBServer容量规格 IoTDB中数据以region分配在IoTDBServer上,region副本数默认是“3”,最终在IoTDBServer文件系统上表现为3个文件。上限为操作系统可存储文件个数最大值,对于Linux系统即是inode个数。
  • 前提条件 集群已安装CDL、Hudi服务且运行正常。 ThirdKafka数据库的Topic需要能被MRS集群消费,操作步骤请参考ThirdPartyKafka前置准备。 在FusionInsight Manager中创建一个人机用户,例如“cdluser”,加入用户组cdladmin、hadoop、kafka、supergroup,主组选择“cdladmin”组,关联角色“System_administrator”。
  • 使用方法 配置Flink作业时,可通过在FlinkServer Web UI的作业开发界面添加自定义参数“over.window.interval”,且值配置为大于或等于“0”时开启窗口支持数据超期功能,创建作业可参考如何创建FlinkServer作业。该设置会对作业中的所有over窗口生效,建议对单over窗口的作业使用此功能。 SQL示例: CREATE TABLE OverSource ( `rowtime` TIMESTAMP_LTZ(3), `groupId` INT, `value` INT, `name` STRING, `additional_field` STRING, `proctime` as PROCTIME(), WATERMARK FOR rowtime AS rowtime) WITH ( 'connector' = 'kafka', 'topic' = 'test_source', 'properties.bootstrap.servers' = 'Kafka的Broker实例业务IP:Kafka端口号', 'properties.group.id' = 'testGroup', 'scan.startup.mode' = 'latest-offset', 'format' = 'csv', 'properties.sasl.kerberos.service.name' = 'kafka', --FlinkServer所在集群为非安全模式去掉此参数 'properties.security.protocol' = 'SASL_PLAINTEXT', --FlinkServer所在集群为非安全模式去掉此参数 'properties.kerberos.domain.name' = 'hadoop.系统 域名 ' --FlinkServer所在集群为非安全模式去掉此参数);CREATE TABLE LD_SINK( `name` STRING, `groupId` INT, `rowtime` TIMESTAMP_LTZ(3),`count_zw` BIGINT,`sum_zw` BIGINT) WITH ( 'connector' = 'print');SELECT `name`, `groupId`, COUNT(`value`) OVER ( PARTITION BY groupId ORDER BY proctime RANGE BETWEEN INTERVAL '10' second PRECEDING AND CURRENT ROW ) as count_zw, SUM(`value`) OVER ( PARTITION BY groupId ORDER BY proctime RANGE BETWEEN INTERVAL '10' second PRECEDING AND CURRENT ROW ) as sum_zwFROM OverSource
  • 回答 使用当前可得的最近的tablestatus文件进行恢复,分为如下两个场景来进行恢复: 场景一:当前批次的CarbonData数据文件和.segment文件损坏无法恢复。 进入客户端节点,执行如下命令,查看HDFS对应表的tablestatus文件,找到最近的tablestatus版本号。 cd 客户端安装路径 source bigdata_env source Spark/component_env kinit 组件业务用户 (普通集群无需执行kinit命令) hdfs dfs -ls /user/hive/warehouse/hrdb.db/car01/Metadata 上图中,当前批次文件tablestatus_1669028899548损坏,需要使用tablestatus_1669028852132文件。 进入spark sql,执行如下命令来修改表属性latestversion为当前最近的版本号。 alter table car01 set SERDEPROPERTIES ('latestversion'='1669082252132'); 需要退出当前session,重新连接后执行查询。该方式已尽可能恢复客户数据,一般现网情况下,如断电场景segment数据文件也会存在不可恢复情况。 场景二:当前批次的Carbondata数据文件和.segment文件完整,可恢复。 使用TableStatusRecovery恢复工具,当前工具仅针对非分区表进行恢复。进入Spark客户端节点,执行如下命令: cd 客户端安装路径 source bigdata_env source Spark/component_env kinit 组件业务用户 (普通集群无需执行kinit命令) spark-submit --master yarn --class org.apache.carbondata.recovery.tablestatus.TableStatusRecovery Spark/spark/carbonlib/carbondata-spark_*.jar hrdb car01 参数说明:hrdb car01表名称。 TableStatusRecovery恢复工具限制: 合并后,如果tablestatus文件丢失或损坏,使用该工具无法恢复合并状态的segment,因为丢失或损坏的tablestatus文件才存在该segment合并信息。 Delete segment by Id/Date后,如果tablestatus文件丢失或损坏,则无法恢复已删除的segment信息,因为只有丢失或损坏的tablestatus文件才存在该segment的删除信息。 不支持在mv表上使用该工具。 由于最新的tablestatus文件存在问题,使用该工具恢复后无法正常查询时,可以移除最新的tablestatus文件,使用上一个tablestatus文件进行恢复。
  • 前提条件 在FusionInsight Manager创建一个角色,添加ClickHouse逻辑集群的管理权限以及Loader作业分组权限。创建Loader作业的业务用户,关联该角色和并添加用户组yarnviewgroup。 ClickHouse表已创建,确保用户已授权访问作业执行时操作该表的权限,参照ClickHouse客户端使用实践创建本地复制表和分布式表,导出时选择本地复制表。 确保没有出现ClickHouse相关告警。
  • 前提条件 需要MRS集群已安装HetuEngine组件并添加HSFabric实例。HSFabric实例的新增,删除,迁移和端口的修改,都需要重启Hue服务。 已在集群中创建HetuEngine管理员“人机”用户,如hetu_user,可参考创建HetuEngine权限角色。启用Ranger鉴权的集群需根据业务需求为该hetu_user添加Ranger权限,可参考添加HetuEngine的Ranger访问权限策略。 已创建计算实例并运行正常,可参考创建HetuEngine计算实例。
共100000条
提示

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