华为云用户手册

  • Flink WebUI特点 Flink WebUI主要有以下特点: 企业级可视化运维:运维管理界面化、作业监控、作业开发Flink SQL标准化等。 图1 可视化运维 快速建立集群连接:通过集群连接功能配置访问一个集群,需要客户端配置、用户认证密钥文件。 快速建立数据连接:通过数据连接功能配置访问一个组件。创建“数据连接类型”为“HDFS”类型时需创建集群连接,其他数据连接类型的“认证类型”为“KERBEROS”需创建集群连接,“认证类型”为“SIMPLE”不需创建集群连接。 “数据连接类型”为“Kafka”时,认证类型不支持“KERBEROS”。 可视化开发平台:支持自定义输入/输出映射表,满足不同输入来源、不同输出目标端的需求。 图形化作业管理:简单易用。 图2 图形化作业管理
  • Flink WebUI应用流程 Flink WebUI应用流程参考如下步骤: 图3 Flink WebUI应用流程 表2 Flink WebUI应用流程说明 阶段 说明 参考章节 创建应用 通过应用来隔离不同的上层业务。 创建FlinkServer应用 创建集群连接 通过集群连接配置访问不同的集群。 创建FlinkServer集群连接 创建数据连接 通过数据连接,访问不同的数据服务,包括HDFS、Kafka等。 创建FlinkServer数据连接 创建流表 通过数据表,定义源表、维表、输出表的基本属性和字段信息。 创建FlinkServer流表源 创建SQL/JAR作业(流式/批作业) 定义Flink作业的API,包括Flink SQL和Flink Jar作业。 如何创建FlinkServer作业 作业管理 管理创建的作业,包括作业启动、开发、停止、删除和编辑等。 如何创建FlinkServer作业
  • 前提条件 HDFS和Oozie组件安装完成且运行正常,客户端安装成功。 如果当前客户端为旧版本,需要重新下载和安装客户端。 已创建或获取访问Oozie服务的人机用户账号及密码。 该用户需要从属于hadoop、supergroup、hive组,同时添加Oozie的角色操作权限。如果使用Hive多实例,该用户还需要从属于具体的Hive实例组,如hive3。 用户同时还需要至少有manager_viewer权限的角色。
  • 操作场景 用户需要使用图形化界面在集群中创建或查询HBase表时,可以通过Hue完成任务。 如需在Hue WebUI中操作HBase,当前 MRS 集群中必须部署HBase的Thrift1Server实例。 Thrift1Server实例默认不会安装,用户可在创建自定义类型的MRS集群时,选择HBase组件并通过调整集群自定义拓扑,添加Thrift1Server实例,详情请参考购买自定义拓扑集群。 如果当前集群支持手动添加服务,也可以在首次添加HBase服务时,选择部署Thrift1Server实例,服务添加成功后,需重启Hue服务,详情请参考添加服务。
  • 执行SparkSql语句 在“Database”右侧下拉列表选择一个SparkSql中的数据库,默认数据库为“default”。 系统将自动显示数据库中的所有表。可以输入表名关键字,系统会自动搜索包含此关键字的全部表。 图1 选择数据库 单击指定的表名,可以显示表中所有的列。 光标移动到表所在的行,单击 可以查看列的详细信息。 在SparkSql语句编辑区输入查询语句。 单击后的三角并选择“解释”,编辑器将分析输入的查询语句是否有语法错误以及执行计划,如果存在语法错误则显示“Error while compiling statement”。 单击开始执行SparkSql语句。 图2 执行语句 如果希望下次继续使用已输入的SparkSql语句,请单击保存。 高级查询配置: 单击右上角的,对文件、功能、设置等信息进行配置。 查看快捷键: 单击右上角的,可查看语法和键盘快捷方式信息。 格式化SparkSql语句,请单击后的三角选择“格式” 删除已输入的SparkSql语句,请单击后的三角选择“清除” 查看历史: 单击“查询历史记录”,可查看SparkSql运行情况,支持显示所有语句或只显示保存的语句的运行情况。历史记录存在多个结果时,可以在输入框使用关键字进行搜索。
  • 配置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服务。
  • 工具使用 下载安装客户端,例如安装目录为“/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 JDB CS erver的地址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,所以更适合在多主实例、静态分配模式下使用。
  • 回答 Ranger界面上HBase服务插件的“hbase.rpc.protection”参数值和HBase服务端的“hbase.rpc.protection”参数值必须保持一致。 参考登录Ranger WebUI界面章节,登录Ranger管理界面。 在首页中“HBASE”区域,单击组件插件名称,如HBase的按钮 搜索配置项“hbase.rpc.protection”,修改配置项的value值,与HBase服务端的“hbase.rpc.protection”的值保持一致。 单击“保存”。
  • 问题 添加HBase的Ranger访问权限策略时,在策略中使用通配符搜索已存在的HBase表时,搜索不到已存在的表,并且在/var/log/Bigdata/ranger/rangeradmin/ranger-admin-*log中报以下错误 Caused by: javax.security.sasl.SaslException: No common protection layer between client and server at 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)
  • GAUSSDB数据类型映射 GAUSSDB数据类型(data type) HetuEngine数据类型(data type) BOOLEAN BOOLEAN TINYINT TINYINT SMALLINT SMALLINT INTEGER INTEGER BINARY_INTEGER INTEGER BIGINT BIGINT SMALLSERIAL SMALLINT SERIAL INTEGER BIGSERIAL BIGINT FLOAT4 (REAL) REAL FLOAT8(DOUBLE PRECISION) DOUBLE PRECISION DECIMAL[p (,s)] DECIMAL[p (,s)] NUMERIC[p (,s)] DECIMAL[p (,s)] CHAR(n) CHAR(n) CHARACTER(n) CHAR(n) NCHAR(n) CHAR(n) VARCHAR(n) VARCHAR(n) CHARACTER VARYING(55) VARCHAR(n) VARCHAR2(n) VARCHAR(n) NVARCHAR2(n) VARCHAR TEXT(CLOB) VARCHAR DATE TIMESTAMP TIMESTAMP TIMESTAMP UUID UUID JSON JSON
  • 添加GAUSSDB数据源前提条件 数据源所在集群与HetuEngine集群节点网络互通。 在HetuEngine所在集群的所有节点的“/etc/hosts”文件中,添加待对接数据源所在集群的主机名称和对应的IP映射,及其“/etc/hosts”文件中的“10.10.10.10 hadoop.系统 域名 ”(如“10.10.10.10 hadoop.hadoop.com”),否则HetuEngine无法根据主机名称连接到非本集群节点。 已创建HetuEngine计算实例。
  • 添加GAUSSDB数据源约束 不支持如下语法:GRANT、REVOKE、SHOW GRANTS、SHOW ROLES、SHOW ROLE GRANTS。 UPDATE和DELETE语法不支持筛选条件子句中包含跨catalog的条件,例如:UPDATE mppdb.table SET column1=value WHERE column2 IN (SELECT column2 from hive.table)。 UPDATE语法不支持更新DATE/TIMESTAMP/VARBINARY字段。 不支持查询WHERE语句条件为REAL,例如SELECT * FROM mppdb.table WHERE column1 = REAL '1.1'。 DELETE语法不支持筛选条件子句中包含子查询,例如:DELETE FROM mppdb.table WHERE column IN (SELECT column FROM mppdb.table1)。 HetuEngine支持 GaussDB 数据源Decimal/Number/Numeric类型数据的最大精度不超过38位。 当谓词的前后两端任意一端包含子查询时,该谓词不会下推,如示例语句count(*) 后面存在子查询,则不下推,但子查询中的min函数可以下推。 select count(*) from item where i_current_price = (select min(i_current_price) from item);
  • 添加HBase数据源前提条件 数据源所在集群域名与HetuEngine集群域名不能相同。 数据源所在集群与HetuEngine集群节点网络互通。 在HetuEngine所在集群的所有节点的“/etc/hosts”文件中,添加待对接数据源所在集群的主机名称和对应的IP映射,及其“/etc/hosts”文件中的“10.10.10.10 hadoop.系统域名”(如“10.10.10.10 hadoop.hadoop.com”),否则HetuEngine无法根据主机名称连接到非本集群节点。 已创建HetuEngine计算实例。
  • HBase数据类型映射 HBase是基于字节的分布式存储系统,它将所有数据类型存储为字节数组。要在HetuEngine中表示HBase数据,需要先在HetuEngine中通过创建映射表的方式为HetuEngine列限定符选择与HBase列限定符的值相匹配的数据类型。 目前HetuEngine列限定符支持以下数据类型:VARCHAR、TINYINT、SMALLINT、INTEGER、BIGINT、DOUBLE、BOOLEAN、TIME、DATE和TIMESTAMP。
  • Hive数据类型映射 目前Hive数据源支持的数据类型为:BOOLEAN、TINYINT、SMALLINT、INT、BIGINT、REAL、DOUBLE、DECIMAL、NUMERIC、DEC、VARCHAR、VARCHAR(X)、CHAR、CHAR(X)、STRING、DATE、TIMESTAMP、TIME WITH TIMEZONE、TIMESTAMP WITH TIME ZONE、TIME、ARRAY、MAP、STRUCT、ROW。
  • 性能优化 元数据缓存 Hive连接器支持元数据缓存,以便更快地提供对各种操作的元数据请求。可参考调整HetuEngine元数据缓存。 动态过滤 开启动态过滤有助于Hive连接器的Join算子的计算优化。可参考调整HetuEngine动态过滤。 带分区条件查询 建立分区表并且查询带分区过滤条件有助于过滤部分分区数据,从而提高性能。 Insert优化 通过设置“task.writer-count”的值为“1”和增大“hive.max-partitions-per-writers”的值有助于提升Insert性能。可参考调整HetuEngine INSERT写入优化。
  • 添加Hive数据源前提条件 数据源所在集群域名与HetuEngine集群域名不能相同。 数据源所在集群与HetuEngine集群节点网络互通。 在HetuEngine所在集群的所有节点的“/etc/hosts”文件中,添加待对接数据源所在集群的主机名称和对应的IP映射,及其“/etc/hosts”文件中的“10.10.10.10 hadoop.系统域名”(如“10.10.10.10 hadoop.hadoop.com”),否则HetuEngine无法根据主机名称连接到非本集群节点。 已创建HetuEngine计算实例。
  • Hive数据源介绍 HetuEngine服务在安装时已经将共部署(与HetuEngine在同一个Hadoop集群)的Hive数据源默认实现对接,数据源名称为“hive”,不可删除。部分默认配置不可修改,如数据源名称,数据源类型,服务端Principal,客户端Principal等。但当环境配置发生变化时,如修改了本集群的“本端域”域名,重启HetuEngine服务可以自动同步共部署Hive数据源的相关配置,如服务端Principal,客户端Principal。 HetuEngine目前支持对接的数据格式包括:avro、text、rctext、orc、parquet、sequencefile。 HetuEngine对接Hive数据源,不支持指定多分隔符建表,但对于在Hive数据源中指定MultiDelimitSerDe类作为序列化类来创建text数据格式的多分隔符表,可以通过HetuEngine查询,其他场景不支持。 HetuEngine对接的Hive数据源支持Hudi表重定向功能。适用于MRS 3.3.0及以后版本。该功能支持在Hive connector访问Hudi表时重定向到Hudi connector,从而使用Hudi connector高级功能。使用该功能需提前配置目标Hudi数据源,并确保Hudi数据源与当前Hive数据源的Metastore URL一致,并在Hive数据源中配置“开启Hudi重定向”参数即可。 若需要使用Hive Metastore隔离功能,需要在Hive侧配置“HIVE_METASTORE_URI_HETU”,配置完成后需要重启HetuEngine服务的HSBroke实例,刷新Hive Metastore URI信息。 本章节指导用户在HSConsole界面添加集群外部的Hive类型数据源。
  • 操作步骤 以omm用户登录到需要配置SSL的DBService节点上。 进入“$BIGDATA_HOME/ FusionInsight _BASE_x.x.x/install/FusionInsight-dbservice-2.7.0/sbin/”目录,执行以下命令: ./proceed_ha_ssl_cert.sh DBService安装目录 节点IP地址。 例如: cd $BIGDATA_HOME/FusionInsight_BASE_x.x.x/install/FusionInsight-dbservice-2.7.0/sbin/ ./proceed_ha_ssl_cert.sh $BIGDATA_HOME/FusionInsight_BASE_x.x.x/install/FusionInsight-dbservice-2.7.0 10.10.10.10 “$BIGDATA_HOME/FusionInsight_BASE_x.x.x/install/FusionInsight-dbservice-2.7.0”为DBService工作区安装目录,请按照实际环境进行修改。 进入“$BIGDATA_HOME/FusionInsight_BASE_x.x.x/install/FusionInsight-dbservice-2.7.0/ha/module/hacom/script/”目录,执行以下命令重启HA: ./stop_ha.sh ./start_ha.sh 在以上节点执行以下命令获取HA进程的“pid”: ps -ef |grep "ha.bin" |grep DBSERVICE 执行以下命令,查看协议是否全部变更为TCP: netstat -nap | grep pid | grep -v unix 是,结束操作。 否,执行2。 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 127.0.0.1:20054 0.0.0.0:* LISTEN 11896/ha.bin tcp 0 0 10.10.10.10:20052 10.10.10.14:20052 ESTABLISHED 11896/ha.bin tcp 0 0 10.10.10.10:20053 10.10.10.14:20053 ESTABLISHED 11896/ha.bin
  • 常见问题 执行连接ClickHouse组件客户端命令后,登录报错“Connection refused”。 请检查当前集群是否为定制端口(在创建集群时将“组件端口”参数选择为“定制”),如果为定制端口,则需要将连接ClickHouse组件客户端命令中所使用的端口替换为下表中的“定制默认端口”。 配置参数 开源默认端口 定制默认端口 端口说明 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通信端口号。
  • 创建本地复制表和分布式表 使用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等环境参数信息中查询到的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等环境参数信息中查询到的cluster集群标识符。 default本地表所在的数据库名称。 test为本地表名称。 (可选的)分片键(sharding key) 该键与config.xml中配置的分片权重(weight)一同决定写入分布式表时的路由,即数据最终落到哪个物理表上。它可以是表中一列的原始数据(如site_id),也可以是函数调用的结果,如上面的SQL语句采用了随机值rand()。注意该键要尽量保证数据均匀分布,另外一个常用的操作是采用区分度较高的列的哈希值,如intHash64(user_id)。
  • 查看ClickHouse服务cluster等环境参数信息 使用ClickHouse客户端连接到ClickHouse服务端。 查询集群标识符cluster等其他环境参数信息。 select cluster,shard_num,replica_num,host_name from system.clusters; SELECT cluster, shard_num, replica_num, host_name FROM 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表数据操作 创建表后,可以插入数据到本地表。 例如插入数据到本地表test。 insert into test values(toDateTime(now()), rand()); 查询本地表信息。 例如查询表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分布式表。 例如分布式表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; 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节点。 clickhouse client --host node-group-1tXED0001 --multiline --port 9440 --secure; 查询test本地表数据,因为test是本地表所以在不同分片节点上查询不到数据。 select * from test; SELECT * FROM test Ok. 查询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.
  • 回答 这是一种误操作的异常情况,需要手动删除对应表的元数据后重试。 例如: 执行以下命令进入控制台: source ${BIGDATA_HOME}/FusionInsight_BASE_xxx/install/FusionInsight-dbservice-2.7.0/.dbservice_profile gsql -p 20051 -U hive -d hivemeta -W HiveUser@ 执行 delete from tbls where tbl_id='xxx';
  • 使用验证Function Plugin 登录客户端安装节点,执行安全认证。 cd /opt/client source bigdata_env kinit HetuEngine用户 hetu-cli 选择验证环境上有数值(int或double类型)列的表,此处选择hive.default.test1,执行如下命令验证Function Plugin。 查询表。 select * from hive.default.test1; select * from hive.default.test1; name | price --------|------- apple | 17.8 orange | 25.0 (2 rows) 返回平均值。 select avg_double(price) from hive.default.test1; select avg_double(price) from hive.default.test1; _col0 ------- 21.4 (1 row) 返回输入整数加2的值。 select add_two(4); select add_two(4); _col0 ------- 6 (1 row)
  • 部署Function Plugin 部署前需要确认: HetuEngine服务处于正常状态。 HDFS和HetuEngine客户端已经安装到集群节点,例如“/opt/client”目录下。 已创建HetuEngine用户,用户创建请参考创建HetuEngine权限角色。 将打包Maven项目得到的myfunctions-0.0.1-SNAPSHOT目录上传到安装客户端节点的任意目录。 将myfunctions-0.0.1-SNAPSHOT目录上传到HDFS中。 同时上传6中target目录下的所有jar包。 登录客户端安装节点,执行安全认证。 cd /opt/client source bigdata_env kinit HetuEngine的用户 根据回显提示输入密码,首次认证需要修改密码。 HDFS中创建如下路径,如已存在则不需创建。 hdfs dfs -mkdir -p /user/hetuserver/udf/data/externalFunctionsPlugin 上传myfunctions-0.0.1-SNAPSHOT目录到HDFS。 hdfs dfs -put myfunctions-0.0.1-SNAPSHOT /user/hetuserver/udf/data/externalFunctionsPlugin 修改目录属主。 hdfs dfs -chown -R hetuserver:hadoop /user/hetuserver/udf/data 重启HetuEngine计算实例。
  • Hive SQL扩展语法说明 Hive SQL支持Hive-3.1.0版本中的所有特性,详情请参见https://cwiki.apache.org/confluence/display/hive/languagemanual。 MRS系统提供的扩展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常见SQL语法说明
  • 配置方法 导出集群中的证书: 安装集群客户端,例如安装路径为“/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安装路径,请自行修改。
  • Ranger统一鉴权特性 特性说明:在Kafka 2.4.0之前版本,Kafka组件仅支持社区自带的SimpleAclAuthorizer鉴权插件,Kafka 2.4.0及之后版本,MRS Kafka同时支持Ranger鉴权插件和社区自带鉴权插件。默认使用Ranger鉴权,基于Ranger鉴权插件,可进行细粒度的Kafka Acl管理。 服务端使用Ranger鉴权插件时,如果“allow.everyone.if.no.acl.found”配置为“true”,使用非安全端口访问时,所有行为将直接放行。建议使用Ranger鉴权插件的安全集群,不要开启“allow.everyone.if.no.acl.found”。
  • Kafka Idempotent特性 特性说明:Kafka从0.11.0.0版本引入了创建幂等性Producer的功能,开启此特性后,Producer自动升级成幂等性Producer,当Producer发送了相同字段值的消息后,Broker会自动感知消息是否重复,继而避免数据重复。需要注意的是,这个特性只能保证单分区上的幂等性,即一个幂等性Producer能够保证某个主题的一个分区内不出现重复消息;只能实现单会话上的幂等性,这里的会话指的是Producer进程的一次运行,即重启Producer进程后,幂等性不保证。 开启方法: 二次开发代码中添加“props.put(“enable.idempotence”,true)”。 客户端配置文件中添加“enable.idempotence = true”。
共100000条