华为云用户手册

  • 日志描述 日志存储路径: Executor运行日志:“${BIGDATA_DATA_HOME}/hadoop/data${i}/nm/containerlogs/application_${appid}/container_{$contid}” 运行中的任务日志存储在以上路径中,运行结束后会基于Yarn的配置确定是否汇聚到HDFS目录中,详情请参见Yarn常用参数。 其他日志:“/var/log/Bigdata/spark2x” 日志归档规则: 使用yarn-client或yarn-cluster模式提交任务时,Executor日志默认50MB滚动存储一次,最多保留10个文件,不压缩。 JobHistory2x日志默认100MB滚动存储一次,最多保留100个文件,压缩存储。 JD BCS erver2x日志默认100MB滚动存储一次,最多保留100个文件,压缩存储。 IndexServer2x日志默认100MB滚动存储一次,最多保留100个文件,压缩存储。 JDB CS erver2x审计日志默认20MB滚动存储一次,最多保留20个文件,压缩存储。 日志大小和压缩文件保留个数可以在 FusionInsight Manager界面中配置。 表1 Spark2x日志列表 日志类型 日志文件名 描述 SparkResource2x日志 spark.log Spark2x服务初始化日志。 prestart.log prestart脚本日志。 cleanup.log 安装卸载实例时的清理日志。 spark-availability-check.log Spark2x服务健康检查日志。 spark-service-check.log Spark2x服务检查日志 JDBCServer2x日志 JDBCServer-start.log JDBCServer2x启动日志。 JDBCServer-stop.log JDBCServer2x停止日志。 JDBCServer.log JDBCServer2x运行时,Driver端日志。 jdbc-state-check.log JDBCServer2x健康检查日志。 jdbcserver-omm-pid***-gc.log.*.current JDBCServer2x进程gc日志。 spark-omm-org.apache.spark.sql.hive.thriftserver.HiveThriftProxyServer2-***.out* JDBCServer2x进程启动信息日志。如果进程停止,会打印jstack信息。 JobHistory2x日志 jobHistory-start.log JobHistory2x启动日志。 jobHistory-stop.log JobHistory2x停止日志。 JobHistory.log JobHistory2x运行过程日志。 jobhistory-omm-pid***-gc.log.*.current JobHistory2x进程gc日志。 spark-omm-org.apache.spark.deploy.history.HistoryServer-***.out* JobHistory2x进程启动信息日志。如果进程停止,会打印jstack信息。 IndexServer2x日志 IndexServer-start.log IndexServer2x启动日志。 IndexServer-stop.log IndexServer2x停止日志。 IndexServer.log IndexServer2x运行时,Driver端日志。 indexserver-state-check.log IndexServer2x健康检查日志。 indexserver-omm-pid***-gc.log.*.current IndexServer2x进程gc日志。 spark-omm-org.apache.spark.sql.hive.thriftserver.IndexServerProxy-***.out* IndexServer2x进程启动信息日志。如果进程停止,会打印jstack信息。 审计日志 jdbcserver-audit.log ranger-audit.log JDBCServer2x审计日志。
  • 操作场景 此功能适用于Hive组件。 按如下操作步骤设置参数后,在未安装HBase的环境执行Hive on Spark任务时,可避免任务卡顿。 Hive on Spark任务的Spark内核版本已经升级到Spark2x,可以支持在不安装Spark2x的情况下,执行Hive on Spark任务。如果没有安装HBase,默认在执行Spark任务时,会尝试去连接Zookeeper访问HBase,直到超时,这样会造成任务卡顿。 在未安装HBase的环境,要执行Hive on Spark任务,可以按如下操作处理。如果是从已有HBase低版本环境升级上来的,升级完成之后可不进行设置。
  • 示例 假设表包含4个列,分别命名为a1,b1,c1和d1。 删除单个列: ALTER TABLE carbon DROP COLUMNS (b1); ALTER TABLE test_db.carbon DROP COLUMNS (b1); 删除多个列: ALTER TABLE carbon DROP COLUMNS (b1,c1); ALTER TABLE test_db.carbon DROP COLUMNS (b1,c1);
  • 操作步骤 JVM GC参数 RegionServer GC_OPTS参数设置建议: -Xms与-Xmx设置相同的值,需要根据实际情况设置,增大内存可以提高读写性能,可以参考参数“hfile.block.cache.size”(见表2)和参数“hbase.regionserver.global.memstore.size”(见表1)的介绍进行设置。 -XX:NewSize与-XX:MaxNewSize设置相同值,建议低负载场景下设置为“512M”,高负载场景下设置为“2048M”。 -XX:CMSInitiatingOccupancyFraction建议设置为“100 * (hfile.block.cache.size + hbase.regionserver.global.memstore.size + 0.05)”,最大值不超过90。 -XX:MaxDirectMemorySize表示JVM使用的堆外内存,建议低负载情况下设置为“512M”,高负载情况下设置为“2048M”。 GC_OPTS参数中-XX:MaxDirectMemorySize默认没有配置,如需配置,用户可在GC_OPTS参数中自定义添加。 Put相关参数 RegionServer处理put请求的数据,会将数据写入memstore和hlog, 当memstore大小达到设置的“hbase.hregion.memstore.flush.size”参数值大小时,memstore就会刷新到HDFS生成HFile。 当当前region的列簇的HFile数量达到“hbase.hstore.compaction.min”参数值时会触发compaction。 当当前region的列簇HFile数达到“hbase.hstore.blockingStoreFiles”参数值时会阻塞memstore刷新生成HFile的操作,导致put请求阻塞。 表1 Put相关参数 参数 描述 默认值 hbase.wal.hsync 每一条wal是否持久化到硬盘。 参考提升连续put场景性能。 true hbase.hfile.hsync hfile写是否立即持久化到硬盘。 参考提升连续put场景性能。 true hbase.hregion.memstore.flush.size 如果MemStore的大小(单位:Byte)超过指定值,MemStore将被冲洗至磁盘。该参数值将被运行每个hbase.server.thread.wakefrequency的线程所检验。建议设置为HDFS块大小的整数倍,在内存足够put负载大情况下可以调整增大。 134217728 hbase.regionserver.global.memstore.size 更新被锁定以及强制冲洗发生之前一个RegionServer上支持的所有MemStore的大小。建议设置为“hbase.hregion.memstore.flush.size * 写活跃region数 / RegionServer GC -Xmx”。默认值为“0.4”,表示使用RegionServer GC -Xmx的40%。 0.4 hbase.hstore.flusher.count memstore的flush线程数,在put高负载场景下可以适当调大。 2 hbase.regionserver.thread.compaction.small 小压缩线程数,在put高负载情况下可以适当调大。 10 hbase.hstore.blockingStoreFiles 如果一个Store内的HStoreFile文件数量超过指定值,则针对此HRegion的更新将被锁定直到一个压缩完成或者base.hstore.blockingWaitTime被超过。每冲洗一次MemStore一个StoreFile文件被写入。在put高负载场景下可以适当调大。 15 Scan相关参数 表2 Scan相关参数 参数 描述 默认值 hbase.client.scanner.timeout.period 客户端和RegionServer端参数,表示客户端执行scan的租约超时时间。建议设置为60000ms的整数倍,在读高负载情况下可以适当调大。单位:毫秒。 60000 hfile.block.cache.size 数据缓存所占的RegionServer GC -Xmx百分比,在读高负载情况下可以适当调大以增大缓存命中率以提高性能。表示分配给HFile/StoreFile所使用的块缓存的最大heap(-Xmx setting)的百分比。 当offheap关闭时,默认值为0.25,当offheap开启时,默认值是0.1。 Handler相关参数 表3 Handler相关参数 参数 描述 默认值 hbase.regionserver.handler.count RegionServer上的RPC侦听器实例数,建议设置为200 ~ 400之间。 200 hbase.regionserver.metahandler.count RegionServer中处理优先请求的程序实例的数量,建议设置为200 ~ 400之间。 200
  • 示例 data.csv源文件数据如下所示: ID,date,country,name,phonetype,serialname,salary 4,2014-01-21 00:00:00,xxx,aaa4,phone2435,ASD66902,15003 5,2014-01-22 00:00:00,xxx,aaa5,phone2441,ASD90633,15004 6,2014-03-07 00:00:00,xxx,aaa6,phone294,ASD59961,15005 CREATE TABLE carbontable(ID int, date Timestamp, country String, name String, phonetype String, serialname String,salary int) STORED AS carbondata; LOAD DATA inpath 'hdfs://hacluster/tmp/data.csv' INTO table carbontable options('DELIMITER'=',');
  • 注意事项 以下是可以在加载数据时使用的配置选项: DELIMITER:可以在加载命令中提供分隔符和引号字符。默认值为,。 OPTIONS('DELIMITER'=',' , 'QUOTECHAR'='"') 可使用'DELIMITER'='\t'来表示用制表符tab对CSV数据进行分隔。 OPTIONS('DELIMITER'='\t') CarbonData也支持\001和\017作为分隔符。 对于CSV数据,分隔符为单引号(')时,单引号必须在双引号(" ")内。例如:'DELIMITER'= "'"。 QUOTECHAR:可以在加载命令中提供分隔符和引号字符。默认值为"。 OPTIONS('DELIMITER'=',' , 'QUOTECHAR'='"') COMMENTCHAR:可以在加载命令中提供注释字符。在加载操作期间,如果在行的开头遇到注释字符,那么该行将被视为注释,并且不会被加载。默认值为#。 OPTIONS('COMMENTCHAR'='#') FILEHEADER:如果源文件中没有表头,可在LOAD DATA命令中提供表头。 OPTIONS('FILEHEADER'='column1,column2') ESCAPECHAR:如果用户想在CSV上对Escape字符进行严格验证,可以提供Escape字符。默认值为\。 OPTIONS('ESCAPECHAR'='\') 如果在CSV数据中输入ESCAPECHAR,该ESCAPECHAR必须在双引号(" ")内。例如:"a\b"。 Bad Records处理: 为了使数据处理应用程序为用户增值,不可避免地需要对数据进行某种程度的集成。在大多数情况下,数据质量问题源于生成源数据的上游(主要)系统。 有两种完全不同的方式处理Bad Data: 按照原始数据加载所有数据,之后进行除错处理。 在进入数据源的过程中,可以清理或擦除Bad Data,或者在发现Bad Data时让数据加载失败。 有多个选项可用于在CarbonData数据加载过程中清除源数据。对于CarbonData数据中的Bad Records管理,请参见表2。 表2 Bad Records Logger 配置项 默认值 描述 BAD_RECORDS_ LOG GER_ENABLE false 如果设置为true,则将创建Bad Records日志文件,其中包含Bad Records的详细信息。 BAD_RECORDS_ACTION FAIL 以下为Bad Records的四种操作类型: FORCE:通过将Bad Records存储为NULL来自动校正数据。 REDIRECT:无法加载Bad Records,并将其写入BAD_RECORD_PATH下的CSV文件中,默认不开启该类型,如需使用该类型,需要设置参数carbon.enable.badrecord.action.redirect为true。 IGNORE:既不加载Bad Records也不将其写入CSV文件。 FAIL:如果发现存在Bad Records,数据加载将会失败。 说明: 在加载数据时,如果所有记录都是Bad Records,则参数BAD_RECORDS_ACTION将不起作用,加载数据操作将会失败。 IS_EMPTY_DATA_BAD_RECORD false 如果设置为“false”,则空(""或''或,,)数据将不被视为Bad Records,如果设置为“true”,则空数据将被视为Bad Records。 BAD_RECORD_PATH - 指定存储Bad Records的HDFS路径。默认值为Null。 如果启用了Bad Records日志记录或者Bad Records操作重定向,则该路径必须由用户进行配置。 示例: LOAD DATA INPATH 'filepath.csv' INTO TABLE tablename OPTIONS('BAD_RECORDS_LOGGER_ENABLE'='true', 'BAD_RECORD_PATH'='hdfs://hacluster/tmp/carbon', 'BAD_RECORDS_ACTION'='REDIRECT', 'IS_EMPTY_DATA_BAD_RECORD'='false'); 使用“REDIRECT”选项,CarbonData会将所有的Bad Records添加到单独的CSV文件中,但是该文件内容不能用于后续的数据加载,因为其内容可能无法与源记录完全匹配。用户必须清理原始源记录以便于进一步的数据提取。该选项的目的只是让用户知道哪些记录被视为Bad Records。 MAXCOLUMNS:该可选参数指定了在一行中,由CSV解析器解析的最大列数。 OPTIONS('MAXCOLUMNS'='400') 表3 MAXCOLUMNS 可选参数名称 默认值 最大值 MAXCOLUMNS 2000 20000 表4 MAXCOLUMNS可选参数的行为图 MAXCOLUMNS值 在文件Header选项中的列数 考虑的最终值 在加载项中未指定 5 2000 在加载项中未指定 6000 6000 40 7 文件header列数与MAXCOLUMNS值,两者中的最大值 22000 40 20000 60 在加载项中未指定 CSV文件第一行的列数与MAXCOLUMNS值,两者中的最大值 对于设置MAXCOLUMNS Option的最大值,要求executor具有足够的内存,否则,数据加载会由于内存不足的错误而失败。
  • 问题 执行超过50T数据的shuffle过程时,出现部分Executor注册shuffle service超时然后丢失从而导致任务失败的问题。错误日志如下所示: 2016-10-19 01:33:34,030 | WARN | ContainersLauncher #14 | Exception from container-launch with container ID: container_e1452_1476801295027_2003_01_004512 and exit code: 1 | LinuxContainerExecutor.java:397 ExitCodeException exitCode=1: at org.apache.hadoop.util.Shell.runCommand(Shell.java:561) at org.apache.hadoop.util.Shell.run(Shell.java:472) at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:738) at org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor.launchContainer(LinuxContainerExecutor.java:381) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:312) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:88) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 2016-10-19 01:33:34,031 | INFO | ContainersLauncher #14 | Exception from container-launch. | ContainerExecutor.java:300 2016-10-19 01:33:34,031 | INFO | ContainersLauncher #14 | Container id: container_e1452_1476801295027_2003_01_004512 | ContainerExecutor.java:300 2016-10-19 01:33:34,031 | INFO | ContainersLauncher #14 | Exit code: 1 | ContainerExecutor.java:300 2016-10-19 01:33:34,031 | INFO | ContainersLauncher #14 | Stack trace: ExitCodeException exitCode=1: | ContainerExecutor.java:300
  • 回答 由于当前数据量较大,有50T数据导入,超过了shuffle的规格,shuffle负载过高,shuffle service服务处于过载状态,可能无法及时响应Executor的注册请求,从而出现上面的问题。 Executor注册shuffle service的超时时间是5秒,最多重试3次,该参数目前不可配。 建议适当调大task retry次数和Executor失败次数。 在客户端的“spark-defaults.conf”配置文件中配置如下参数。“spark.yarn.max.executor.failures”如果不存在,则手动添加该参数项。 表1 参数说明 参数 描述 默认值 spark.task.maxFailures task retry次数。 4 spark.yarn.max.executor.failures Executor失败次数。 关闭Executor个数动态分配功能的场景即“spark.dynamicAllocation.enabled”参数设为“false”时。 numExecutors * 2, with minimum of 3 Executor失败次数。 开启Executor个数动态分配功能的场景即“spark.dynamicAllocation.enabled”参数设为“true”时。 3
  • 操作示例 beeline启动断线重连功能。 示例: beeline -e "${SQL}" --hivevar batchid=xxxxx beeline kill正在运行的任务。 示例: beeline -e "" --hivevar batchid=xxxxx --hivevar kill=true 登录beeline客户端,启动断线重连机制。 登录beeline客户端后,执行“set hivevar:batchid=xxxx” 使用说明: 其中“xxxx”表示每一次通过beeline提交任务的批次号,通过该批次号,可以识别出先提交的任务。如果提交任务时不带批次号,该特性功能不会启用。“xxxx”的值是执行任务时指定的,如下所示,“xxxx”值为“012345678901”: beeline -f hdfs://hacluster/user/hive/table.sql --hivevar batchid=012345678901 如果运行的SQL脚本依赖数据的失效性,建议不启用断点重连机制,或者每次运行时使用新的batchid。因为重复执行时,可能由于某些SQL语句已经执行过了不再重新执行,导致获取到过期的数据。 如果SQL脚本中使用了一些内置时间函数,建议不启用断点重连机制,或者每次运行时使用新的batchid,理由同上。 一个SQL脚本里面会包含一个或多个子任务。如果SQL脚本中存在先创建再删除临时表的逻辑,建议将删除临时表的逻辑放到脚本的最后。假定删除临时表子任务的后续子任务执行失败,并且删除临时表的子任务之前的子任务用到了该临时表;当下一次以相同batchid执行该SQL脚本时,因为临时表在上一次执行时已被删除,则会导致删除临时表的子任务之前用到该临时表的子任务(不包括创建该临时表的子任务,因为上一次已经执行成功,本次不会再执行,仅可编译)编译失败。这种情况下,建议使用新的batchid执行脚本。 参数说明: zk.cleanup.finished.job.interval:执行清理任务的间隔时间,默认隔60s执行一次。 zk.cleanup.finished.job.outdated.threshold:节点的过期时间,每个批次的任务都会生成对应节点,从当前批次任务的结束时间开始算,如果超过60分钟,则表示已经过期了,那么就清除节点。 batch.job.max.retry.count:单批次任务的最大重试次数,当单批次的任务失败重试次数超过这个值,就会删除该任务记录,下次运行时将从头开始运行,默认是10次。 beeline.reconnect.zk.path:存储任务执行进度的根节点,Hive服务默认是/beeline。
  • 操作场景 在批处理任务运行过程中,beeline客户端由于网络异常等问题断线时,Hive能支持beeline在断线前已经提交的任务继续运行。当再次运行该批处理任务时,已经提交过的任务不再重新执行,直接从下一个任务开始执行。 在批处理任务运行过程中,HiveServer服务由于某些原因导致故障时,Hive能支持当再次运行该批处理任务时,已经成功执行完成的任务不再重新执行,直接从HiveServer2故障时正在运行的任务开始运行。
  • 前提条件 已创建用于访问HetuEngine WebUI界面的用户,如hetu_user,用户创建具体操作请参见创建HetuEngine用户。 已在待操作集群创建所需租户。请确保修改HetuEngine计算实例配置时,对应的租户有足够的内存和CPU资源。 创建HetuEngine计算实例时必须使用“叶子租户”类型的租户,只有叶子租户的队列才能提交Yarn任务。 为了避免资源竞争带来的不确定性因素,建议为HetuEngine使用的租户创建独立资源池。
  • 计算实例状态说明 MRS 3.3.0及以后版本计算实例创建成功后,可在“计算实例”页签查看当前已创建的实例信息,包括实例所属租户名、对应实例数量、实例状态和资源总量等,实例状态信息如下: 图1 计算实例状态 绿色图标:实例处于运行中或亚健康状态。 红色图标:实例故障。 灰色图标:实例已停止、待启动。 蓝色图标:实例处于其他状态,包括扩容中、缩容中、滚动重启中、创建中、启动中、安全启动中、停止中、安全停机中、删除中、已删除、停止中等。
  • 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”。
  • 示例 ALTER TABLE ProductDatabase COMPACT 'MINOR'; ALTER TABLE ProductDatabase COMPACT 'MAJOR'; ALTER TABLE ProductDatabase COMPACT 'SEGMENT_INDEX'; ALTER TABLE ProductDatabase COMPACT 'CUSTOM' WHERE SEGMENT.ID IN (0, 1);
  • 系统响应 由于为后台运行,ALTER TABLE COMPACTION命令不会显示压缩响应。 如果想要查看MINOR合并和MAJOR合并的响应结果,用户可以检查日志或运行SHOW SEGMENTS命令查看。 示例: +------+------------+--------------------------+------------------+------------+------------+-------------+--------------+--+ | ID | Status | Load Start Time | Load Time Taken | Partition | Data Size | Index Size | File Format | +------+------------+--------------------------+------------------+------------+------------+-------------+--------------+--+ | 3 | Success | 2020-09-28 22:53:26.336 | 3.726S | {} | 6.47KB | 3.30KB | columnar_v3 | | 2 | Success | 2020-09-28 22:53:01.702 | 6.688S | {} | 6.47KB | 3.30KB | columnar_v3 | | 1 | Compacted | 2020-09-28 22:51:15.242 | 5.82S | {} | 6.50KB | 3.43KB | columnar_v3 | | 0.1 | Success | 2020-10-30 20:49:24.561 | 16.66S | {} | 12.87KB | 6.91KB | columnar_v3 | | 0 | Compacted | 2020-09-28 22:51:02.6 | 6.819S | {} | 6.50KB | 3.43KB | columnar_v3 | +------+------------+--------------------------+------------------+------------+------------+-------------+--------------+--+ 其中, Compacted表示该数据已被合并。 0.1表示segment0与segment1合并之后的结果。 数据合并前后的其他操作没有差别。 被合并的segments(例如segment0和segment1)即成为无用的segments,会占用空间,因此建议合并之后使用CLEAN FILES命令进行彻底删除,再进行其他操作。CLEAN FILES命令的使用方法可参考CLEAN FILES。
  • 参数描述 表1 ALTER TABLE COMPACTION参数描述 Parameter Description db_name 数据库名。如果未指定,则选择当前数据库。 table_name 表名。 MINOR Minor合并,详见合并Segments。 MAJOR Major合并,详见合并Segments。 SEGMENT_INDEX 这会将一个segment内的所有Carbon索引文件(.carbonindex)合并为一个Carbon索引合并文件(.carbonindexmerge)。 这增强了首次查询性能。详见表1。 CUSTOM Custom合并,详见合并Segments。
  • 操作步骤 以客户端安装用户登录HetuEngine服务客户端所在节点,切换到客户端安装目录。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 根据集群认证模式,完成HetuEngine客户端登录。 安全模式:执行以下命令,完成用户认证并登录HetuEngine客户端。 kinit hetu_test hetu-cli --catalog hive --tenant default --schema default 普通模式:执行以下命令,登录HetuEngine客户端。 hetu-cli --catalog hive --tenant default --schema default --user hetu_test hetu_test是一个至少具备“--tenant”指定租户角色的业务用户,且不能是操作系统用户。 参数说明: --catalog:(可选)指定的数据源名称。 --tenant:(可选)指定集群启动的租户资源队列,不指定为租户的默认队列。使用此参数时,业务用户需要具有该租户对应角色的权限。MRS 3.3.0及以后版本是否可选根据如下判断: 可选:未启用租户的严格校验模式。 必选:启用了租户的严格校验模式。 --schema:(可选)指定要访问数据源下的schema名称。 --user:(普通模式下必选)指定要登录客户端执行业务的用户名称,该用户至少需要具有“--tenant”指定队列的相应角色。 首次登录客户端需要启动后台HetuEngine集群,大约需等待120秒,可以进入客户端界面。 支持SQL语法,兼容开源openLooKeng 1.2.0版本SQL语法。 其他参数可以执行hetu-cli --help查看。
  • 配置场景 Spark优化sql的执行,一般的优化规则都是启发式的优化规则,启发式的优化规则,仅仅根据逻辑计划本身的特点给出优化,没有考虑数据本身的特点,也就是未考虑算子本身的执行代价。Spark在2.2中引入了基于代价的优化规则(CBO)。CBO会收集表和列的统计信息,结合算子的输入数据集来估计每个算子的输出条数以及字节大小,这些就是执行一个算子的代价。 CBO会调整执行计划,来最小化端到端的查询时间,中心思路2点: 尽早过滤不相关的数据。 最小化每个算子的代价。 CBO优化过程分为2步: 收集统计信息。 根据输入的数据集估算特定算子的输出数据集。 表级别统计信息包括:记录条数;表数据文件的总大小。 列级别统计信息包括:唯一值个数;最大值;最小值;空值个数;平均长度;最大长度;直方图。 有了统计信息后,就可以估计算子的执行代价了。常见的算子包括过滤条件Filter算子和Join算子。 直方图为列统计值的一种,可以直观的描述列数据的分布情况,将列的数据从最小值到最大值划分为事先指定数量的槽位(bin),计算各个槽位的上下界的值,使得全部数据都确定槽位后,所有槽位中的数据数量相同(等高直方图)。有了数据的详细分布后,各个算子的代价估计能更加准确,优化效果更好。 该特性可以通过下面的配置项开启: spark.sql.statistics.histogram.enabled:指定是否开启直方图功能,默认为false。
  • 操作步骤 以Hive客户端安装用户登录源端集群安装客户端的节点。 执行以下命令,切换到客户端安装目录,例如安装目录为“/opt/client”,请用户根据实际情况修改。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 如果集群开启了Kerberos认证,执行以下命令认证用户,否则跳过此步骤。 kinit Hive业务用户 执行以下命令登录源端集群的Hive客户端。 beeline 执行以下命令创建表“export_test”。 create table export_test(id int) ; 执行以下命令向表“export_test”中插入数据。 insert into export_test values(123); 在目标集群重复执行1-4,并执行以下命令创建存放表“export_test”导出后的HDFS路径。 dfs -mkdir /tmp/export 执行以下命令登录目标集群的Hive客户端。 beeline 导入导出表“export_test”。 使用Hive Import/Export对表数据迁移时,支持以下几种场景,可以根据实际情况选择合适的导入导出方式。 场景一:简单导出导入 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“export_test”中。 import from '/tmp/export'; 场景二 :在导入时重命名表 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“import_test”中。 import table import_test from '/tmp/export'; 场景三:导出分区数据并导入 在源端集群执行以下命令将表“export_test”的pt1和pt2分区导出到8创建的目录下。 export table export_test partition (pt1="in", pt2="ka") to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“export_test”中。 import from '/tmp/export'; 场景四:导出表数据并且将该数据导入到分区中 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“import_test”的pt1和pt2分区中。 import table import_test partition (pt1="us", pt2="tn") from '/tmp/export'; 场景五:导入表数据时指定表的Location 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“import_test”中,且该表的Location为“/tmp/export”。 import table import_test from '/tmp' location '/tmp/export'; 场景六:导入表数据为外部表 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到外部表“import_test”中。 import external table import_test from '/tmp/export'; 导出表/分区数据时,存放表/分区数据的HDFS路径需提前创建,且该目录为空,否则导出失败。 导出分区时,导出的表必须为分区表,且不支持导出同一个分区字段的多个分区值的数据;导入到表中分区时导入的表必须是分区表。 导入数据时需注意: 使用import from '/tmp/export';命令导入表是没有指定表名的场景,该场景导入的数据会保存到与源表名相同的表路径下,需注意以下两点: 如果目标集群上不存在与源集群上同名的表,在导入表的过程中会创建该表。 如果目标集群上已存在与源集群上同名的表,该表对应的HDFS目录下必须为空,否则导入失败。 使用import external table import_test from '/tmp/export';命令导入表会将导出的表导入到指定的表中,需注意以下两点: 如果目标集群上不存在与指定的表名相同的表,在导入表的过程中会创建该表。 如果目标集群上已存在与指定的表名相同的表,该表对应的HDFS目录下必须为空,否则导入失败。 “haclusterX”为新增的自定义参数“dfs.namenode.rpc-address.haclusterX”中的“haclusterX”
  • 操作场景 在大数据应用场景中,往往存在将Hive中的数据表迁移到另一个集群上,使用Hive的导入导出命令可以实现表级别数据迁移,即可使用Export命令将源集群的Hive表导出到目标集群的HDFS中,再在目标集群使用Import命令将导出的数据导入到相应的Hive表中。 本章节内容适用于MRS 3.2.0及之后版本。 Hive表导入导出功能目前不支持对加密表、HBase外部表、Hudi表、视图表、物化视图表进行导入导出操作。
  • 配置方法 导出集群中的证书: 安装集群客户端,例如安装路径为“/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安装路径,请自行修改。
  • 操作场景 FlinkServer WebUI页面支持作业、UDF、流表的导入导出,不支持集群管理、数据连接、应用管理、CheckPoint的导入导出。 当导入时,同一集群内不支持导入同名的作业、同名的流表、同名的UDF。 作业导出时,需手动勾选作业依赖的流表、UDF等信息,如果未勾选,校验时会弹出提示框提示需要勾选的依赖数据。作业的应用信息不会导出。 流表导出时,不解析处理流表的依赖,即流表依赖的应用信息不会导出。 UDF导出时,不解析处理UDF的依赖和被动依赖,即UDF依赖的应用信息和在哪些作业被使用的信息不会导出。 支持不同应用之间的导入导出。 根据安全需求,导入或导出FlinkSQL作业时,作业中的“password”字段会被置为空。提交作业前,需手动补齐密码信息。
  • 使用HDFS客户端 安装客户端,具体请参考安装MRS客户端章节。 以客户端安装用户,登录安装客户端的节点。 执行以下命令,切换到客户端安装目录。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 如果集群为安全模式,执行以下命令进行用户认证。普通模式集群无需执行用户认证。 kinit 组件业务用户 直接执行HDFS Shell命令。例如: hdfs dfs -ls /
  • HDFS客户端常用命令 常用的HDFS客户端命令如下表所示。 更多命令可参考https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/CommandsManual.html#User_Commands 表1 HDFS客户端常用命令 命令 说明 样例 hdfs dfs -mkdir 文件夹名称 创建文件夹 hdfs dfs -mkdir /tmp/mydir hdfs dfs -ls 文件夹名称 查看文件夹 hdfs dfs -ls /tmp hdfs dfs -put 客户端节点上本地文件 HDFS指定路径 上传本地文件到HDFS指定路径 hdfs dfs -put /opt/test.txt /tmp 上传客户端节点“/opt/test.txt”文件到HDFS的“/tmp”路径下 hdfs dfs -get hdfs指定文件 客户端节点上指定路径 下载HDFS文件到本地指定路径 hdfs dfs -get /tmp/test.txt /opt/ 下载HDFS的“/tmp/test.txt”文件到客户端节点的“/opt”路径下 hdfs dfs -rm -r -f hdfs指定文件夹 删除文件夹 hdfs dfs -rm -r -f /tmp/mydir hdfs dfs -chmod 权限参数 文件目录 为用户设置HDFS目录权限 hdfs dfs -chmod 700 /tmp/test
  • 操作步骤 写数据服务端调优 参数入口: 进入HBase服务参数“全部配置”界面,具体操作请参考修改集群服务配置参数章节。 表1 影响实时写数据配置项 配置参数 描述 默认值 hbase.wal.hsync 控制HLog文件在写入到HDFS时的同步程度。如果为true,HDFS在把数据写入到硬盘后才返回;如果为false,HDFS在把数据写入OS的缓存后就返回。 把该值设置为false比true在写入性能上会更优。 true hbase.hfile.hsync 控制HFile文件在写入到HDFS时的同步程度。如果为true,HDFS在把数据写入到硬盘后才返回;如果为false,HDFS在把数据写入OS的缓存后就返回。 把该值设置为false比true在写入性能上会更优。 true GC_OPTS HBase利用内存完成读写操作。提高HBase内存可以有效提高HBase性能。GC_OPTS主要需要调整HeapSize的大小和NewSize的大小。调整HeapSize大小的时候,建议将Xms和Xmx设置成相同的值,这样可以避免JVM动态调整HeapSize大小的时候影响性能。调整NewSize大小的时候,建议把其设置为HeapSize大小的1/8。 HMaster:当HBase集群规模越大、Region数量越多时,可以适当调大HMaster的GC_OPTS参数。 RegionServer:RegionServer需要的内存一般比HMaster要大。在内存充足的情况下,HeapSize可以相对设置大一些。 说明: 主HMaster的HeapSize为4G的时候,HBase集群可以支持100000 region数的规模。根据经验值,集群每增加35000个region,HeapSize增加2G,主HMaster的HeapSize不建议超过32GB。 HMaster -server -Xms4G -Xmx4G -XX:NewSize=512M -XX:MaxNewSize=512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=512M -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M Region Server -server -Xms6G -Xmx6G -XX:NewSize=1024M -XX:MaxNewSize=1024M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=512M -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M hbase.regionserver.handler.count 表示在RegionServer上启动的RPC侦听器实例数。如果设置过高会导致激烈线程竞争,如果设置过小,请求将会在RegionServer长时间等待,降低处理能力。根据资源情况,适当增加处理线程数。 建议根据CPU的使用情况,可以选择设置为100至300之间的值。 200 hbase.hregion.max.filesize HStoreFile的最大大小(单位:Byte)。如果任何一个列族HStoreFile超过此参数值,则托管Hregion将会一分为二。 10737418240 hbase.hregion.memstore.flush.size 在RegionServer中,当写操作内存中存在超过memstore.flush.size大小的memstore,则MemStoreFlusher就启动flush操作将该memstore以hfile的形式写入对应的store中。 如果RegionServer的内存充足,而且活跃Region数量也不是很多的时候,可以适当增大该值,可以减少compaction的次数,有助于提升系统性能。 同时,这种flush产生的时候,并不是紧急的flush,flush操作可能会有一定延迟,在延迟期间,写操作还可以进行,Memstore还会继续增大,最大值为“memstore.flush.size” * “hbase.hregion.memstore.block.multiplier”。当超过最大值时,将会阻塞操作。适当增大“hbase.hregion.memstore.block.multiplier”可以减少阻塞,减少性能波动。单位:字节。 134217728 hbase.regionserver.global.memstore.size 更新被锁定以及强制冲洗发生之前一个RegionServer上支持的所有MemStore的大小。RegionServer中,负责flush操作的是MemStoreFlusher线程。该线程定期检查写操作内存,当写操作占用内存总量达到阈值,MemStoreFlusher将启动flush操作,按照从大到小的顺序,flush部分相对较大的memstore,直到所占用内存小于阈值。 阈值 = “hbase.regionserver.global.memstore.size” * “hbase.regionserver.global.memstore.size.lower.limit” * “HBase_HEAPSIZE” 说明: 该配置与“hfile.block.cache.size”的和不能超过0.8,也就是写和读操作的内存不能超过HeapSize的80%,这样可以保证除读和写外其它操作的正常运行。 0.4 hbase.hstore.blockingStoreFiles 在region flush前首先判断file文件个数,是否大于hbase.hstore.blockingStoreFiles。 如果大于需要先compaction并且让flush延时90s(这个值可以通过hbase.hstore.blockingWaitTime进行配置),在延时过程中,将会继续写从而使得Memstore还会继续增大超过最大值 “memstore.flush.size” * “hbase.hregion.memstore.block.multiplier”,导致写操作阻塞。当完成compaction后,可能就会产生大量写入。这样就导致性能激烈震荡。 增加hbase.hstore.blockingStoreFiles,可以减低BLOCK几率。 15 hbase.regionserver.thread.compaction.throttle 大于此参数值的压缩将被大线程池执行,单位:Byte。控制一次Minor Compaction时,进行compaction的文件总大小的阈值。Compaction时的文件总大小会影响这一次compaction的执行时间,如果太大,可能会阻塞其它的compaction或flush操作。 1610612736 hbase.hstore.compaction.min 每次执行minor compaction的HStoreFile的最小数量。当一个Store文件超过该值时,会进行compact,适当增大该值,可以减少文件被重复执行compaction。但是如果过大,会导致Store文件数过多而影响读取的性能。 6 hbase.hstore.compaction.max 每次执行minor compaction的HStoreFile的最大数量。与“hbase.hstore.compaction.max.size”的作用基本相同,主要是控制一次compaction操作的时间不要太长。 10 hbase.hstore.compaction.max.size 如果一个HFile文件的大小大于该值,那么在Minor Compaction操作中不会选择这个文件进行compaction操作,除非进行Major Compaction操作。 这个值可以防止较大的HFile参与compaction操作。在禁止Major Compaction后,一个Store中可能存在几个HFile,而不会合并成为一个HFile,这样不会对数据读取造成太大的性能影响。单位:字节。 9223372036854775807 hbase.hregion.majorcompaction 单个区域内所有HStoreFile文件主压缩的时间间隔,单位:毫秒。由于执行Major Compaction会占用较多的系统资源,如果正在处于系统繁忙时期,会影响系统的性能。 如果业务没有较多的更新、删除、回收过期数据空间时,可以把该值设置为0,以禁止Major Compaction。 如果必须要执行Major Compaction,以回收更多的空间,可以适当增加该值,同时配置参数“hbase.offpeak.end.hour”和“hbase.offpeak.start.hour”以控制Major Compaction发生在业务空闲的时期。单位:毫秒。 604800000 hbase.regionserver.maxlogs hbase.regionserver.hlog.blocksize 表示一个RegionServer上未进行Flush的Hlog的文件数量的阈值,如果大于该值,RegionServer会强制进行flush操作。 表示每个HLog文件的最大大小。如果HLog文件大小大于该值,就会滚动出一个新的HLog文件,旧的将被禁用并归档。 这两个参数共同决定了RegionServer中可以存在的未进行Flush的hlog数量。当这个数据量小于MemStore的总大小的时候,会出现由于HLog文件过多而触发的强制flush操作。这个时候可以适当调整这两个参数的大小,以避免出现这种强制flush的情况。单位:字节。 32 134217728 写数据客户端调优 写数据时,在场景允许的情况下,更适合使用Put List的方式,可以极大的提升写性能。每一次Put的List的长度,需要结合单条Put的大小,以及实际环境的一些参数进行设定。建议在选定之前先做一些基础的测试。 写数据表设计调优 表2 影响实时写数据相关参数 配置参数 描述 默认值 COMPRESSION 配置数据的压缩算法,这里的压缩是HFile中block级别的压缩。对于可以压缩的数据,配置压缩算法可以有效减少磁盘的IO,从而达到提高性能的目的。 说明: 并非所有数据都可以进行有效压缩。例如一张图片的数据,因为图片一般已经是压缩后的数据,所以压缩效果有限。常用的压缩算法是SNAPPY,因为它有较好的Encoding/Decoding速度和可以接受的压缩率。 NONE BLOCKSIZE 配置HFile中block块的大小,不同的block块大小,可以影响HBase读写数据的效率。越大的block块,配合压缩算法,压缩的效率就越好;但是由于HBase的读取数据是以block块为单位的,所以越大的block块,对于随机读的情况,性能可能会比较差。 如果要提升写入的性能,一般扩大到128KB或者256KB,可以提升写数据的效率,也不会影响太大的随机读性能。单位:字节 65536 IN_MEMORY 配置这个表的数据优先缓存在内存中,这样可以有效提升读取的性能。对于一些小表,而且需要频繁进行读取操作的,可以设置此配置项。 false
  • 注意事项 仅在没有数据丢失的情况下支持将Decimal数据类型从较低精度更改为较高精度 例如: 无效场景:将Decimal数据精度从(10,2)更改为(10,5)无效,因为在这种情况下,只有scale增加,但总位数保持不变。 有效场景:将Decimal数据精度从(10,2)更改为(12,3)有效,因为总位数增加2,但是scale仅增加1,这不会导致任何数据丢失。 将Decimal数据类型从较低精度更改为较高精度,其允许的最大精度(precision, scale)范围为(38,38),并且只适用于不会导致数据丢失的有效提升精度的场景。
  • 操作步骤 加入Cgroup 执行以下命令,加入Cgroup,假设Flume客户端安装路径为“/opt/FlumeClient”,Cgroup cpu阈值设置为50%: cd /opt/FlumeClient/fusioninsight-flume-1.9.0/bin ./flume-manage.sh cgroup join 50 该命令不仅可以加入Cgroup,同时也可以更改Cgroup cpu阈值。 Cgroup cpu阈值取值范围为1~100*N之间的整数,N表示机器cpu核数。 查询Cgroup状态 执行以下命令,查询Cgroup状态,假设Flume客户端安装路径为“/opt/FlumeClient”: cd /opt/FlumeClient/fusioninsight-flume-1.9.0/bin ./flume-manage.sh cgroup status 退出Cgroup 执行以下命令,退出Cgroup,假设Flume客户端安装路径为“/opt/FlumeClient”: cd /opt/FlumeClient/fusioninsight-flume-1.9.0/bin ./flume-manage.sh cgroup exit 客户端安装完成后,会自动创建默认Cgroup。如果安装客户端时未配置“-s”参数,则默认值为“-1”,表示agent进程不受cpu使用率限制。 加入、退出Cgroup时,agent进程不受影响。如果agent进程未启动,加入、退出Cgroup仍然可以成功执行,待下一次agent启动时生效。 客户端卸载完成后,安装时期创建的Cgroup会自动删除。
  • 安全认证 Flink整个系统存在三种认证方式: 使用kerberos认证:Flink yarn client与Yarn Resource Manager、JobManager与Zookeeper、JobManager与HDFS、TaskManager与HDFS、Kafka与TaskManager、TaskManager和Zookeeper。 使用security cookie进行认证:Flink yarn client与Job Manager、JobManager与TaskManager、TaskManager与TaskManager。 使用YARN内部的认证机制:Yarn Resource Manager与Application Master(简称AM)。 Flink的JobManager与YARN的AM是在同一个进程下。 如果用户集群开启Kerberos认证需要使用kerberos认证。 表1 安全认证方式 安全认证方式 说明 配置方法 Kerberos认证 当前只支持keytab认证方式。 从FusionInsight Manager下载用户keytab,并将keytab放到Flink客户端所在主机的某个文件夹下。 在“flink-conf.yaml”上配置: keytab路径。 security.kerberos.login.keytab: /home/flinkuser/keytab/abc222.keytab 说明: “/home/flinkuser/keytab/abc222.keytab”表示的是用户目录。 principal名。 security.kerberos.login.principal: abc222 对于HA模式,如果配置了ZooKeeper,还需要设置ZK kerberos认证相关的配置。配置如下: zookeeper.sasl.disable: false security.kerberos.login.contexts: Client 如果用户对于Kafka client和Kafka broker之间也需要做kerberos认证,配置如下: security.kerberos.login.contexts: Client,KafkaClient Security Cookie 认证 - 在Flink客户端的“bin”目录下,调用“generate_keystore.sh”脚本,生成“Security Cookie”、“flink.keystore”文件和“flink.truststore”文件。 执行sh generate_keystore.sh,输入用户自定义密码。密码不允许包含#。 说明: 执行脚本后,在Flink客户端的“conf”目录下生成“flink.keystore”和“flink.truststore”文件,并且在客户端配置文件“flink-conf.yaml”中将以下配置项进行了默认赋值。 将配置项“security.ssl.keystore”设置为“flink.keystore”文件所在绝对路径。 将配置项“security.ssl.truststore”设置为“flink.truststore”文件所在的绝对路径。 将配置项“security.cookie”设置为“generate_keystore.sh”脚本自动生成的一串随机规则密码。 默认“flink-conf.yaml”中“security.ssl.encrypt.enabled: false”,“generate_keystore.sh”脚本将配置项“security.ssl.key-password”、“security.ssl.keystore-password”和“security.ssl.truststore-password”的值设置为调用“generate_keystore.sh”脚本时输入的密码。 如果需要使用密文时,设置“flink-conf.yaml”中“security.ssl.encrypt.enabled: true”,“generate_keystore.sh”脚本不会配置“security.ssl.key-password”、“security.ssl.keystore-password”和“security.ssl.truststore-password”的值,需要使用Manager明文加密API进行获取,执行curl -k -i -u user name:password -X POST -HContent-type:application/json -d '{"plainText":"password"}' 'https://x.x.x.x:28443/web/api/v2/tools/encrypt' 其中user name:password分别为当前系统登录用户名和密码;"plainText"的password为调用“generate_keystore.sh”脚本时的密码;x.x.x.x为集群Manager的浮动IP。命令中如果携带认证密码信息可能存在安全风险,在执行命令前建议关闭系统的history命令记录功能,避免信息泄露。 查看是否打开“Security Cookie”开关,即查看配置“flink-conf.yaml”文件中的“security.enable: true”,查看“security cookie”是否已配置成功,例如: security.cookie: ae70acc9-9795-4c48-ad35-8b5adc8071744f605d1d-2726-432e-88ae-dd39bfec40a9 说明: 使用MRS客户端预制“generate_keystore.sh”脚本获取SSL证书有效期为5年。 如果要关闭默认的SSL认证方式,需在“flink-conf.yaml”文件中配置“security.ssl.enabled”的值为“false”,并且注释如下参数:security.ssl.key-password、security.ssl.keystore-password、security.ssl.keystore、security.ssl.truststore-password、security.ssl.trustore。 YARN内部认证方式 该方式是YARN内部的认证方式,不需要用户配置。 - 当前一个Flink集群只支持一个用户,一个用户可以创建多个Flink集群。
  • 配置描述 请参考修改集群服务配置参数,进入HDFS的“全部配置”页面,在搜索框中输入参数名称。 表1 参数说明 参数 描述 默认值 dfs.mover.auto.enable 是否开启数据副本迁移功能,该功能支持多种。默认值为“false”,表示关闭该特性。 false dfs.mover.auto.cron.expression HDFS执行自动数据迁移的CRON表达式,用于控制数据迁移操作的开始时间。仅当dfs.mover.auto.enable设置为true时才有效。默认值“0 * * * *”表示在每个整点执行任务。表达式的具体含义可参见表2。 0 * * * * dfs.mover.auto.hdfsfiles_or_dirs 指定集群执行自动副本迁移的HDFS文件或目录列表,以空格分隔。仅当dfs.mover.auto.enable设置为true时才有效。 - 表2 Cron表达式解释 列 说明 第1列 分钟,参数值为0~59。 第2列 小时,参数值为0~23。 第3列 日期,参数值为1~31。 第4列 月份,参数值为1~12。 第5列 星期,参数值为0~6,0表示星期日。
共100000条