• 沒有找到結果。

二级索引表规格

3.2 配置参考

本章节介绍CarbonData所有配置的详细信息。

3-3 carbon.properties 中的系统配置

参数 默认值 描述

carbon.ddl.b

ase.hdfs.url hdfs://

hacluster/opt/

- 指定Bad records的存储路径。此路径为HDFS路 径。默认值为Null。如果启用了bad records日志 记录或者bad records操作重定向,则该路径必须 由用户进行配置。

carbon.bad.r

ecords.action fail 以下是bad records的四种行为类型:

FORCE:通过将bad records存储为NULL来自动 更正数据。

REDIRECT:Bad records被写入原始CSV文件而不 是被加载。

IGNORE:Bad records既不被加载也不被写入原 始CSV文件。

FAIL:如果找到任何bad records,则数据加载失 败。

carbon.updat

e.sync.folder /tmp/

carbondata modifiedTime.mdt文件路径,可以设置为已有路 径或新路径。

说明

如果设置为已有路径,需确保所有用户都可以访问该路 径,且该路径具有777权限。

3-4 carbon.properties 中的性能配置

参数 默认值 描述

数据加载配置 carbon.sort.fi le.write.buffe r.size

16384 为了限制内存的使用,CarbonData会将数据排序并写 入临时文件中。该参数控制读取和写入临时文件过程使 用的缓存大小。单位:字节。

取值范围为:10240~10485760。

参数 默认值 描述 carbon.graph

.rowset.size 100000 数据加载图步骤之间交换的行集大小。

最小值=500,最大值=1000000

eXXHash true 用于hashkey计算的hashmap算法。

carbon.numb

-1 在driver端加载数据所达到的最大LRU缓存大小。以MB 为单位,默认值为-1,表示缓存没有内存限制。只允许 使用大于0的整数值。

carbon.max.

executor.lru.c ache.size

-1 在executor端加载数据所达到的最大LRU缓存大小。以 MB为单位,默认值为-1,表示缓存没有内存限制。只

true 启用此参数将考虑持久化数据,减少UPDATE操作的执 行时间。

enable.unsaf

e.sort true 指定在数据加载期间是否使用非安全排序。非安全的排 序减少了数据加载操作期间的垃圾回收(GC),从而 提高了性能。默认值为“true”,表示启用非安全排序 功能。

enable.offhe

ap.sort true 在数据加载期间启用堆排序。

offheap.sort.

chunk.size.in mb

64 指定需要用于排序的数据块的大小。最小值为1MB,

最大值为1024MB。

参数 默认值 描述

(“offheap.sort.chunk.size.inmb”的值[默认值 = 64 MB] + “carbon.blockletgroup.size.in.mb”的值[默认 值 = 64 MB] + 当前的压缩率[64 MB/3.5])

= ~900 MB 每表格 数据查询所需内存:

