华为云用户手册

  • 回答 当试图从启用SSL的kafka数据源采集数据时,而安装程序无法读取jars.conf文件及其属性时,可能会发生这种情况。 要解决此问题,需要将所需的属性作为通过Spark提交的命令的一部分传递。如:--files jaas.conf,failed_tables.json --conf 'spark.driver.extraJavaOptions=-Djava.security.auth.login.config=jaas.conf' --conf 'spark.executor .extraJavaOptions=-Djava.security.auth.login.config=jaas.conf'
  • 描述 使用LIKE子句可以在一个新表中包含一个已存在的表所有的列定义。可以使用多个LIKE来复制多个表的列。 如果使用了INCLUDING PROPERTIES,表的所有属性也会被复制到新表,该选项最多只能对一个表生效。 对于从表中复制过来的属性,可以使用WITH子句指定属性名进行修改。 默认使用EXCLUDING PROPERTIES属性。 对于带分区的表,如果用括号包裹like子句,复制的列定义不会包含分区键的信息。
  • 语法 CREATE TABLE [ IF NOT EXISTS] table_name ( { coulumn_name data_type [ COMMENT comment] [ WITH (property_name = expression [,…] ) ] | LIKE existing_table_name [ {INCLUDING| EXCLUDING} PROPERTIES] } ) [,…] [ COMMENT table_comment] [WITH (property_name = expression [,… ] ) ]
  • 示例 创建基础表order01和order02 CREATE TABLE order01(id int,name string,tel string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'STORED AS TEXTFILE; CREATE TABLE order02(sku int, sku_name string, sku_describe string); 创建表orders_like01,它将包含表order01定义的列及表属性 CREATE TABLE orders_like01 like order01 INCLUDING PROPERTIES; 创建表orders_like02,它将包含表order02定义的列,并将表的存储格式设置为‘TEXTFILE’ CREATE TABLE orders_like02 like order02 STORED AS TEXTFILE; 创建表orders_like03,它将包含表order01定义的列及表属性,order02定义的列,以及额外的列c1和c2 CREATE TABLE orders_like03 (c1 int,c2 float,LIKE order01 INCLUDING PROPERTIES,LIKE order02); 创建表orders_like04和orders_like05,它们都会包含同一个表order_partition的定义,但orders_like04不会包含分区键信息,而orders_like05会包含分区键的信息 CREATE TABLE order_partition(id int,name string,tel string) PARTITIONED BY (sku int); CREATE TABLE orders_like04 (like order_partition); CREATE TABLE orders_like05 like order_partition; DESC orders_like04; Column | Type | Extra | Comment --------|---------|-------|--------- id | integer | | name | varchar | | tel | varchar | | sku | integer | | (4 rows) DESC orders_like05; Column | Type | Extra | Comment --------|---------|---------------|--------- id | integer | | name | varchar | | tel | varchar | | sku | integer | partition key | (4 rows)
  • 用户权限模型 ClickHouse用户权限管理实现了对集群中各个ClickHouse实例上用户、角色、权限的统一管理。通过Manager UI的权限管理模块进行创建用户、创建角色、绑定ClickHouse访问权限配置等操作,通过用户绑定角色的方式,实现用户权限控制。 管理资源:Clickhouse权限管理支持的资源如表1所示。 资源权限:ClickHouse支持的资源权限如表2所示。 表1 ClickHouse支持的权限管理对象 资源列表 是否集成 备注 数据库 是(一级) - 表 是(二级) - 视图 是(二级) 与表一致 表2 资源权限列表 资源对象 可选权限 备注 数据库(DATABASE) CREATE CREATE DATABASE/TABLE/VIEW/DICTIONARY权限 表/视图(TABLE/VIEW) SELECT/INSERT -
  • Hive配置类问题 Hive SQL执行报错:java.lang.OutOfMemoryError: Java heap space. 解决方案: 对于MapReduce任务,增大下列参数: set mapreduce.map.memory.mb=8192; set mapreduce.map.java.opts=-Xmx6554M; set mapreduce.reduce.memory.mb=8192; set mapreduce.reduce.java.opts=-Xmx6554M; 对于Tez任务,增大下列参数: set hive.tez.container.size=8192; Hive SQL对列名as为新列名后,使用原列名编译报错:Invalid table alias or column reference 'xxx'. 解决方案:set hive.cbo.enable=true; Hive SQL子查询编译报错:Unsupported SubQuery Expression 'xxx': Only SubQuery expressions that are top level conjuncts are allowed. 解决方案:set hive.cbo.enable=true; Hive SQL子查询编译报错:CalciteSubquerySemanticException [Error 10249]: Unsupported SubQuery Expression Currently SubQuery expressions are only allowed as Where and Having Clause predicates. 解决方案:set hive.cbo.enable=true; Hive SQL编译报错:Error running query: java.lang.AssertionError: Cannot add expression of different type to set. 解决方案:set hive.cbo.enable=false; Hive SQL执行报错:java.lang.NullPointerException at org.apache.hadoop.hive.ql.udf.generic.GenericUDAFComputeStats$GenericUDAFNumericStatsEvaluator.init. 解决方案:set hive.map.aggr=false; Hive SQL设置hive.auto.convert.join = true(默认开启)和hive.optimize.skewjoin=true执行报错:ClassCastException org.apache.hadoop.hive.ql.plan.ConditionalWork cannot be cast to org.apache.hadoop.hive.ql.plan.MapredWork. 解决方案:set hive.optimize.skewjoin=false; Hive SQL设置hive.auto.convert.join=true(默认开启)、hive.optimize.skewjoin=true和hive.exec.parallel=true执行报错:java.io.FileNotFoundException: File does not exist:xxx/reduce.xml. 解决方案: 方法一:切换执行引擎为Tez,详情请参考切换Hive执行引擎为Tez。 方法二:set hive.exec.parallel=false; 方法三:set hive.auto.convert.join=false; Hive on Tez执行Bucket表Join报错:NullPointerException at org.apache.hadoop.hive.ql.exec.CommonMergeJoinOperator.mergeJoinComputeKeys 解决方案:set tez.am.container.reuse.enabled=false; 父主题: Hive常见问题
  • 参数描述 表1 CREATE SECONDARY INDEX参数 参数 描述 index_name 索引表的名称。表名称应由字母数字字符和下划线(_)特殊字符组成。 db_name 数据库的名称。数据库名称应由字母数字字符和下划线(_)特殊字符组成。 table_name 数据库中的表名称。表名称应由字母数字字符和下划线(_)特殊字符组成。 col_name 表中的列名称。支持多列。列名称应由字母数字字符和下划线(_)特殊字符组成。 table_blocksize 数据文件的block大小。更多详细信息,请参考•Block大小。
  • 示例 create table productdb.productSalesTable(id int,price int,productName string,city string) stored as carbondata; CREATE INDEX productNameIndexTable on table productdb.productSalesTable (productName,city) as 'carbondata' ; 上述示例将创建名为“productdb.productNameIndexTable”的二级表并加载所提供列的索引信息。
  • 编辑器使用介绍 访问Hue WebUI,请参考访问Hue WebUI界面。 在左侧导航栏单击,然后选择“Workflow”。 支持创建Workflow、计划和Bundles的操作。支持提交运行、共享、复制和导出已创建的应用。 每个Workflow可以包含一个或多个作业,形成完整的工作流,用于实现指定的业务。 创建Workflow时,可直接在Hue的编辑器设计作业,并添加到Workflow中。 每个计划可定义一个时间触发器,用于定时触发执行一个指定的Workflow。不支持多个Workflow。 每个Bundles可定义一个集合,用于触发执行多个计划,使不同Workflow批量执行。
  • 操作场景 用户需要使用图形化界面查看集群中所有作业时,可以通过Hue完成任务。 Hue提供了Oozie作业管理器功能,使用户可以通过界面图形化的方式使用Oozie。 Hue界面主要用于文件、表等数据的查看与分析,禁止通过Hue界面对操作对象进行删除等高危管理操作。如需操作,建议在确认对业务没有影响后通过各组件的相应操作方法进行处理,例如使用HDFS客户端对HDFS文件进行操作,使用Hive客户端对Hive表进行操作。
  • 访问作业浏览器 访问Hue WebUI,请参考访问Hue WebUI界面。 单击作业,进入“作业浏览器”。 默认显示当前集群的所有作业。支持查看Workflow、Coordinator和Bundles作业的运行情况。 作业浏览器显示的数字表示集群中所有作业的总数。 “作业浏览器”将显示作业以下信息: 表1 MRS 作业属性介绍 属性名 描述 名称 表示作业的名称。 用户 表示启动该作业的用户。 类型 表示作业的类型。 状态 表示作业的状态,包含“成功”、“正在运行”、“失败”。 进度 表示作业运行进度。 组 表示作业所属组。 开始 表示作业开始时间。 持续时间 表示作业运行使用的时间。 Id 表示作业的编号,由系统自动生成。 如果MRS集群安装了Spark组件,则默认会启动一个作业“Spark-JD BCS erver”,用于执行任务。
  • 操作步骤 并行度可以通过如下三种方式来设置,用户可以根据实际的内存、CPU、数据以及应用程序逻辑的情况调整并行度参数。 在会产生shuffle的操作函数内设置并行度参数,优先级最高。 testRDD.groupByKey(24) 在代码中配置“spark.default.parallelism”设置并行度,优先级次之。 val conf = new SparkConf() conf.set("spark.default.parallelism", 24) 在“$SPARK_HOME/conf/spark-defaults.conf”文件中配置“spark.default.parallelism”的值,优先级最低。 spark.default.parallelism 24
  • 配置描述 参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。 表1 配置自定义调度器的WebUI 参数 描述 默认值 hadoop.http.rmwebapp.scheduler.page.classes 在RM WebUI中为自定义调度器加载相应的web页面。仅当“yarn.resourcemanager.scheduler.class”配置为自定义调度器时此配置项生效。 - yarn.http.rmwebapp.external.classes 在RM的Web服务中加载用户自定义的web应用。 -
  • 描述 显示一条语句的逻辑的或者分布式的执行计划,也可以用于校验一条SQL语句,或者是分析IO。 参数TYPE DISTRIBUTED用于显示分片后的计划(fragmented plan)。每一个fragment都会被一个或者多个节点执行。Fragments separation表示数据在两个节点之间进行交换。Fragment type表示一个fragment如何被执行以及数据在不同fragment之间怎样分布。 SINGLE Fragment会在单个节点上执行。 HASH Fragment会在固定数量的节点上执行,输入数据通过哈希函数进行分布。 ROUND_ROBIN Fragment会在固定数量的节点上执行,片段在固定数量的节点上执行,输入数据以轮循方式进行分布。 BROADCAST Fragment会在固定数量的节点上执行,输入数据被广播到所有的节点。 SOURCE Fragment在访问输入分段的节点上执行。
  • 示例 LOG ICAL: CREATE TABLE testTable (regionkey int, name varchar); EXPLAIN SELECT regionkey, count(*) FROM testTable GROUP BY 1; Query Plan ------------------------------------------------------------------------------------------------------------------------------------- Output[regionkey, _col1] │ Layout: [regionkey:integer, count:bigint] │ Estimates: {rows: ? (?), cpu: ?, memory: ?, network: ?} │ _col1 := count └─ RemoteExchange[GATHER] │ Layout: [regionkey:integer, count:bigint] │ Estimates: {rows: ? (?), cpu: ?, memory: ?, network: ?} └─ Project[] │ Layout: [regionkey:integer, count:bigint] │ Estimates: {rows: ? (?), cpu: ?, memory: ?, network: ?} └─ Aggregate(FINAL)[regionkey][$hashvalue] │ Layout: [regionkey:integer, $hashvalue:bigint, count:bigint] │ Estimates: {rows: ? (?), cpu: ?, memory: ?, network: ?} │ count := count("count_8") └─ LocalExchange[HASH][$hashvalue] ("regionkey") │ Layout: [regionkey:integer, count_8:bigint, $hashvalue:bigint] │ Estimates: {rows: ? (?), cpu: ?, memory: ?, network: ?} └─ RemoteExchange[REPARTITION][$hashvalue_9] │ Layout: [regionkey:integer, count_8:bigint, $hashvalue_9:bigint] │ Estimates: {rows: ? (?), cpu: ?, memory: ?, network: ?} └─ Aggregate(PARTIAL)[regionkey][$hashvalue_10] │ Layout: [regionkey:integer, $hashvalue_10:bigint, count_8:bigint] │ count_8 := count(*) └─ ScanProject[table = hive:default:testtable] Layout: [regionkey:integer, $hashvalue_10:bigint] Estimates: {rows: 0 (0B), cpu: 0, memory: 0B, network: 0B}/{rows: 0 (0B), cpu: 0, memory: 0B, network: 0B} $hashvalue_10 := "combine_hash"(bigint '0', COALESCE("$operator$hash_code"("regionkey"), 0)) regionkey := regionkey:int:0:REGULAR DISTRIBUTED: EXPLAIN (type DISTRIBUTED) SELECT regionkey, count(*) FROM testTable GROUP BY 1; Query Plan ----------------------------------------------------------------------------------------------------------------------- Fragment 0 [SINGLE] Output layout: [regionkey, count] Output partitioning: SINGLE [] Stage Execution Strategy: UNGROUPED_EXECUTION Output[regionkey, _col1] │ Layout: [regionkey:integer, count:bigint] │ Estimates: {rows: ? (?), cpu: ?, memory: ?, network: ?} │ _col1 := count └─ RemoteSource[1] Layout: [regionkey:integer, count:bigint] Fragment 1 [HASH] Output layout: [regionkey, count] Output partitioning: SINGLE [] Stage Execution Strategy: UNGROUPED_EXECUTION Project[] │ Layout: [regionkey:integer, count:bigint] │ Estimates: {rows: ? (?), cpu: ?, memory: ?, network: ?} └─ Aggregate(FINAL)[regionkey][$hashvalue] │ Layout: [regionkey:integer, $hashvalue:bigint, count:bigint] │ Estimates: {rows: ? (?), cpu: ?, memory: ?, network: ?} │ count := count("count_8") └─ LocalExchange[HASH][$hashvalue] ("regionkey") │ Layout: [regionkey:integer, count_8:bigint, $hashvalue:bigint] │ Estimates: {rows: ? (?), cpu: ?, memory: ?, network: ?} └─ RemoteSource[2] Layout: [regionkey:integer, count_8:bigint, $hashvalue_9:bigint] Fragment 2 [SOURCE] Output layout: [regionkey, count_8, $hashvalue_10] Output partitioning: HASH [regionkey][$hashvalue_10] Stage Execution Strategy: UNGROUPED_EXECUTION Aggregate(PARTIAL)[regionkey][$hashvalue_10] │ Layout: [regionkey:integer, $hashvalue_10:bigint, count_8:bigint] │ count_8 := count(*) └─ ScanProject[table = hive:default:testtable, grouped = false] Layout: [regionkey:integer, $hashvalue_10:bigint] Estimates: {rows: 0 (0B), cpu: 0, memory: 0B, network: 0B}/{rows: 0 (0B), cpu: 0, memory: 0B, network: 0B} $hashvalue_10 := "combine_hash"(bigint '0', COALESCE("$operator$hash_code"("regionkey"), 0)) regionkey := regionkey:int:0:REGULAR VALIDATE: EXPLAIN (TYPE VALIDATE) SELECT id, count(*) FROM testTable GROUP BY 1; Valid ------- true IO: EXPLAIN (TYPE IO, FORMAT JSON) SELECT regionkey , count(*) FROM testTable GROUP BY 1; Query Plan --------------------------------- { "inputTableColumnInfos" : [ { "table" : { "catalog" : "hive", "schemaTable" : { "schema" : "default", "table" : "testtable" } }, "columnConstraints" : [ ] } ] }
  • 回答 原因: Hudi表数据含有Decimal类型数据。 初始入库BULK_INSET方式会使用Spark内部parquet文件的写入类进行写入,Spark对不同精度的Decimal类型处理是不同的。 UPSERT操作时,Hudi使用Avro兼容的parquet文件写入类进行写入,这个和Spark的写入方式是不兼容的。 解决方案: 执行BULK_INSERT时指定设置“hoodie.datasource.write.row.writer.enable = false”,使hoodie采用Avro兼容的parquet文件写入类进行写入。
  • 参数说明 IN | FROM schema_name 指定schema名称,未指定时默认使用当前的schema。 LIKE 'identifier_with_wildcards' identifier_with_wildcards只支持包含“*”和“|”的规则匹配表达式。 其中“*”可以匹配单个或多个字符,“|”适用于匹配多种规则匹配表达式中的任意一种的情况,它用于分隔这些规则匹配表达式。 规则匹配表达式首尾的空格,不会参与匹配计算。 partition_spec 一个可选参数,使用键值对来指定分区列表,键值对之间通过逗号分隔。需要注意,指定分区时,表名不支持模糊匹配。
  • 示例 -- 演示数据准备 create schema show_schema; use show_schema; create table show_table1(a int,b string); create table show_table2(a int,b string); create table from_table1(a int,b string); create table in_table1(a int,b string); --查询表名以"show"开始的表的详细信息 show table extended like 'show*'; tab_name -------------------------------------------------------------------------- tableName:show_table1 owner:admintest location:hdfs://hacluster/user/hive/warehouse/show_schema.db/show_table1 InputFormat:org.apache.hadoop.hive.ql.io.orc.OrcInputFormat OutputFormat:org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat columns:struct columns {int a,string b} partitioned:false partitionColumns: totalNumberFiles:0 totalFileSize:0 tableName:show_table2 owner:admintest location:hdfs://hacluster/user/hive/warehouse/show_schema.db/show_table2 InputFormat:org.apache.hadoop.hive.ql.io.orc.OrcInputFormat OutputFormat:org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat columns:struct columns {int a,string b} partitioned:false partitionColumns: totalNumberFiles:0 totalFileSize:0 (1 row) -- 查询表名以"from"或者"show"开头的表的详细信息 show table extended like 'from*|show*'; tab_name ---------------------------------------------------------------------- tableName show_table1 owner admintest location hdfs://hacluster/user/hive/warehouse/show_table1 InputFormat org.apache.hadoop.hive.ql.io.orc.OrcInputFormat OutputFormat org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat columns struct columns {int a,string b} partitioned false partitionColumns totalNumberFiles 0 totalFileSize null tableName from_table1 owner admintest location hdfs://hacluster/user/hive/warehouse/from_table1 InputFormat org.apache.hadoop.hive.ql.io.orc.OrcInputFormat OutputFormat org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat columns struct columns {int a,string b} partitioned false partitionColumns totalNumberFiles 0 totalFileSize null tableName show_table2 owner admintest location hdfs://hacluster/user/hive/warehouse/show_table2 InputFormat org.apache.hadoop.hive.ql.io.orc.OrcInputFormat OutputFormat org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat columns struct columns {int a,string b} partitioned false partitionColumns totalNumberFiles 0 totalFileSize null (1 row) -- 查询web schema下的page_views表扩展信息 show table extended from web like 'page*'; tab_name ----------------------------------------------------------------------------- tableName:page_views owner:admintest location:hdfs://hacluster/user/web.db/page_views InputFormat:org.apache.hadoop.hive.ql.io.orc.OrcInputFormat OutputFormat:org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat columns:struct columns {timestamp view_time,bigint user_id,string page_url} partitioned:true partitionColumns: struct partition_columns {date ds,string country} totalNumberFiles:0 totalFileSize:0 (1 row)
  • 操作场景 在启用Kerberos认证的集群中,用户使用Kafka前需要拥有对应的权限。MRS集群支持将Kafka的使用权限,授予不同用户。 Kafka默认用户组如表1所示。 Kafka支持两种鉴权插件:“Kafka开源自带鉴权插件”和“Ranger鉴权插件”。 本章节描述的是基于“Kafka开源自带鉴权插件”的用户权限管理。如果想使用 “Ranger鉴权插件”,请参考添加Kafka的Ranger访问权限策略。 表1 Kafka默认用户组 用户组名称 描述 kafkaadmin Kafka管理员用户组。添加入本组的用户,拥有所有主题的创建,删除,授权及读写权限。 kafkasuperuser Kafka高级用户组。添加入本组的用户,拥有所有主题的读写权限。 kafka Kafka普通用户组。添加入本组的用户,需要被kafkaadmin组用户授予特定主题的读写权限,才能访问对应主题。
  • 原因分析 Doris支持一个BE节点配置多个存储路径,并支持指定路径的存储介质属性,如SSD或HDD。通常情况下,每块盘配置一个存储路径即可。 如果“be.conf”中只配置了SSD的介质,而FE中参数“default_storage_medium”默认为HDD,因此建表时会发现没有HDD介质的存储而报错。Doris并不会自动感知存储路径所在磁盘的实际存储介质类型,需要用户在路径配置中显式的表示。“.HDD”和“.SSD”只是用于标识存储目录“相对”的“低速”和“高速”之分,而并不是标识实际的存储介质类型,所以如果BE节点上的存储路径没有介质区别,则无需填写后缀。
  • 配置描述 参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。 表1 参数说明 参数 描述 默认值 yarn.nodemanager.vmem-check-enabled 是否进行虚拟内存检测的开关。如果任务使用的内存量超出分配值,则直接将任务强制终止。 设置为true时,进行虚拟内存检测; 设置为false时,不进行虚拟内存检测。 true yarn.nodemanager.pmem-check-enabled 是否进行物理内存检测的开关。如果任务使用的内存量超出分配值,则直接将任务强制终止。 设置为true时,进行物理内存检测; 设置为false时,不进行物理内存检测。 true
  • 描述 “ALTER VIEW view_name AS select_statement;”用于改变已存在的视图的定义,语法效果与CREATE OR REPLACE VIEW类似。 “ALTER VIEW view_name SET TBLPROPERTIES table_properties;”中table_properties格式为 (property_name = property_value, property_name = property_value, ...)。 视图可以包含Limit和ORDER BY子句,如果关联视图的查询语句也包含了这类子句,则最后执行结果将根据视图的子句运算后得到。例如视图V指定了返回5条数据,而关联查询为select * from V limit 10,则最终只有5条数据返回。
  • 示例 CREATE OR REPLACE VIEW tv_view as SELECT id,name from (values (1, 'HetuEngine')) as x(id,name); SELECT * FROM tv_view; id | name ----|------ 1 | HetuEngine (1 row) ALTER VIEW tv_view as SELECT id, brand FROM (VALUES (1, 'brand_1', 100), (2, 'brand_2', 300) ) AS x (id, brand, price); SELECT * FROM tv_view; id | brand ----|--------- 1 | brand_1 2 | brand_2 (2 rows) ALTER VIEW tv_view SET TBLPROPERTIES ('comment' = 'This is a new comment'); show tblproperties tv_view; SHOW TBLPROPERTIES -------------------------------------------------------------------- comment 'This is a new comment' presto_query_id '20210325_034712_00040_f63xj@default@HetuEngine' presto_version presto_view 'true' transient_lastDdlTime '1616644032' (1 row)
  • 回答 使用root用户登录安装客户端的节点。 执行以下命令,切换到客户端安装目录,例如“/opt/client”。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 根据集群认证模式,完成Hive客户端登录。 安全模式,则执行以下命令,完成用户认证并登录Hive客户端。 kinit 组件业务用户 beeline 普通模式,则执行以下命令,登录Hive客户端。 使用指定组件业务用户登录Hive客户端。 beeline -n 组件业务用户 不指定组件业务用户登录Hive客户端,则会以当前操作系统用户登录。 beeline 执行以下命令关闭客户端日志: set hive.server2.logging.operation.enabled=false; 执行以下命令查看客户端日志是否已关闭,如下图所示即为关闭成功。 set hive.server2.logging.operation.enabled;
  • 操作场景 Broadcast(广播)可以把数据集合分发到每一个节点上,Spark任务在执行过程中要使用这个数据集合时,就会在本地查找Broadcast过来的数据集合。如果不使用Broadcast,每次任务需要数据集合时,都会把数据序列化到任务里面,不但耗时,还使任务变得很大。 每个任务分片在执行中都需要同一份数据集合时,就可以把公共数据集Broadcast到每个节点,让每个节点在本地都保存一份。 大表和小表做join操作时可以把小表Broadcast到各个节点,从而就可以把join操作转变成普通的操作,减少了shuffle操作。
  • 操作场景 集群的资源竞争场景如下: 提交两个低优先级的应用Job 1和Job 2。 正在运行中的Job 1和Job 2有部分task处于running状态,但由于集群或队列资源容量有限,仍有部分task未得到资源而处于pending状态。 提交一个较高优先级的应用Job 3,此时会出现如下资源分配情况:当Job 1和Job 2中running状态的task运行结束并释放资源后,Job 3中处于pending状态的task将优先得到这部分新释放的资源。 Job 3完成后,资源释放给Job 1、Job 2继续执行。 用户可以在YARN中配置任务的优先级。任务优先级是通过ResourceManager的调度器实现的。
  • 操作场景 此功能适用于Hive组件。 开启此功能后,在执行写目录:insert overwrite directory “/path1/path2/path3” ...时,其中“/path1/path2”目录权限为700且属主为当前用户,“path3”目录不存在,会自动创建“path3”目录,并写数据成功。 上述功能,在Hive参数“hive.server2.enable.doAs”为“true”时已经支持,本次增加当“hive.server2.enable.doAs”为“false”时的功能支持。 本功能参数调整与配置Hive目录旧数据自动移除至回收站添加的自定义参数相同。
  • 示例 ALTER TABLE carbon ADD COLUMNS (a1 INT, b1 STRING); ALTER TABLE carbon ADD COLUMNS (a1 INT, b1 STRING) TBLPROPERTIES('COLUMNPROPERTIES.b1.shared_column'='sharedFolder.b1'); ALTER TABLE carbon ADD COLUMNS (a1 INT, b1 STRING) TBLPROPERTIES('DEFAULT.VALUE.a1'='10');
  • 参数描述 表1 ADD COLUMNS参数描述 参数 描述 db_name 数据库名。如果未指定,则选择当前数据库。 table_name 表名。 col_name data_type 带数据类型且用逗号分隔的列的名称。列名称包含字母,数字和下划线(_)。 说明: 创建CarbonData表时,不要将列名命名为tupleId,PositionId和PositionReference,因为将在UPDATE,DELETE和二级索引命令内部使用这些名称。
  • 命令语法 ALTER TABLE [db_name.]table_name ADD COLUMNS (col_name data_type,...) TBLPROPERTIES(''COLUMNPROPERTIES.columnName.shared_column'='sharedFolder.sharedColumnName,...', 'DEFAULT.VALUE.COLUMN_NAME'='default_value');
共100000条