华为云用户手册

  • 回答 这是一种误操作的异常情况,需要手动删除对应表的元数据后重试。 例如: 执行以下命令进入控制台: 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';
  • 操作步骤 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger WebUI界面。 在首页中单击“HBASE”区域的组件插件名称如“HBase”。 单击“Add New Policy”,添加HBase权限控制策略。 根据业务需求配置相关参数。 表1 HBase权限参数 参数名称 描述 Policy Name 策略名称,可自定义,不能与本服务内其他策略名称重复。 Policy Conditions IP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。 Policy Label 为当前策略指定一个标签,可以根据这些标签搜索报告和筛选策略。 HBase Table 将适用该策略的表。 可支持通配符“*”,例如“table1:*“表示table1下的所有表。 “Include”策略适用于当前输入的对象,“Exclude”表示策略适用于除去当前输入内容之外的其他对象。 说明: Ranger界面上HBase服务插件的“hbase.rpc.protection”参数值必须和HBase服务端的“hbase.rpc.protection”参数值保持一致。具体请参考配置HBase权限策略时无法使用通配符搜索已存在的HBase表。 HBase Column-family 将适用该策略的列族。 “Include”策略适用于当前输入的对象,“Exclude”表示策略适用于除去当前输入内容之外的其他对象。 HBase Column 将适用该策略的列。 “Include”策略适用于当前输入的对象,“Exclude”表示策略适用于除去当前输入内容之外的其他对象。 Description 策略描述信息。 Audit Logging 是否审计此策略。 Allow Conditions 策略允许条件,配置本策略内允许的权限及例外。 在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的Role、用户组或用户,单击“Add Conditions”,添加策略适用的IP地址范围,单击“Add Permissions”,添加对应权限。 Read:读权限 Write:写权限 Create:创建权限 Admin:管理权限 Select/Deselect All:全选/取消全选 如需让当前条件中的用户或用户组管理本条策略,可勾选“Delegate Admin”使这些用户或用户组成为受委托的管理员。被委托的管理员可以更新、删除本策略,还可以基于原始策略创建子策略。 如需添加多条权限控制规则,可单击按钮添加。如需删除权限控制规则,可单击按钮删除。 Exclude from Allow Conditions:配置策略例外条件。 Deny All Other Accesses 是否拒绝其它所有访问。 True:拒绝其它所有访问 False:设置为False,可配置Deny Conditions。 Deny Conditions 策略拒绝条件,配置本策略内拒绝的权限及例外,配置方法与“Allow Conditions”类似。 拒绝条件的优先级高于“Allow Conditions”中配置的允许条件。 Exclude from Deny Conditions:配置排除在拒绝条件之外的例外规则。 表2 设置权限 任务场景 角色授权操作 设置HBase管理员权限 在首页中单击“HBase”区域的组件插件名称,例如“HBase”。 选择“Policy Name”为“all - table, column-family, column”的策略,单击按钮编辑策略。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 设置用户创建表的权限 在“HBase Table”配置表名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Create”。 该用户具有以下操作权限: create table drop table truncate table alter table enable table flush table flush region compact disable enable desc 设置用户写入数据的权限 在“HBase Table”配置表名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Write”。 该用户具有put,delete,append,incr等操作权限。 设置用户读取数据的权限 在“HBase Table”配置表名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Read”。 该用户具有get,scan操作权限。 设置用户管理命名空间或表的权限 在“HBase Table”配置表名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Admin”。 该用户具有rsgroup,peer,assign,balance等操作权限。 设置列的读取或写入权限 在“HBase Table”配置表名。 在“HBase Column-family”配置列族名。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Read”或者“Write”。 如果用户在hbase shell中执行desc操作,需要同时给该用户赋予hbase:quota表的读权限。 (可选)添加策略有效期。在页面右上角单击“Add Validity period”,设置“Start Time”和“End Time”,选择“Time Zone”。单击“Save”保存。如需添加多条策略有效期,可单击按钮添加。如需删除策略有效期,可单击按钮删除。 单击“Add”,在策略列表可查看策略的基本信息。等待策略生效后,验证相关权限是否正常。 如需禁用某条策略,可单击按钮编辑策略,设置策略开关为“Disabled”。 如果不再使用策略,可单击按钮删除策略。
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 Hive文件存储格式 配置Hive表文件的存储格式(目前支持四种格式:CSV、ORC、RC和PARQUET)。 说明: PARQUET格式是一种列式存储格式,PARQUET要求Loader的输出字段名和Hive表中的字段名保持一致。 Hive 1.2.0版本之后,Hive使用字段名称替代字段序号对ORC文件进行解析,因此,Loader的输出字段名和Hive表中的字段名需要保持一致。 enum 是 CSV Hive文件压缩格式 在下拉菜单中选择Hive表文件的压缩格式,未配置或选择“NONE”表示不压缩数据。 enum 是 NONE Hive ORC文件版本 通过该字段配置ORC文件的版本(当Hive表文件的存储格式是ORC时)。 enum 是 0.12 输出分隔符 配置分隔符。 string 是 无 输出字段 配置输出信息: 位置:配置输出字段的位置。 字段名:配置输出字段的字段名。 类型:配置字段类型,字段类型为“DATE”或“TIME”或“TIMESTAMP”时,需指定特定时间格式,其他类型指定无效。时间格式如:“yyyyMMdd HH:mm:ss”。 十进制格式:配置小数的刻度和精度。 长度:配置字段长度,字段值实际长度太长则按配置的长度截取,“类型”为“CHAR”时实际长度不足则空格补齐,“类型”为“VARCHAR”时实际长度不足则不补齐。 分区键:配置是否为分区列。可以不指定分区列,也可以指定多个分区列。配置多个列为分区列时,会按照配置列的先后顺序对其进行拼接。 map 是 无
  • SDK 服务通过MySQL协议与Doris建立连接,部分语言的SDK已经提供了高可用能力,例如MySQL JDBC可以使用自动重试机制,建立连接时通过如下配置设置数据源: jdbc:mysql:loadbalance://[host1][:port],[host2][:port][,[host3][:port]]...[/[database]][?propertyName1=propertyValue1[&propertyName2=propertyValue2]...] 详细内容可参考https://dev.mysql.com/doc/connector-j/en/connector-j-usagenotes-j2ee-concepts-managing-load-balanced-connections.html。
  • 用户权限模型 ClickHouse用户权限管理实现了对集群中各个ClickHouse实例上用户、角色、权限的统一管理。通过Manager UI的权限管理模块进行创建用户、创建角色、绑定ClickHouse访问权限配置等操作,通过用户绑定角色的方式,实现用户权限控制。 管理资源:Clickhouse权限管理支持的资源如表1所示。 资源权限:ClickHouse支持的资源权限如表2所示。 表1 ClickHouse支持的权限管理对象 资源列表 是否集成 备注 数据库 是(一级) - 表 是(二级) - 视图 是(二级) 与表一致 表2 资源权限列表 资源对象 可选权限 备注 数据库(DATABASE) CREATE CREATE DATABASE/TABLE/VIEW/DICTIONARY权限 表/视图(TABLE/VIEW) SELECT/INSERT -
  • 快速配置常用参数 其他参数在安装集群时已进行了适配,以下参数需要根据使用场景进行调整。以下参数除特别指出外,一般在Spark2x客户端的“spark-defaults.conf”文件中配置。 表1 快速配置常用参数 配置项 说明 默认值 spark.sql.parquet.compression.codec 对于非分区parquet表,设置其存储文件的压缩格式。 在JDBCServer服务端的“spark-defaults.conf”配置文件中进行设置。 snappy spark.dynamicAllocation.enabled 是否使用动态资源调度,用于根据规模调整注册于该应用的executor的数量。目前仅在YARN模式下有效。 JDBCServer默认值为true,client默认值为false。 false spark.executor.memory 每个Executor进程使用的内存数量,与JVM内存设置字符串的格式相同(例如:512m,2g)。 4G spark.sql.autoBroadcastJoinThreshold 当进行join操作时,配置广播的最大值。 当SQL语句中涉及的表中相应字段的大小小于该值时,进行广播。 配置为-1时,将不进行广播。 10485760 spark.yarn.queue JDBCServer服务所在的Yarn队列。 在JDBCServer服务端的“spark-defaults.conf”配置文件中进行设置。 default spark.driver.memory 大集群下推荐配置32~64g驱动程序进程使用的内存数量,即SparkContext初始化的进程(例如:512m, 2g)。 4G spark.yarn.security.credentials.hbase.enabled 是否打开获取HBase token的功能。如果需要Spark-on-HBase功能,并且配置了安全集群,参数值设置为“true”。否则设置为“false”。 false spark.serializer 用于串行化将通过网络发送或需要缓存的对象的类以序列化形式展现。 Java序列化的默认值适用于任何Serializable Java对象,但运行速度相当慢,所以建议使用org.apache.spark.serializer.KryoSerializer并配置Kryo序列化。可以是org.apache.spark.serializer.Serializer的任何子类。 org.apache.spark.serializer.JavaSerializer spark.executor.cores 每个执行者使用的内核个数。 在独立模式和Mesos粗粒度模式下设置此参数。当有足够多的内核时,允许应用程序在同样的worker上执行多个执行程序;否则,在每个worker上,每个应用程序只能运行一个执行程序。 1 spark.shuffle.service.enabled NodeManager中一个长期运行的辅助服务,用于提升Shuffle计算性能。 fasle spark.sql.adaptive.enabled 是否开启自适应执行框架。 false spark.executor.memoryOverhead 每个执行器要分配的堆内存量(单位为兆字节)。 这是占用虚拟机开销的内存,类似于内部字符串,其他内置开销等等。会随着执行器大小(通常为6-10%)而增长。 1GB spark.streaming.kafka.direct.lifo 配置是否开启Kafka后进先出功能。 false
  • 配置描述 参考修改集群服务配置参数进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。 表1 配置自定义调度器的WebUI 参数 描述 默认值 hadoop.http.rmwebapp.scheduler.page.classes 在RM WebUI中为自定义调度器加载相应的web页面。仅当“yarn.resourcemanager.scheduler.class”配置为自定义调度器时此配置项生效。 - yarn.http.rmwebapp.external.classes 在RM的Web服务中加载用户自定义的web应用。 -
  • 数据备份原理介绍 备份操作是将指定表或分区的数据,直接以Doris存储的文件的形式,上传到远端仓库中进行存储。当用户提交Backup请求后,系统内部会做如下操作: 快照及快照上传 备份都是对快照进行操作,快照阶段会对指定的表或分区数据文件进行快照。快照只是对当前数据文件产生一个硬链,耗时较少。快照后,对表进行的更改、导入等操作都不再影响备份的结果。快照完成后,系统会开始对这些快照文件进行逐一上传,由各个Backend并发完成。 元数据准备及上传 数据文件快照上传完成后,Frontend会首先将对应元数据写成本地文件,然后通过Broker将本地元数据文件上传到远端仓库,完成备份作业操作。 如果备份的表是动态分区表,备份之后会自动禁用动态分区属性,在执行数据恢复操作前需手动将该表的动态分区属性启用,命令为: ALTER TABLE tbl1 SET ("dynamic_partition.enable"="true") 数据备份操作不会保留表的colocate_with属性。
  • 前提条件 已创建包含Doris服务的集群,集群内各服务运行正常。 待连接Doris数据库的节点与MRS集群网络互通。 已安装MySQL客户端,相关操作可参考使用MySQL客户端连接Doris章节。 创建具有Doris管理权限的用户。 集群已启用Kerberos认证(安全模式) 在FusionInsight Manager中创建一个人机用户,例如“dorisuser”,创建一个拥有“Doris管理员权限”的角色绑定给该用户。 使用新建的用户dorisuser重新登录FusionInsight Manager,修改该用户初始密码。 集群未启用Kerberos认证(普通模式) 使用admin用户连接Doris后,创建具有管理员权限的角色并绑定给用户。
  • 常用参数 表1 参数说明 配置参数 说明 缺省值 log.dirs Kafka数据存储目录列表,以逗号分隔多个目录。 %{@auto.detect.datapart.bk.log.logs} KAFKA_HEAP_OPTS Kafka启动Broker时使用的jvm选项。建议根据业务需要进行设置。 -Xmx6G -Xms6G auto.create.topics.enable 是否自动创建Topic,如果参数设置为false,发消息前需要通过命令创建Topic。 true default.replication.factor 自动创建Topic时的默认副本数。 2 monitor.preInitDelay 服务启动后,第一次健康检查的延迟时间。如果启动需要较长时间,可以通过调大参数,来完成启动。单位为毫秒。 600000
  • 超时参数 表2 Broker相关超时参数 参数名称 参数说明 默认值 影响分析 controller.socket.timeout.ms Controller连接Broker的超时时间。单位:毫秒。 30000 Controller连接Broker的超时时间,一般不需要调整。 group.max.session.timeout.ms Consumer注册时允许的最大会话超时时间。单位:毫秒。 1800000 允许Consumer配置的session.timeout.ms的最大值(不包含此值)。 group.min.session.timeout.ms Consumer注册时允许的最小会话超时时间。单位:毫秒。 6000 允许Consumer配置的session.timeout.ms的最小值(不包含此值)。 offsets.commit.timeout.ms Offset提交请求的超时时间。单位:毫秒。 5000 Offset提交时被延迟处理的最大超时时间。 replica.socket.timeout.ms 副本数据同步请求的超时时间,配置值不得小于replica.fetch.wait.max.ms。单位:毫秒。 30000 同步线程在发送同步请求之前等待通道建立的最大超时时间,要求配置大于replica.fetch.wait.max.ms。 request.timeout.ms 设置客户端发送连接请求后,等待响应的超时时间。单位:毫秒。 30000 Broker节点上的Controller、Replica线程中传入networkclient连接的超时参数,如果在超时时间内没有接收到响应,那么客户端重新发送,并在达到重试次数后返回请求失败。 transaction.max.timeout.ms 事务允许的最大超时。单位:毫秒。 900000 事务最大超时时间,如果客户端的请求时间超过该值,则Broker将在InitProducerIdRequest中返回一个错误。这样可以防止客户端超时时间过长,而导致消费者无法接收topic。 user.group.cache.timeout.sec 指定缓存中保存用户对应组信息的时间。单位:秒。 300 缓存中用户和组对应关系缓存时间,超过此时间用户信息才会再次通过id -Gn命令查询,在此期间,仅使用缓存中的用户和组对应关系。 zookeeper.connection.timeout.ms 连接ZooKeeper的超时时间。单位:毫秒。 45000 ZooKeeper连接超时时间,这个时间决定了zkclient中初次连接建立过程时允许消耗的时间,超过该时间,zkclient会主动断开。 zookeeper.session.timeout.ms ZooKeeper会话超时时间。如果Broker在此时间内未向ZooKeeper上报心跳,则被认为失效。单位:毫秒。 45000 ZooKeeper会话超时时间。 作用一:这个时间结合传入的ZKURL中ZooKeeper的地址个数,ZooKeeper客户端以(sessionTimeout/传入ZooKeeper地址个数)为连接一个节点的超时时间,超过此时间未连接成功,则尝试连接下一个节点。 作用二:连接建立后,一个会话的超时时间,如ZooKeeper上注册的临时节点BrokerId,当Broker被停止,则该BrokerId,会经过一个sessionTimeout才会被ZooKeeper清理。 表3 Producer相关超时参数 配置名称 说明 默认值 影响分析 request.timeout.ms 指定发送消息请求的请求超时时间。单位:毫秒。 30000 请求超时时间,出现网络问题时,需调大此参数;配置过小,则容易出现Batch Expire异常。 表4 Consumer相关超时参数 配置名称 说明 默认值 影响分析 connections.max.idle.ms 空闲连接的保留时间。单位:毫秒 600000 空闲连接的保留时间,连接空闲时间大于此时间,则会销毁该连接,有需要时重新创建连接。 request.timeout.ms 消费请求的超时时间。单位:毫秒。 30000 请求超时时间,请求超时会失败然后不断重试。
  • 原因分析 Doris支持一个BE节点配置多个存储路径,并支持指定路径的存储介质属性,如SSD或HDD。通常情况下,每块盘配置一个存储路径即可。 如果“be.conf”中只配置了SSD的介质,而FE中参数“default_storage_medium”默认为HDD,因此建表时会发现没有HDD介质的存储而报错。Doris并不会自动感知存储路径所在磁盘的实际存储介质类型,需要用户在路径配置中显式的表示。“.HDD”和“.SSD”只是用于标识存储目录“相对”的“低速”和“高速”之分,而并不是标识实际的存储介质类型,所以如果BE节点上的存储路径没有介质区别,则无需填写后缀。
  • 配置描述 当需要MapReduce shuffle服务绑定特定IP时,需要在NodeManager实例所在节点的配置文件“mapred-site.xml”中(例如路径为:${BIGDATA_HOME}/FusionInsight_HD_xxx/x_xx_NodeManager/etc/mapred-site.xml)设置下面的参数。 表1 参数描述 参数 描述 默认值 mapreduce.shuffle.address 指定地址来运行shuffle服务,格式是IP:PORT,参数的默认值为空。当参数值为空时,将绑定localhost,默认端口为13562。 说明: 如果涉及到的PORT值和配置的mapreduce.shuffle.port值不一样时,mapreduce.shuffle.port将不会生效。 -
  • 场景介绍 HBase本身提供了ImportTsv&LoadIncremental工具来批量加载用户数据。当前提供了HIndexImportTsv来支持加载用户数据的同时可以完成对索引数据的批量加载。HIndexImportTsv继承了HBase批量加载数据工具ImportTsv的所有功能。此外,如果在执行HIndexImportTsv工具之前未建表,直接运行该工具,将会在创建表时创建索引,并在生成用户数据的同时生成索引数据。
  • 操作场景 此功能适用于Hive组件。 开启此功能后,在执行写目录:insert overwrite directory “/path1/path2/path3” ...时,其中“/path1/path2”目录权限为700且属主为当前用户,“path3”目录不存在,会自动创建“path3”目录,并写数据成功。 上述功能,在Hive参数“hive.server2.enable.doAs”为“true”时已经支持,本次增加当“hive.server2.enable.doAs”为“false”时的功能支持。 本功能参数调整与配置Hive目录旧数据自动移除至回收站添加的自定义参数相同。
  • 操作场景 HDFS Colocation(同分布)是HDFS提供的数据分布控制功能,利用HDFS Colocation接口,可以将存在关联关系或者可能进行关联操作的数据存放在相同的存储节点上。Hive支持HDFS的Colocation功能,即在创建Hive表时,设置表文件分布的locator信息,当使用insert语句向该表中插入数据时会将该表的数据文件存放在相同的存储节点上(不支持其他数据导入方式),从而使后续的多表关联的数据计算更加方便和高效。表格式只支持TextFile和RCFile。
  • 配置场景 ORC文件格式是一种Hadoop生态圈中的列式存储格式,它最初产生自Apache Hive,用于降低Hadoop数据存储空间和加速Hive查询速度。和Parquet文件格式类似,它并不是一个单纯的列式存储格式,仍然是首先根据行组分割整个表,在每一个行组内按列进行存储,并且文件中的数据尽可能的压缩来降低存储空间的消耗。矢量化读取ORC格式的数据能够大幅提升ORC数据读取性能。在Spark2.3版本中,SparkSQL支持矢量化读取ORC数据(这个特性在Hive的历史版本中已经得到支持)。矢量化读取ORC格式的数据能够获得比传统读取方式数倍的性能提升。 该特性可以通过下面的配置项开启: “spark.sql.orc.enableVectorizedReader”:指定是否支持矢量化方式读取ORC格式的数据,默认为true。 “spark.sql.codegen.wholeStage”:指定是否需要将多个操作的所有stage编译为一个java方法,默认为true。 “spark.sql.codegen.maxFields”:指定codegen的所有stage所支持的最大字段数(包括嵌套字段),默认为100。 “spark.sql.orc.impl”:指定使用Hive还是Spark SQL native作为SQL执行引擎来读取ORC数据,默认为hive。
  • HBase全局二级索引API介绍说明 使用全局索引的API都在类“org.apache.hadoop.hbase.hindex.global.GlobalIndexAdmin”中,相关接口介绍如下: 操作 接口 描述 添加索引 addIndices() 将索引添加到没有数据的表中。调用此接口会将用户指定的索引添加到表中,但会跳过生成索引数据。该接口的使用场景为用户想要在具有大量预先存在用户数据的表上批量添加索引,然后使用GlobalTableIndexer工具来构建索引数据。 addIndicesWithData() 将索引添加到有数据的表中。此方法将用户指定的索引添加到表中,并会对已经存在的用户数据创建对应的索引数据,也可先调用该方法生成索引再在存入用户数据的同时生成索引数据。当数据表中存在大量数据时,不建议使用此接口。 删除索引 dropIndices() 仅删除索引,索引元数据与索引数据均会被删除,在此操作之后,索引不能用于scan/filter操作。 索引状态修改 alterGlobalIndicesUnusable() 禁用用户指定的索引,使其不再可用于scan/filter操作。 alterGlobalIndicesActive() 启用用户指定的索引,使其可用于scan/filter操作。 alterGlobalIndicesInactive() 禁用用户指定的索引,且放弃生成索引数据,不再可用于scan/filter操作,通常用于索引修复流程。 查看已创建的索引 listIndices() 可用于列出给定表中的所有索引。 父主题: HBase常见问题
  • Ranger用户类型 Ranger中的用户可分为Admin、User、Auditor等类型,不同用户具有的Ranger管理界面查看和操作权限不同。 Admin:Ranger安全管理员,可查看所有页面内容,进行服务权限管理插件及权限访问控制策略的管理操作,可查看审计信息内容,可进行用户类型设置。 Auditor:Ranger审计管理员,可查看服务权限管理插件及权限访问控制策略的内容。 User:普通用户,可以被Ranger管理员赋予具体权限。
  • Loader连接配置说明 Loader支持以下多种连接: generic-jdbc-connector:参数配置请参见表1。 ftp-connector:参数配置请参见表2。 sftp-connector:参数配置请参见表3。 hdfs-connector:参数配置请参见表4。 oracle-connector:参数配置请参见表5。 mysql-fastpath-connector:参数配置请参见表7。 oracle-partition-connector:参数配置请参见表6。
  • 操作场景 HDFS部署在具有多个NameNode实例的HA(High Availability)模式中,HDFS客户端需要依次连接到每个NameNode,以确定当前活动的NameNode是什么,并将其用于客户端操作。 一旦识别出来,当前活动的NameNode的详细信息就可以被缓存并共享给在客户端机器中运行的所有客户端。这样,每个新客户端可以首先尝试从缓存加载活动的Name Node的详细信息,并将RPC调用保存到备用的NameNode。在异常情况下有很多优势,例如当备用的NameNode连接长时间不响应时。 当发生故障,将另一个NameNode切换为活动状态时,缓存的详细信息将被更新为当前活动的NameNode的信息。
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 Spark文件存储格式 配置SparkSQL表文件的存储格式(目前支持四种格式:CSV、ORC、RC和PARQUET)。 说明: PARQUET格式是一种列式存储格式,PARQUET要求Loader的输出字段名和SparkSQL表中的字段名保持一致。 Hive 1.2.0版本之后,Hive使用字段名称替代字段序号对ORC文件进行解析,因此,Loader的输出字段名和SparkSQL表中的字段名需要保持一致。 enum 是 CSV Spark文件压缩格式 在下拉菜单中选择SparkSQL表文件的压缩格式,未配置或选择“NONE”表示不压缩数据。 enum 是 NONE Spark ORC文件版本 通过该字段配置ORC文件的版本(当SparkSQL表文件的存储格式是ORC时)。 enum 是 0.12 输出分隔符 配置分隔符。 string 是 无 输出字段 配置输出信息: 位置:配置输出字段的位置。 字段名:配置输出字段的字段名。 类型:配置字段类型,字段类型为“DATE”或“TIME”或“TIMESTAMP”时,需指定特定时间格式,其他类型指定无效。时间格式如:“yyyyMMdd HH:mm:ss”。 十进制格式:配置小数的刻度和精度。 长度:配置字段长度,字段值实际长度太长则按配置的长度截取,“类型”为“CHAR”时实际长度不足则空格补齐,“类型”为“VARCHAR”时实际长度不足则不补齐。 分区键:配置是否为分区列。可以不指定分区列,也可以指定多个分区列。配置多个列为分区列时,会按照配置列的先后顺序对其进行拼接。 map 是 无
  • 操作步骤 通过调大如下的参数来进行AM调优。 参数入口: 在Yarn客户端的“mapred-site.xml”配置文件中调整如下参数。“mapred-site.xml”配置文件在客户端安装路径的conf目录下,例如“/opt/client/Yarn/config”。 参数 描述 默认值 yarn.app.mapreduce.am.resource.mb 该参数值必须大于下面参数的堆大小。单位:MB 1536 yarn.app.mapreduce.am.command-opts 传递到MapReduce ApplicationMaster的JVM启动参数。 -Xmx1024m -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -verbose:gc -Djava.security.krb5.conf=${KRB5_CONFIG} -Dhadoop.home.dir=${BIGDATA_HOME}/FusionInsight_HD_xxx/install/FusionInsight-Hadoop-xxx/hadoop
  • 参数说明 表1 算子参数说明 参数 含义 类型 是否必填 默认值 分隔符 CSV文件的列分隔符,用于分隔每行的数据。 string 是 , 换行符 用户根据数据实际情况,填写字符串作为换行符。支持任何字符串。默认使用操作系统的换行符。 string 否 \n 文件名是否作为字段 自定义一个字段,以当前数据所在的文件名作为该字段值。 string 否 无 绝对路径 配置“文件名是否作为字段”引用文件名环境,选中单选框时是带绝对路径的文件名;不选中单选框时是不带路径的文件名。 boolean 否 不选中 验证输入字段 是否检验输入字段与值的类型匹配情况,值为“NO”,不检查;值为“YES”,检查。如果不匹配则跳过该行。 enum 是 YES 输入字段 配置输入字段的相关信息: 位置:源文件每行被列分隔符分隔后,目标字段对应的位置,从1开始编号。 字段名:配置字段名。 类型:配置字段类型。 数据格式:字段类型为“DATE”或“TIM”E或“TIMESTAMP”时,需指定特定时间格式,其他字段类型指定无效。时间格式如:“yyyyMMdd HH:mm:ss”。 长度:配置字段长度,字段值太长则按配置的长度截取,类型为“CHAR”时实际长度不足则空格补齐,类型为“VARCHAR”时实际长度不足则不补齐。 map 是 无
  • 前提条件 集群已安装CDL、Hudi服务且运行正常。 ThirdKafka数据库的Topic需要能被MRS集群消费,操作步骤请参考ThirdPartyKafka前置准备。 在FusionInsight Manager中创建一个人机用户,例如“cdluser”,加入用户组cdladmin、hadoop、kafka、supergroup,主组选择“cdladmin”组,关联角色“System_administrator”。
  • 容量规格 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个数。
  • 安全性 Spark目前支持通过共享密钥认证。可以通过spark.authenticate配置参数配置认证。该参数控制Spark通信协议是否使用共享密钥执行认证。该认证是确保双边都有相同的共享密钥并被允许通信的基本握手。如果共享密钥不同,通信将不被允许。共享密钥通过如下方式创建: 对于YARN部署的Spark,将spark.authenticate配置为真会自动处理生成和分发共享密钥。每个应用程序会独占一个共享密钥。 对于其他类型部署的Spark,应该在每个节点上配置Spark参数spark.authenticate.secret。所有Master/Workers和应用程序都将使用该密钥。 表25 参数说明 参数 描述 默认值 spark.acls.enable 是否开启Spark acls。如果开启,它将检查用户是否有访问和修改job的权限。请注意这要求用户可以被识别。如果用户被识别为无效,检查将不被执行。UI可以使用过滤器认证和设置用户。 true spark.admin.acls 逗号分隔的有权限访问和修改所有Spark job的用户/管理员列表。如果在共享集群上运行并且工作时有MRS集群管理员或开发人员帮助调试,可以使用该列表。 admin spark.authenticate 是否Spark认证其内部连接。如果不是运行在YARN上,请参见spark.authenticate.secret。 true spark.authenticate.secret 设置Spark各组件之间验证的密钥。如果不是运行在YARN上且认证未开启,需要设置该项。 - spark.modify.acls 逗号分隔的有权限修改Spark job的用户列表。默认情况下只有开启Spark job的用户才有修改列表的权限(例如删除列表)。 - spark.ui.view.acls 逗号分隔的有权限访问Spark web ui的用户列表。默认情况下只有开启Spark job的用户才有访问权限。 -
  • 开启Spark进程间的认证机制 目前Spark进程间支持共享密钥方式的认证机制,通过配置spark.authenticate可以控制Spark在通信过程中是否做认证。这种认证方式只是通过简单的握手来确定通信双方享有共同的密钥。 在Spark客户端的“spark-defaults.conf”文件中配置如下参数。 表26 参数说明 参数 描述 默认值 spark.authenticate 在Spark on YARN模式下,将该参数配置成true即可。密钥的生成和分发过程是自动完成的,并且每个应用独占一个密钥。 true
  • Compression 数据压缩是一个以CPU换内存的优化策略,因此当Spark内存严重不足的时候(由于内存计算的特质,这种情况非常常见),使用压缩可以大幅提高性能。目前Spark支持三种压缩算法:snappy,lz4,lzf。Snappy为默认压缩算法,并且调用native方法进行压缩与解压缩,在Yarn模式下需要注意堆外内存对Container进程的影响。 表27 参数说明 参数 描述 默认值 spark.io.compression.codec 用于压缩内部数据的codec,例如RDD分区、广播变量和shuffle输出。默认情况下,Spark支持三种压缩算法:lz4,lzf和snappy。可以使用完全合格的类名称指定算法,例如org.apache.spark.io.LZ4CompressionCodec、org.apache.spark.io.LZFCompressionCodec及org.apache.spark.io.SnappyCompressionCodec。 lz4 spark.io.compression.lz4.block.size 当使用LZ4压缩算法时LZ4压缩中使用的块大小(字节)。当使用LZ4时降低块大小同样也会降低shuffle内存使用。 32768 spark.io.compression.snappy.block.size 当使用Snappy压缩算法时Snappy压缩中使用的块大小(字节)。当使用Snappy时降低块大小同样也会降低shuffle内存使用。 32768 spark.shuffle.compress 是否压缩map任务输出文件。建议压缩。使用spark.io.compression.codec进行压缩。 true spark.shuffle.spill.compress 是否压缩在shuffle期间溢出的数据。使用spark.io.compression.codec进行压缩。 true spark.eventLog.compress 设置当spark.eventLog.enabled设置为true时是否压缩记录的事件。 false spark.broadcast.compress 在发送之前是否压缩广播变量。建议压缩。 true spark.rdd.compress 是否压缩序列化的RDD分区(例如StorageLevel.MEMORY_ONLY_SER的分区)。牺牲部分额外CPU的时间可以节省大量空间。 false
  • Broadcast Broadcast用于Spark进程间数据块的传输。Spark中无论Jar包、文件还是闭包以及返回的结果都会使用Broadcast。目前的Broadcast支持两种方式,Torrent与HTTP。前者将会把数据切成小片,分布到集群中,有需要时从远程获取;后者将文件存入到本地磁盘,有需要时通过HTTP方式将整个文件传输到远端。前者稳定性优于后者,因此Torrent为默认的Broadcast方式。 表19 参数说明 参数 描述 默认值 spark.broadcast.factory 使用的广播方式。 org.apache.spark.broadcast.TorrentBroadcastFactory spark.broadcast.blockSize TorrentBroadcastFactory的块大小。该值过大会降低广播时的并行度(速度变慢),过小可能会影响BlockManager的性能。 4096 spark.broadcast.compress 在发送广播变量之前是否压缩。建议压缩。 true
共100000条