(SPARK_EXECUTOR_INSTANCES. [默认值 = 2]) x ( carbon.blockletgroup.size.in.mb [默认值 = 64 MB]

+“carbon.blockletgroup.size.in.mb”解压内容[默认

ry.size.inmb 1024 指定要保存在内存中的中间排序数据的大小。达到该指 定值后,系统会将数据写入磁盘。单位:MB。

说明Spark配置参数“spark.yarn.executor.memoryOverhead”的 值应该大于CarbonData配置参数

64 数据作为blocklet group被系统读入。该参数指定 blocklet group的大小。较高的值会有更好的顺序IO访 问性能。

false 指定是否启用内存合并排序(inmemorymerge sort)。

参数 默认值 描述 use.offheap.i

n.query.proc essing

true 指定是否在查询处理中启用offheap。

carbon.load.s

ort.scope local_sort 指定加载操作的排序范围。支持两种类型的排序,

batch_sort和local_sort。选择batch_sort将提升加载性

cal.dir false 是否使用YARN本地目录加载多个磁盘的数据。设置为 true,则使用YARN本地目录加载多个磁盘的数据,以

NA 值为true或者false。可以设置数据库名和表名,使得该 表的首次查询性能得到提升。

4,3 该属性用于Minor压缩,决定合并segment的数量。

例如:如果被设置为“2,3”,则将每2个segment触发 一次Minor压缩。“3”是Level 1压缩的segment个 数,这些segment将进一步被压缩为新的segment。

有效值为0-100。

carbon.major .compaction.

size

1024 使用该参数配置Major压缩的大小。总数低于该阈值的 segment将被合并。

单位为MB。

参数 默认值 描述 carbon.horiz

ontal.compa ction.enable

true 该参数用于配置打开/关闭水平压缩。在每个DELETE和 UPDATE语句之后,如果增量(DELETE / UPDATE)文 件超过指定的阈值,则可能发生水平压缩。默认情况

1 该参数指定segment内的UPDATE增量文件数的阈值限 制。在增量文件数量超过阈值的情况下,segment内的

1 该参数指定segment的block中的DELETE增量文件数量 的阈值限制。在增量文件数量超过阈值的情况下,

segment特定block的DELETE增量文件变得适合水平压 缩,并压缩为单个DELETE增量文件。 默认情况下,该 参数值设置为1。可以设置为1到10000之间的值。

查询配置 carbon.numb

er.of.cores 4 查询时所使用的核数。

carbon.limit.

block.distrib ution.enable

false 当查询语句中包含关键字limit时,启用或禁用

CarbonData块分布。默认值为“false”,将对包含关

false 指定是使用Spark还是CarbonData的块分配功能。默认 情况下,其配置值为“false”,表明启用Spark块分

false 如果启用此参数,并且用户在具有subquery的过滤器 中触发Select查询,则执行子查询,并将输出作为IN过 滤器广播到左表,否则将执行SortMergeSemiJoin。建 议在IN过滤器子查询未返回太多记录时启用此参数。例 如,IN子句子查询返回10k或更少的记录时,启用此参 数将更快地给出查询结果。

示例:select * from flow_carbon_256b where cus_no in (select cus_no from flow_carbon_256b where dt>='20260101' and dt<='20260701' and txn_bk='tk_1' and txn_br='tr_1') limit 1000;

carbon.sched uler.minRegi steredResour cesRatio

0.8 启动块分布所需的最小资源(executor)比率。默认值 为“0.8”,表示所请求资源的80%被分配用于启动块

5 此参数值指示调度器等待executors处于活动状态的最 长时间。默认值为“5”秒,允许的最大值为“15”

秒。

参数 默认值 描述

true 为结果收集(result collection)启用向量处理,以增 强查询性能。

carbon.query .show.datam aps

true SHOW TABLES会展示所有的表包含主表和

datamap。如果需要过滤掉datamap,将该配置设置

ment.merge true 开启这个配置后会合并二级索引表segment内

的.carbondata文件。合并发生在导入操作后,在二级 索引表导入操作的最后,会检查小文件并合并他们。

说明Table Block Size会用作合并小文件的大小阈值。

3-5 carbon.properties 中的其它配置

参数 默认值 描述

数据加载配置 carbon.lock.t

ype HDFSLOCK 该配置指定了表上并发操作过程中所要求的锁的 类型。

有以下几种类型锁实现方式:

● LOCALLOCK:基于本地文件系统的文件来创 建的锁。该锁只适用于一台机器上只运行一个 Spark Driver(或者JDBCServer)的情况。

● HDFSLOCK:基于HDFS文件系统上的文件来 创建的锁。该锁适用于集群上有多个运行的

参数 默认值 描述 carbon.csv.re

ad.buffersize .byte

1048576 CSV读缓冲区大小。

carbon.merg

TempStoreLoc 临时存储位置。默认情况下,采用

“System.getProperty("java.io.tmpdir")”方法获 取。此参数调优请参考性能调优的相关配置中关 于“carbon.use.local.dir”的描述。

carbon.load.l

og.counter 500000 数据加载记录计数日志。

SERIALIZATI ON_NULL_F ORMAT

\N 指定需要替换为NULL的值。

carbon.skip.e

mpty.line false 设置此属性将在数据加载期间忽略CSV文件中的 空行。

carbon.load.

datamaps.pa rallel

false 该配置项将会开启对所有会话所有表的datamap 并行加载。该配置项通过将导入datamap到内存

0 若用户希望从被合并的segment中保留一定数量 的segment,可设置该属性参数。

例如:“carbon.numberof.preserve.segments”=“2”

,那么合并的segement中将不包含最新的2个 segment。

默认保留No segment的状态。

参数 默认值 描述

true 如果设置,则Segment内的所有Carbon索引文件

(.carbonindex)将合并为单个Carbon索引合并 文件(.carbonindexmerge)。 这增强了首次查 询性能

查询配置 max.query.ex

ecution.time 60 单次查询允许的最大时间。

单位为分钟。

carbon.enabl

eMinMax true MinMax用于提高查询性能。设置为false可禁用 该功能。

3-6 spark-defaults.conf 中的 Spark 配置参考

参数 默认值 描述

spark.driver.

memory 4G 指定用于driver端进程的内存,其中 SparkContext已初始化。

说明在客户端模式下,不要使用SparkConf在应用程序中 设置该参数,因为驱动程序JVM已经启动。要配置该 参数,请在--driver-memory命令行选项或默认属性 文件中进行配置。

spark.execut

or.memory 4GB 指定每个执行程序进程使用的内存。

参数 默认值 描述

在Spark Driver端的“spark-defaults.conf”文件中配置以下参数。

● 在spark-sql模式下配置:

3-7 spark-sql 模式下的配置参数

log4j.properties Djetty.version=x.y.z

-Dzookeeper.server.principal=zo okeeper/hadoop.<系统域名> -Djava.security.krb5.conf=/opt/

client/KrbClient/kerberos/var/

krb5kdc/krb5.conf

-Djava.security.auth.login.config

=/opt/client/Spark2x/spark/

conf/jaas.conf

-Dorg.xerial.snappy.tempdir=/op t/client/Spark2x/tmp

-Dcarbon.properties.filepath=/o pt/client/Spark2x/spark/conf/

carbon.properties

-Djava.io.tmpdir=/opt/client/

eACLSessionStateBuilder 指定会话状态构造器。

spark.carbo n.sqlastbuil der.classna me

org.apache.spark.sql.hive.Carbo

nInternalSqlAstBuilder 指定AST构造器。

spark.sql.ca

talog.class org.apache.spark.sql.hive.HiveA

CLExternalCatalog 指定Hive的外部目录实现。

启用Spark ACL时必须提供。

spark.sql.hi ve.impleme ntation

org.apache.spark.sql.hive.HiveA

CLClientImpl 指定Hive客户端调用的实 现。启用Spark ACL时必须提 供。

参数 配置值 描述 spark.sql.hi

veClient.isol ation.enabl ed

false 启用Spark ACL时必须提供。

● 在JDBCServer服务中配置:

3-8 JDBCServer 服务中的配置参数 -XX:+PrintGCDetails -XX:-OmitStackTraceI nFastThrow -XX:

+PrintGCTimeSta -XX:MaxMetaspac eSize=512M -XX:

+UseGCLogFileR otation

-XX:NumberOfGC LogFiles=20 -XX:GCLogFileSize

snappy_tmp -Djava.io.tmpdir=

${BIGDATA_HOM E}/tmp/spark2x/

JDBCServer/

io_tmp

-Dcarbon.properti es.filepath=$

{SPARK_CONF_D IR}/carbon.properties -Djdk.tls.ephemer alDHKeySize=20

参数 配置值 描述 48 -Dspark.ssl.keySto re=${SPARK_CONF_D IR}/child.keystore

talog.class org.apache.spark.

sql.hive.HiveACLE xternalCatalog

指定Hive的外部目录实现。启用Spark ACL 时必须提供。

false 启用Spark ACL时必须提供。