關于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/_HOST@EXAMPLE.COM;
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不開啟;