我是HiveQL的新手。当我创建一个表时,我开始知道我们需要保持TRUE某些事务的属性。然后我经历了那些:
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以及内存概念。
由于我是这个领域的新手,我无法对这个属性有所了解。
任何人都可以对此有所了解吗?
从Hive文档
hive.support.concurrency
Hive是否支持并发。必须为默认Hive锁管理器启动并运行ZooKeeper实例才能支持读写锁。
设置为true以支持INSERT ... VALUES,UPDATE和DELETE事务(Hive 0.14.0及更高版本)。有关打开Hive事务所需参数的完整列表
hive.enforce.bucketing
是否强制执行分组。如果为true,则在插入表格时,会强制执行分组。
hive.exec.dynamic.partition.mode
在严格模式下,用户必须至少指定一个静态分区,以防用户意外覆盖所有分区。在非严格模式下,允许所有分区都是动态的。
hive.txn.manager
将此设置为org.apache.hadoop.hive.ql.lockmgr.DbTxnManager,作为打开Hive事务的一部分。默认的DummyTxnManager复制pre-Hive-0.13行为并且不提供任何事务。
hive.compactor.initiator.on
是否在此Metastore实例上运行启动器和清除线程。在Thrift Metastore服务的一个实例上将此设置为true,作为打开Hive事务的一部分。有关打开事务所需参数的完整列表,请参阅hive.txn.manager。
至关重要的是,在一个Metastore服务实例(尚未强制执行)上启用此功能。
hive.compactor.worker.threads
在此Metastore实例上运行多少个压缩工作线程。在Thrift Metastore服务的一个或多个实例上将此值设置为正数,作为打开Hive事务的一部分。有关打开事务所需参数的完整列表,请参阅hive.txn.manager。
工作线程产生MapReduce作业以进行压缩。他们自己不做压缩。增加工作线程数将减少确定需要压缩后压缩表或分区所需的时间。随着更多MapReduce作业将在后台运行,它还将增加Hadoop集群的后台负载。