Hive配置项的含义详解(5)
关于MetaStore:metastore是个独立的关系数据库,用来持久化schema和系统元数据。
hive.metastore.local:控制hive是否连接一个远程metastore服务器还是开启一个本地客户端jvm,默认是true,Hive0.10已经取消了该配置项;
javax.jdo.option.ConnectionURL:JDBC连接字符串,默认jdbc:derby:;databaseName=metastore_db;create=true;
javax.jdo.option.ConnectionDriverName:JDBC的driver,默认org.apache.derby.jdbc.EmbeddedDriver;
javax.jdo.PersisteneManagerFactoryClass:实现JDO PersistenceManagerFactory的类名,默认org.datanucleus.jdo.JDOPersistenceManagerFactory;
javax.jdo.option.DetachAllOnCommit:事务提交后detach所有提交的对象,默认是true;
javax.jdo.option.NonTransactionalRead:是否允许非事务的读,默认是true;
javax.jdo.option.ConnectionUserName:username,默认APP;
javax.jdo.option.ConnectionPassword:password,默认mine;
javax.jdo.option.Multithreaded:是否支持并发访问metastore,默认是true;
datanucleus.connectionPoolingType:使用连接池来访问JDBC metastore,默认是DBCP;
datanucleus.validateTables:检查是否存在表的schema,默认是false;
datanucleus.validateColumns:检查是否存在列的schema,默认false;
datanucleus.validateConstraints:检查是否存在constraint的schema,默认false;
datanucleus.stroeManagerType:元数据存储类型,默认rdbms;
datanucleus.autoCreateSchema:在不存在时是否自动创建必要的schema,默认是true;
datanucleus.aotuStartMechanismMode:如果元数据表不正确,抛出异常,默认是checked;
datanucleus.transactionIsolation:默认的事务隔离级别,默认是read-committed;
datanucleus.cache.level2:使用二级缓存,默认是false;
datanucleus.cache.level2.type:二级缓存的类型,有两种,SOFT:软引用,WEAK:弱引用,默认是SOFT;
datanucleus.identifierFactory:id工厂生产表和列名的名字,默认是datanucleus;
datanucleus.plugin.pluginRegistryBundleCheck:当plugin被发现并且重复时的行为,默认是LOG;
hive.metastroe.warehouse.dir:数据仓库的位置,默认是/user/hive/warehouse;
hive.metastore.execute.setugi:非安全模式,设置为true会令metastore以客户端的用户和组权限执行DFS操作,默认是false,这个属性需要服务端和客户端同时设置;
hive.metastore.event.listeners:metastore的事件监听器列表,逗号隔开,默认是空;
hive.metastore.partition.inherit.table.properties:当新建分区时自动继承的key列表,默认是空;
hive.metastore.end.function.listeners:metastore函数执行结束时的监听器列表,默认是空;
hive.metastore.event.expiry.duration:事件表中事件的过期时间,默认是0;
hive.metastore.event.clean.freq:metastore中清理过期事件的定时器的运行周期,默认是0;
hive.metastore.connect.retries:创建metastore连接时的重试次数,默认是5;
hive.metastore.client.connect.retry.delay:客户端在连续的重试连接等待的时间,默认1;
hive.metastore.client.socket.timeout:客户端socket超时时间,默认20秒;
hive.metastore.rawstore.impl:原始metastore的存储实现类,默认是org.apache.hadoop.hive.metastore.ObjectStore;
hive.metastore.batch.retrieve.max:在一个batch获取中,能从metastore里取出的最大记录数,默认是300;
hive.metastore.ds.connection.url.hook:查找JDO连接url时hook的名字,默认是javax.jdo.option.ConnectionURL;
hive.metastore.ds.retry.attempts:当出现连接错误时重试连接的次数,默认是1次;
hive.metastore.ds.retry.interval:metastore重试连接的间隔时间,默认1000毫秒;
hive.metastore.server.min.threads:在thrift服务池中最小的工作线程数,默认是200;
hive.metastore.server.max.threads:最大线程数,默认是100000;
hive.metastore.server.tcp.keepalive:metastore的server是否开启长连接,长连可以预防半连接的积累,默认是true;
hive.metastore.sasl.enabled:metastore thrift接口的安全策略,开启则用SASL加密接口,客户端必须要用Kerberos机制鉴权,默认是不开启false;
hive.metastore.kerberos.keytab.file:在开启sasl后kerberos的keytab文件存放路径,默认是空;
hive.metastore.kerberos.principal:kerberos的principal,_HOST部分会动态替换,默认是hive-metastore/[email protected];
hive.metastore.cache.pinobjtypes:在cache中支持的metastore的对象类型,由逗号分隔,默认是Table,StorageDescriptor,SerDeInfo,Partition,Database,Type,FieldSchema,Order;
hive.metastore.authorization.storage.checks:在做类似drop partition操作时,metastore是否要认证权限,默认是false;
hive.metastore.schema.verification:强制metastore的schema一致性,开启的话会校验在metastore中存储的信息的版本和hive的jar包中的版本一致性,并且关闭自动schema迁移,用户必须手动的升级hive并且迁移schema,关闭的话只会在版本不一致时给出警告,默认是false不开启;