我是hiveql的新手。当我创建一个表时,我知道我们需要保留事务的一些属性。那么我已经经历了这些:
hive>set hive.support.concurrency = true;
hive>set hive.enforce.bucketing = true;
hive>set hive.exec.dynamic.partition.mode = nonstrict;
hive>set hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
hive>set hive.compactor.initiator.on = true;
hive>set hive.compactor.worker.threads = a positive number on at least one instance of the Thrift metastore service;
到底是什么 Concurrency,bucketing,Dynamic.partition.mode = 'nonstrict'
?
我一直在努力学习这些东西,但我得到的信息以及锁定机制和zookeeper和内存中的概念。
由于我对这一地区完全陌生,我无法对这片土地有适当的了解。
有人能解释一下吗?
1条答案
按热度按时间uxh89sit1#
从配置单元文档
配置单元是否支持并发。zookeeper示例必须启动并运行,默认配置单元锁管理器才能支持读写锁。
设置为true以支持插入。。。值、更新和删除事务(配置单元0.14.0及更高版本)。有关打开配置单元事务所需参数的完整列表
是否强制扣压。如果为true,则在插入到表中时,强制执行bucketing。
hive.exec.dynamic.partition.mode
在严格模式下,用户必须至少指定一个静态分区,以防用户意外地覆盖所有分区。在非严格模式下,所有分区都允许是动态的。将其设置为org.apache.hadoop.hive.ql.lockmgr.dbtxnmanager,作为打开配置单元事务的一部分。默认的dummytxnmanager复制hive-0.13之前的行为,不提供任何事务。
是否在此元存储示例上运行启动器和清理器线程。在启用配置单元事务时,在thrift元存储服务的一个示例上将此设置为true。有关打开事务所需参数的完整列表,请参阅hive.txn.manager。
关键是在一个metastore服务示例上启用此功能(尚未强制实施)。
hive.compactor.worker.threads
在此元存储示例上运行的压缩程序工作线程数。在启用配置单元事务的一个或多个thrift元存储服务示例上将此值设置为正数。有关打开事务所需参数的完整列表,请参阅hive.txn.manager。工作线程生成mapreduce作业来执行压缩。他们自己不做压缩。一旦确定表或分区需要压缩,增加工作线程的数量将减少压缩它们所需的时间。它还将增加hadoop集群上的后台负载,因为更多的mapreduce作业将在后台运行。