华为云用户手册

  • 响应参数 属性名 类型 属性说明 error_msg String 返回信息【失败时,会记录失败原因】 error_code String 返回码 session_token String 刷新后的新session_token 响应示例 正确示例 {"session_token": "*****"} 错误示例 {"error_msg": "The system is busy. Please try again later.","error_code": " OneAccess .1009"}
  • 请求参数(post Body) 参数名 类型 描述 是否必须 示例值 session_token String 登录成功返回的token 是 ****** operating_sys_version String 调用方操作系统版本 是 windows10.1.1 device_ip String 调用方设备ip 是 192.168.1.1 device_fingerprint String 调用方设备指纹 是 ****** agent String User-Agent信息 否 agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36 请求示例 POST https://bc.bccastle.com/api/v2/tenant/sso/session-token/sso-ticket{"session_token":"******","operating_sys_version":"windows10.1.1","device_ip":"192.168.1.1","device_fingerprint":"******","agent":"agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"}
  • 响应参数 表2 响应Body参数 参数 参数类型 描述 access_token String 授权服务器返回给第三方应用的访问令牌。 token_type String 访问令牌类型。固定值:Bearer。 expires_in Long 访问令牌的有效期,以秒为单位。 scope refresh_token String String 授权范围。 refresh_token String 刷新令牌,默认生成,有效期30天。 error String 错误类型。 error_description String 错误描述。 refresh_token有效期设置应比access_token长。
  • 请求参数 表1 FormUrlEncoded参数 参数 是否必选 参数类型 描述 client_id 是 String 应用标识,注册应用后,分配的ClientId。 client_secret 是 String 应用密钥,注册应用后,分配的ClientSecret。(解密后的明文) code 是 String 授权码,认证登录后回调获取的授权码。 grant_type 是 String 授权类型,固定值:authorization_code。 redirect_uri 否 String 回调地址,注册应用时填写的回调地址。 请求示例 POST {domain_name}/api/v1/oauth2/tokenContent-Type: application/x-www-form-urlencodedcode=z2D...&client_id=NzZeWuiJa91dPSRdZQChMazIh13AW...&client_secret=******...&redirect_uri=https://example.com&grant_type=authorization_code
  • 请求参数 表1 FormUrlEncoded参数 参数 是否必选 参数类型 描述 client_id 是 String 应用标识,注册应用后,分配的ClientId。 client_secret 是 String 应用密钥,注册应用后,分配的ClientSecret。 grant_type 是 String 授权类型,固定值:refresh_token。 refresh_token 是 String 刷新令牌,获取Access Token接口中返回。 请求示例 POST {domain_name}/api/v1/oauth2/tokenContent-Type: application/x-www-form-urlencodedclient_id=NzZeWuiJa91dPSRdZQChMazIh13AW...&client_secret=******...&refresh_token=******...&grant_type=refresh_token
  • 响应参数 表2 状态码 状态码 描述 200 请求成功。 400 请求错误。 状态码:200 表3 响应Body参数 参数 参数类型 描述 access_token String 授权服务器返回给第三方应用的访问令牌。 token_type String 访问令牌类型。固定值:Bearer。 expires_in Long 访问令牌的有效期,以秒为单位。 scope String 授权范围。 refresh_token String 刷新令牌。 状态码:400 表4 响应Body参数 参数 参数类型 描述 error String 错误类型。 error_description String 错误描述。
  • 在线生成SDK代码 API Explorer 能根据需要动态生成SDK代码功能,降低您使用SDK的难度,推荐使用。 您可以在API Explorer中具体API页面的“代码示例”页签查看对应编程语言类型的SDK代码,如图1所示。 图1 获取SDK代码示例 当您在中间的填充栏填入对应内容时, 右侧代码示例栏会自动拼装参数到代码中供您进行使用。 图2 设置输入参数 在场景示例中可查看本服务更详细的场景SDK使用方法。 图3 场景示例
  • SDK列表 表1提供了 MRS 服务支持的SDK列表,您可以在GitHub仓库查看SDK更新历史、获取安装包以及查看指导文档。 表1 SDK列表 编程语言 Github地址 参考文档 Java huaweicloud-sdk-java-v3 Java SDK使用指导 Python huaweicloud-sdk-python-v3 Python SDK使用指导 Go huaweicloud-sdk-go-v3 Go SDK使用指导 NodeJs huaweicloud-sdk-nodejs-v3 NodeJs SDK使用指导 PHP huaweicloud-sdk-php-v3 PHP SDK使用指导
  • Hive物化视图介绍 Hive物化视图是基于Hive内部表的查询结果得到的特殊表,物化视图可以看做一张中间表,存储实际的数据,占用物理空间。物化视图赖以建立的这些表称为物化视图的基表。 物化视图主要用于预先计算并保存表连接或聚合等耗时较多的操作的结果。在执行查询时,可以将原来基于基表查询的查询语句重写成基于物化视图查询,这样就可以避免进行join、group by等耗时的操作,从而快速的得到结果。
  • 重建物化视图 创建物化视图的时候,基表数据会填充到物化视图中,但是后续增删改基表的数据,这部分数据是不会自动的同步到物化视图中的。因此,在更新数据后,需要手动对视图进行重建。 语法 ALTER MATERIALIZED VIEW [db_name.]materialized_view_name REBUILD; 案例 alter materialized view group_mv rebuild; 当基表数据更新,而物化视图的数据未更新,则默认物化视图的状态为过期。 基于事务表创建的物化视图,可以通过descirbe语句查看物化视图是否过期。其中“Outdated for Rewriting”值为“Yes”,表示过期,值为“No”,表示未过期。
  • 查看物化视图 语法 SHOW MATERIALIZED VIEWS [IN database_name] ['identifier_with_wildcards’]; DESCRIBE [EXTENDED | FORMATTED] [db_name.]materialized_view_name; 案例 show materialized views; describe formatted group_mv;
  • 新建作业 访问Flink WebUI,请参考访问Flink WebUI。 单击“作业管理”进入作业管理页面。 单击“新建作业”,在新建作业页面可选择新建Flink SQL作业或Flink Jar作业,然后填写作业信息,单击“确定”,创建作业成功并进入作业开发界面。 (可选)如果需要立即进行作业开发,可以在作业开发界面进行作业配置。 新建Flink SQL作业 在作业开发界面进行作业开发。 可以单击上方“语义校验”对输入内容校验,单击“SQL格式化”对SQL语句进行格式化。 作业SQL开发完成后,请参考表1设置基础参数,还可根据需要设置自定义参数,然后单击“保存”。 表1 基础参数 参数名称 参数描述 并行度 并行数量。 算子最大并行度 算子最大的并行度。 JobManager内存(MB) JobManager的内存。输入值最小为512。 提交队列 作业提交队列。不填默认提交到default。 taskManager taskManager运行参数。该参数需配置以下内容: slot数量:不填默认是1; 内存(MB):输入值最小为512。 开启CheckPoint 是否开启CheckPoint。开启后,需配置以下内容: 时间间隔(ms):必填; 模式:必填; EXACTLY_ONCE:数据或事件仅会被算子处理一次; AT_LEAST_ONCE:数据或事件会被算子至少处理一次; 最小间隔(ms):输入值最小为10; 超时时间:输入值最小为10; 最大并发量:正整数,且不能超过64个字符; 是否清理:是/否; 是否开启增量Checkpoint:是/否。 故障恢复策略 作业的故障恢复策略,包含以下三种,详情请参考Flink重启策略。 fixed-delay:需配置“重试次数”和“失败重试间隔(s)”; failure-rate:需配置“最大重试次数”、“时间间隔(min)”和“失败重试间隔(s)”; none:无。 单击左上角“提交”提交作业。 新建Flink Jar作业 单击“选择”,上传本地Jar文件,并参考表2配置参数或添加自定义参数。 表2 参数配置 参数名称 参数描述 本地jar文件 上传jar文件。直接上传本地文件,大小不能超过10M。 Main Class Main-Class类型。 默认:默认根据Jar包文件的Mainfest文件指定类名。 指定:手动指定类名。 类名 类名。 “Main Class”选择“指定”时存在该参数。 类参数 类参数,为Main-Class的参数(参数间用空格分隔)。 并行度 并行数量。 JobManager内存(MB) JobManager的内存。输入值最小为512。 提交队列 作业提交队列。不填默认提交到default。 taskManager taskManager运行参数。该参数需配置以下内容: slot数量:不填默认是1; 内存(MB):输入值最小为512。 单击“保存”保存配置,单击“提交”提交作业。 返回作业管理页面,可以查看到已创建的作业名称、类型、状态、作业种类和描述等信息。 作业创建完成后,可在对应作业的“操作”列对作业进行启动、开发、停止、编辑、删除、查看作业详情和Checkpoint故障恢复等操作。 若要使用其他用户在节点上读取已提交的作业相关文件,需确保该用户与提交作业的用户具有相同的用户组和具有对应的FlinkServer应用管理权限角色,如参考创建FlinkServer角色勾选“应用查看”。 作业状态为“运行中”的作业可以查看作业详情。 作业状态为“运行失败”、“运行成功”和“停止”的作业可以进行Checkpoint故障恢复。
  • 新建流表 访问Flink WebUI,请参考访问Flink WebUI。 单击“流表管理”进入流表管理页面。 单击“新建流表”,在新建流表页面参考表1填写信息,单击“确定”,完成流表创建。创建完成后,可在对应流表的“操作”列对流表进行编辑、删除等操作。 图1 新建流表 表1 新建流表信息 参数名称 参数描述 备注 流/表名称 流/表的名称。 例如:flink_sink 描述 流/表的描述信息。 - 映射表类型 Flink SQL本身不带有数据存储功能,所有涉及表创建的操作,实际上均是对于外部数据表、存储的引用映射。 类型包含Kafka、HDFS。 - 类型 包含数据源表Source,数据结果表Sink。不同映射表类型包含的表如下所示。 Kafka:Source、Sink HDFS:Source、Sink - 数据连接 选择数据连接。 - Topic 读取的Kafka的topic,支持从多个Kakfa topic中读取,topic之间使用英文分隔符进行分隔。 “映射表类型”选择“Kafka”时存在此参数。 - 文件路径 要传输的HDFS目录或单个文件路径。 “映射表类型”选择“HDFS”时存在此参数。 例如: “/user/sqoop/ ”或“/user/sqoop/example.csv” 编码 选择不同“映射表类型”对应的编码如下: Kafka: CS V、JSON HDFS:CSV - 前缀 “映射表类型”选择“Kafka”,且“类型”选择“Source”,“编码”选择“JSON”时含义为:多层嵌套json的层级前缀,使用英文逗号(,)进行分隔。 例如:data,info表示取嵌套json中data,info下的内容,作为json格式数据输入 分隔符 选择不同“映射表类型”对应的含义为:用于指定CSV字段分隔符。当数据“编码”为“CSV”时存在此参数。 例如:“,” 行分隔符 文件中的换行符,包含“\r”、“\n”、“\r\n”。 “映射表类型”选择“HDFS”时存在此参数。 - 列分隔符 文件中的字段分隔符。 “映射表类型”选择“HDFS”时存在此参数。 例如:“,” 流/表结构 填写流/表结构,包含名称,类型。 - Proctime 指系统时间,与数据本身的时间戳无关,即在Flink算子内计算完成的时间。 “类型”选择“Source”时存在此参数。 - Event Time 指事件产生的时间,即数据产生时自带时间戳。 “类型”选择“Source”时存在此参数。 -
  • Flink WebUI特点 Flink WebUI主要有以下特点: 企业级可视化运维:运维管理界面化、作业监控、作业开发Flink SQL标准化等。 快速建立集群连接:通过集群连接功能配置访问一个集群,需要客户端配置、用户认证密钥文件。 快速建立数据连接:通过数据连接功能配置访问一个组件。创建“数据连接类型”为“HDFS”类型时需创建集群连接,其他数据连接类型的“认证类型”为“KERBEROS”需创建集群连接,“认证类型”为“SIMPLE”不需创建集群连接。 “数据连接类型”为“Kafka”时,认证类型不支持“KERBEROS”。 可视化开发平台:支持自定义输入/输出映射表,满足不同输入来源、不同输出目标端的需求。 图形化作业管理:简单易用。
  • Flink WebUI关键能力 FlinkWebUI关键能力如表1: 表1 Flink WebUI关键能力 关键能力分类 描述 批流一体 支持一套Flink SQL定义批作业和流作业。 Flink SQL内核能力 Flink SQL支持自定义大小窗、24小时以内流计算、超出24小时批处理。 Flink SQL支持Kafka、HDFS读取;支持写入Kafka和HDFS。 支持同一个作业定义多个Flink SQL,多个指标合并在一个作业计算。当一个作业是相同主键、相同的输入和输出时,该作业支持多个窗口的计算。 支持AVG、SUM、COUNT、MAX和MIN统计方法。 Flink SQL可视化定义 集群连接管理,配置Kafka、HDFS等服务所属的集群信息。 数据连接管理,配置Kafka、HDFS等服务信息。 数据表管理,定义Sql访问的数据表信息,用于生成DDL语句。 Flink SQL作业定义,根据用户输入的Sql,校验、解析、优化、转换成Flink作业并提交运行。 Flink作业可视化管理 支持可视化定义流作业和批作业。 支持作业资源、故障恢复策略、Checkpoint策略可视化配置。 流作业和批作业的状态监控。 Flink作业运维能力增强,包括原生监控页面跳转。 性能&可靠性 流处理支持24小时窗口聚合计算,毫秒级性能。 批处理支持90天窗口聚合计算,分钟级计算完成。 支持对流处理和批处理的数据进行过滤配置,过滤无效数据。 读取HDFS数据时,提前根据计算周期过滤。 作业定义平台故障、服务降级,不支持再定义作业,但是不影响已有作业计算。 作业故障有自动重启机制,重启策略可配置。
  • Flink WebUI应用流程 Flink WebUI应用流程参考如下步骤: 图1 Flink WebUI应用流程 表2 Flink WebUI应用流程说明 阶段 说明 参考章节 创建应用 通过应用来隔离不同的上层业务。 创建应用 创建集群连接 通过集群连接配置访问不同的集群。 创建集群连接 创建数据连接 通过数据连接,访问不同的数据服务,包括HDFS、Kafka等。 创建数据连接 创建流表 通过数据表,定义源表、维表、输出表的基本属性和字段信息。 创建流表 创建SQL/JAR作业(流式/批作业) 定义Flink作业的API,包括Flink SQL和Flink Jar作业。 创建作业 作业管理 管理创建的作业,包括作业启动、开发、停止、删除和编辑等。 创建作业
  • ClickHouse表数据操作 客户端登录ClickHouse节点。例如: clickhouse client --host node-master3QsRI --multiline --port 9440 --secure; node-master3QsRI 参数为查看ClickHouse服务cluster等环境参数信息中2对应的host_name参数的值。 参考创建本地复制表和分布式表创建表后,可以插入数据到本地表。 例如插入数据到本地表:test insert into test values(toDateTime(now()), rand()); 查询本地表信息。 例如查询2中的表test数据信息: select * from test; SELECT *FROM test┌───────────EventDate─┬─────────id─┐│ 2020-11-05 21:10:42 │ 1596238076 │└──────────────── ┴───────────┘1 rows in set. Elapsed: 0.002 sec. 查询Distributed分布式表。 例如3中因为分布式表test_all基于test创建,所以test_all表也能查询到和test相同的数据。 select * from test_all; SELECT *FROM test_all┌───────────EventDate─┬─────────id─┐│ 2020-11-05 21:10:42 │ 1596238076 │└──────────────── ┴───────────┘1 rows in set. Elapsed: 0.004 sec. 切换登录节点为相同shard_num的shard节点,并且查询当前表信息,能查询到相同的表数据。 例如,退出原有登录节点:exit; 切换到节点node-group-1tXED0003: clickhouse client --host node-group-1tXED0003 --multiline --port 9440 --secure; 通过2可以看到node-group-1tXED0003和node-master3QsRI的shard_num值相同。 show tables; SHOW TABLES┌─name─────┐│ test ││ test_all │└────────┘ 查询本地表数据。例如在节点node-group-1tXED0003查询test表数据。 select * from test; SELECT *FROM test┌───────────EventDate─┬─────────id─┐│ 2020-11-05 21:10:42 │ 1596238076 │└──────────────── ┴───────────┘1 rows in set. Elapsed: 0.005 sec. 切换到不同shard_num的shard节点,并且查询之前创建的表数据信息。 例如退出之前的登录节点node-group-1tXED0003: exit; 切换到node-group-1tXED0001节点。通过2可以看到node-group-1tXED0001和node-master3QsRI的shard_num值不相同。 clickhouse client --host node-group-1tXED0001 --multiline --port 9440 --secure; 查询test本地表数据,因为test是本地表所以在不同分片节点上查询不到数据。 select * from test; SELECT *FROM testOk. 查询test_all分布式表数据,能正常查询到数据信息。 select * from test_all; SELECT *FROM test┌───────────EventDate─┬─────────id─┐│ 2020-11-05 21:12:19 │ 3686805070 │└──────────────── ┴───────────┘1 rows in set. Elapsed: 0.002 sec.
  • 查看ClickHouse服务cluster等环境参数信息 使用ClickHouse客户端连接到ClickHouse服务端,具体请参考从零开始使用ClickHouse。 查询集群标识符cluster等其他环境参数信息。 select cluster,shard_num,replica_num,host_name from system.clusters; SELECT cluster, shard_num, replica_num, host_nameFROM system.clusters┌─cluster───────────┬─shard_num─┬─replica_num─┬─host_name──────── ┐│ default_cluster_1 │ 1 │ 1 │ node-master1dOnG ││ default_cluster_1 │ 1 │ 2 │ node-group-1tXED0001 ││ default_cluster_1 │ 2 │ 1 │ node-master2OXQS ││ default_cluster_1 │ 2 │ 2 │ node-group-1tXED0002 ││ default_cluster_1 │ 3 │ 1 │ node-master3QsRI ││ default_cluster_1 │ 3 │ 2 │ node-group-1tXED0003 │└─────────────── ┴────── ┴─────── ┴──────────────┘6 rows in set. Elapsed: 0.001 sec. 查询分片标识符shard和副本标识符replica。 select * from system.macros; SELECT *FROM system.macros┌─macro───┬─substitution─────┐│ id │ 76 ││ replica │ 2 ││ shard │ 3 │└────── ┴────────────┘3 rows in set. Elapsed: 0.001 sec.
  • 创建本地复制表和分布式表 客户端登录ClickHouse节点,例如:clickhouse client --host node-master3QsRI --multiline --port 9440 --secure; node-master3QsRI 参数为查看ClickHouse服务cluster等环境参数信息中2对应的host_name参数的值。 使用ReplicatedMergeTree引擎创建复制表。 详细的语法说明请参考:https://clickhouse.tech/docs/zh/engines/table-engines/mergetree-family/replication/#creating-replicated-tables。 例如,如下在default_cluster_1集群节点上和default数据库下创建表名为test的ReplicatedMergeTree表: CREATE TABLE default.test ON CLUSTER default_cluster_1 ( `EventDate` DateTime, `id` UInt64 ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/default/test', '{replica}') PARTITION BY toYYYYMM(EventDate) ORDER BY id; 参数说明如下: ON CLUSTER语法表示分布式DDL,即执行一次就可在集群所有实例上创建同样的本地表。 default_cluster_1为查看ClickHouse服务cluster等环境参数信息中2查询到的cluster集群标识符。 ReplicatedMergeTree引擎族接收两个参数: ZooKeeper中该表相关数据的存储路径。 该路径必须在/clickhouse目录下,否则后续可能因为ZooKeeper配额不够导致数据插入失败。 为了避免不同表在ZooKeeper上数据冲突,目录格式必须按照如下规范填写: /clickhouse/tables/{shard}/default/test,其中/clickhouse/tables/{shard}为固定值,default为数据库名,test为创建的表名。 副本名称,一般用{replica}即可。 CREATE TABLE default.test ON CLUSTER default_cluster_1( `EventDate` DateTime, `id` UInt64)ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/default/test', '{replica}')PARTITION BY toYYYYMM(EventDate)ORDER BY id┌─host─────────────────┬─port─┬─status─┬─error─┬─num_hosts_remaining─┬─num_hosts_active─┐│ node-group-1tXED0002 │ 9000 │ 0 │ │ 5 │ 3 ││ node-group-1tXED0003 │ 9000 │ 0 │ │ 4 │ 3 ││ node-master1dOnG │ 9000 │ 0 │ │ 3 │ 3 │└────────────────────┴────┴─────┴──── ┴─────────── ┴──────────┘┌─host─────────────────┬─port─┬─status─┬─error─┬─num_hosts_remaining─┬─num_hosts_active─┐│ node-master3QsRI │ 9000 │ 0 │ │ 2 │ 0 ││ node-group-1tXED0001 │ 9000 │ 0 │ │ 1 │ 0 ││ node-master2OXQS │ 9000 │ 0 │ │ 0 │ 0 │└────────────────────┴────┴─────┴──── ┴─────────── ┴──────────┘6 rows in set. Elapsed: 0.189 sec. 使用Distributed引擎创建分布式表。 例如,以下将在default_cluster_1集群节点上和default数据库下创建名为test_all 的Distributed表: CREATE TABLE default.test_all ON CLUSTER default_cluster_1 ( `EventDate` DateTime, `id` UInt64 ) ENGINE = Distributed(default_cluster_1, default, test, rand()); CREATE TABLE default.test_all ON CLUSTER default_cluster_1( `EventDate` DateTime, `id` UInt64)ENGINE = Distributed(default_cluster_1, default, test, rand())┌─host─────────────────┬─port─┬─status─┬─error─┬─num_hosts_remaining─┬─num_hosts_active─┐│ node-group-1tXED0002 │ 9000 │ 0 │ │ 5 │ 0 ││ node-master3QsRI │ 9000 │ 0 │ │ 4 │ 0 ││ node-group-1tXED0003 │ 9000 │ 0 │ │ 3 │ 0 ││ node-group-1tXED0001 │ 9000 │ 0 │ │ 2 │ 0 ││ node-master1dOnG │ 9000 │ 0 │ │ 1 │ 0 ││ node-master2OXQS │ 9000 │ 0 │ │ 0 │ 0 │└────────────────────┴────┴─────┴──── ┴─────────── ┴──────────┘6 rows in set. Elapsed: 0.115 sec. Distributed引擎需要以下几个参数: default_cluster_1为查看ClickHouse服务cluster等环境参数信息中2查询到的cluster集群标识符。 default本地表所在的数据库名称。 test为本地表名称,该例中为2中创建的表名。 (可选的)分片键(sharding key) 该键与config.xml中配置的分片权重(weight)一同决定写入分布式表时的路由,即数据最终落到哪个物理表上。它可以是表中一列的原始数据(如site_id),也可以是函数调用的结果,如上面的SQL语句采用了随机值rand()。注意该键要尽量保证数据均匀分布,另外一个常用的操作是采用区分度较高的列的哈希值,如intHash64(user_id)。
  • 配置Spark2x 使用SparkSql编辑器之前需要先修改Spark2x配置。 进入Spark2x的全部配置页面,具体操作请参考修改集群服务配置参数。 设置Spark2x多实例模式,搜索并修改Spark2x服务的以下参数: 参数名称 值 spark.thriftserver.proxy.enabled false spark.scheduler.allocation.file #{conf_dir}/fairscheduler.xml 进入JD BCS erver2x自定义界面,在“spark.core-site.customized.configs”参数内,添加如下两个自定义项: 表1 自定义参数 名称 值 hadoop.proxyuser.hue.groups * hadoop.proxyuser.hue.hosts * 保存配置,重启Spark2x服务。
  • 执行SparkSql语句 在“Database”右侧下拉列表选择一个SparkSql中的数据库,默认数据库为“default”。 系统将自动显示数据库中的所有表。可以输入表名关键字,系统会自动搜索包含此关键字的全部表。 图1 选择数据库 单击指定的表名,可以显示表中所有的列。 光标移动到表所在的行,单击 可以查看列的详细信息。 在SparkSql语句编辑区输入查询语句。 单击后的三角并选择“解释”,编辑器将分析输入的查询语句是否有语法错误以及执行计划,如果存在语法错误则显示“Error while compiling statement”。 单击开始执行SparkSql语句。 图2 执行语句 如果希望下次继续使用已输入的SparkSql语句,请单击保存。 高级查询配置: 单击右上角的,对文件、功能、设置等信息进行配置。 查看快捷键: 单击右上角的,可查看语法和键盘快捷方式信息。 格式化SparkSql语句,请单击后的三角选择“格式” 删除已输入的SparkSql语句,请单击后的三角选择“清除” 查看历史: 单击“查询历史记录”,可查看SparkSql运行情况,支持显示所有语句或只显示保存的语句的运行情况。历史记录存在多个结果时,可以在输入框使用关键字进行搜索。
  • 工具使用 下载安装客户端,例如安装目录为“/opt/client”。进入 目录“/opt/client/Spark2x/spark/bin”, 执行start-prequery.sh。 参考表1,配置prequeryParams.properties。 表1 参数列表 参数 说明 示例 spark.prequery.period.max.minute 预热的最大时长,单位分钟 60 spark.prequery.tables 表名配置database.table:int,表名支持通配符*,int代表预热多长时间内有更新的表,单位为天。 default.test*:10 spark.prequery.maxThreads 预热时并发的最大线程数 50 spark.prequery.sslEnable 集群安全模式为true,非安全模式为false true spark.prequery.driver JDBCServer的地址ip:port,如需要预热多个Server则需填写多个Server的IP,多个IP:port用逗号隔开。 192.168.0.2:22550 spark.prequery.sql 预热的sql语句,不同语句冒号隔开 SELECT COUNT(*) FROM %s;SELECT * FROM %s LIMIT 1 spark.security.url 安全模式下jdbc所需url ;saslQop=auth-conf;auth=KERBEROS;principal=spark2x/hadoop.hadoop.com@HADOOP.COM; spark.prequery.sql 配置的语句在每个所预热的表中都会执行,表名用%s代替。 脚本使用 命令形式:sh start-prequery.sh 执行此条命令需要:将user.keytab或jaas.conf(二选一),krb5.conf(必须)放入conf目录中。 此工具暂时只支持Carbon表。 此工具会初始化Carbon环境和预读取表的元数据到JDBCServer,所以更适合在多主实例、静态分配模式下使用。
  • 使用限制 将策略更改为LOCAL_AZ与更改为ONE_AZ相同,因为上传文件写入时无法确定写入期间的客户端位置。 Mover无法确定AZ的状态,因此可能会导致将副本移动到异常的AZ,并依赖NameNode来进一步处理。 Mover依赖于每个AZ的DataNode节点数达到最小要求,如果在一个DataNode节点数很少的AZ执行,可能会导致与预期不同的结果。 Mover只满足AZ级别的策略,并不保证满足基本BPP。 Mover不支持更改复制因子,新旧AZ策略之间的副本计数差异会导致异常结果。
  • 问题 添加HBase的Ranger访问权限策略时,在策略中使用通配符搜索已存在的HBase表时,搜索不到已存在的表,并且在/var/log/Bigdata/ranger/rangeradmin/ranger-admin-*log中报以下错误 Caused by: javax.security.sasl.SaslException: No common protection layer between client and serverat com.sun.security.sasl.gsskerb.GssKrb5Client.doFinalHandshake(GssKrb5Client.java:253)at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:186)at org.apache.hadoop.hbase.security.AbstractHBaseSaslRpcClient.evaluateChallenge(AbstractHBaseSaslRpcClient.java:142)at org.apache.hadoop.hbase.security.NettyHBaseSaslRpcClientHandler$2.run(NettyHBaseSaslRpcClientHandler.java:142)at org.apache.hadoop.hbase.security.NettyHBaseSaslRpcClientHandler$2.run(NettyHBaseSaslRpcClientHandler.java:138)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:422)at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1761)at org.apache.hadoop.hbase.security.NettyHBaseSaslRpcClientHandler.channelRead0(NettyHBaseSaslRpcClientHandler.java:138)at org.apache.hadoop.hbase.security.NettyHBaseSaslRpcClientHandler.channelRead0(NettyHBaseSaslRpcClientHandler.java:42)at org.apache.hbase.thirdparty.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)at org.apache.hbase.thirdparty.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
  • 回答 Ranger界面上HBase服务插件的“hbase.rpc.protection”参数值和HBase服务端的“hbase.rpc.protection”参数值必须保持一致。 参考登录Ranger管理界面章节,登录Ranger管理界面。 在首页中“HBASE”区域,单击组件插件名称,如HBase的按钮 搜索配置项“hbase.rpc.protection”,修改配置项的value值,与HBase服务端的“hbase.rpc.protection”的值保持一致。 单击“保存”。
  • Hive SQL Hive SQL支持Hive-3.1.0版本中的所有特性,详情请参见https://cwiki.apache.org/confluence/display/hive/languagemanual。 系统提供的扩展Hive语句如表1所示。 表1 扩展Hive语句 扩展语法 语法说明 语法示例 示例说明 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name (col_name data_type [COMMENT col_comment], ...) [ROW FORMAT row_format] [STORED AS file_format] | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...) ] ...... [TBLPROPERTIES ("groupId"=" group1 ","locatorId"="locator1")] ...; 创建一个hive表,并指定表数据文件分布的locator信息。详细说明请参见使用HDFS Colocation存储Hive表。 CREATE TABLE tab1 (id INT, name STRING) row format delimited fields terminated by '\t' stored as RCFILE TBLPROPERTIES("groupId"=" group1 ","locatorId"="locator1"); 创建表tab1,并指定tab1的表数据分布在locator1节点上。 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name (col_name data_type [COMMENT col_comment], ...) [ROW FORMAT row_format] [STORED AS file_format] | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...) ] ... [TBLPROPERTIES ('column.encode.columns'='col_name1,col_name2'| 'column.encode.indices'='col_id1,col_id2', 'column.encode.classname'='encode_classname')]...; 创建一个hive表,并指定表的加密列和加密算法。详细说明请参见使用Hive列加密功能。 create table encode_test(id INT, name STRING, phone STRING, address STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ('column.encode.indices'='2,3', 'column.encode.classname'='org.apache.hadoop.hive.serde2. SMS 4Rewriter') STORED AS TEXTFILE; 创建表encode_test,并指定插入数据时对第2、3列加密,加密算法类为org.apache.hadoop.hive.serde2.SMS4Rewriter。 REMOVE TABLE hbase_tablename [WHERE where_condition]; 删除hive on hbase表中符合条件的数据。详细说明请参见删除Hive on HBase表中的单行记录。 remove table hbase_table1 where id = 1; 删除表中符合条件“id =1”的数据。 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name (col_name data_type [COMMENT col_comment], ...) [ROW FORMAT row_format] STORED AS inputformat 'org.apache.hadoop.hive.contrib.fileformat.SpecifiedDelimiterInputFormat' outputformat 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'; 创建hive表,并设定表可以指定自定义行分隔符。详细说明请参见自定义行分隔符。 create table blu(time string, num string, msg string) row format delimited fields terminated by ',' stored as inputformat 'org.apache.hadoop.hive.contrib.fileformat.SpecifiedDelimiterInputFormat' outputformat 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'; 创建表blu,指定inputformat为SpecifiedDelimiterInputFormat,以便查询时可以指定表的查询行分隔符。 父主题: 使用Hive
  • 配置方法 导出集群中的证书: 安装集群客户端,例如安装路径为“/opt/client”。 执行以下命令,切换到客户端安装目录。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 生成证书文件 keytool -export -alias fusioninsightsubroot -storepass changeit -keystore /opt/client/JRE/jre/lib/security/cacerts -file fusioninsightsubroot.crt 将集群中的证书导入第三方JDK或者JRE中 将1中生成的fusioninsightsubroot.crt文件拷贝到第三方JRE节点上,设置好该节点的JAVA_HOME环境变量后,执行以下命令导入证书: keytool -import -trustcacerts -alias fusioninsightsubroot -storepass changeit -file fusioninsightsubroot.crt -keystore MY_JRE/lib/security/cacerts 'MY_JRE'表示第三方JRE安装路径,请自行修改。
  • 回答 这是一种误操作的异常情况,需要手动删除对应表的元数据后重试。 例如: 执行以下命令进入控制台: source ${BIGDATA_HOME}/ FusionInsight _BASE_8.1.0.1/install/FusionInsight-dbservice-2.7.0/.dbservice_profile gsql -p 20051 -U hive -d hivemeta -W HiveUser@ 执行 delete from tbls where tbl_id='xxx';
  • 回答 由于Hive使用Tez引擎在执行union语句时,生成的输出文件会存在HIVE_UNION_SUBDIR目录,切回Mapreduce引擎后默认不读取目录下的文件,所以没有读取到HIVE_UNION_SUBDIR目录下的数据。 此时可以设置参数set mapreduce.input.fileinputformat.input.dir.recursive=true,开启union优化,决定是否读取目录下的数据。
  • 迁移方案概览 本次迁移目标是将Spark1.5的CarbonData表数据迁移到Spark2x的CarbonData表中。 执行本操作前需要将spark1.5的carbondata表入库业务中断,将数据一次性迁移至spark2x的carbondata表,完成迁移后使用spark2x进行业务操作。 迁移思路: 先通过Spark1.5将历史数据迁移至中间表。 再通过Spark2x将中间表的数据迁移至目标表,然后将目标表名修改为原表名。 迁移完成后使用Spark2x操作CarbonData表中的数据。
共100000条