MAPREDUCE服务 MRS-配置Hive Beeline高可靠性:操作示例
操作示例
- 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。
- 其中“xxxx”表示每一次通过beeline提交任务的批次号,通过该批次号,可以识别出先提交的任务。如果提交任务时不带批次号,该特性功能不会启用。“xxxx”的值是执行任务时指定的,如下所示,“xxxx”值为“012345678901”:
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- MapReduce服务_什么是Hive_如何使用Hive
- 大数据分析是什么_使用MapReduce_创建MRS服务
- MapReduce服务_什么是MapReduce服务_什么是HBase
- MapReduce服务_什么是Hue_如何使用Hue
- MapReduce服务_什么是存算分离_如何配置MRS集群存算分离
- Hudi服务_什么是Hudi_如何使用Hudi
- MapReduce服务_什么是Loader_如何使用Loader
- MRS备份恢复_MapReduce备份_数据备份
- MapReduce服务_什么是ZooKeeper_如何使用ZooKeeper