Edward, Apart from recommended best practices what Christian is asking for is why HiveServer is still trying to interact with local db instance even after setting the config variables. AFAIK it should not. Christian, you found that out by looking at files opened by HiveServer jvm. Can you provide more info there like how did you find that out and which these files are?
Ashutosh On Wed, Aug 24, 2011 at 14:20, Edward Capriolo <edlinuxg...@gmail.com>wrote: > > > On Wed, Aug 24, 2011 at 3:02 PM, Christian Kurz <crk...@gmx.de> wrote: > >> >> Thanks for the quick reply, Edward >> >> I am not sure I got you: My HiveService has been started with >> hive.metastore.local=false. >> So shouldn't it use thrift instead of its own local Derby instance? >> >> Thanks, >> Christian >> >> Am 24.08.2011 um 19:33 schrieb Edward Capriolo <edlinuxg...@gmail.com>: >> >> >> >> On Wed, Aug 24, 2011 at 10:53 AM, Christian Kurz <crk...@gmx.de> wrote: >> >>> Greetings, >>> >>> could somebody confirm/correct my understanding of a fully distributed >>> Hive setup, please? >>> >>> My setup is as follows >>> >>> - *Java application using Hive JDBC driver *connects to >>> - *hive --service hiveserver*, which connects to >>> - *hive --service metastore*, which uses an embedded Derby database >>> for metadata storage >>> >>> Please find more details in the image attached. >>> >>> The thing I find confusing is that JVM2 (Hive Server) starts up a Derby >>> database instance. I can see that from the files the JVM has opened. >>> >>> Does anybody know, why the Hive Server needs a Derby instance even though >>> hive-site.xml says: hive.metastore.local=false ? >>> >>> Any hints are much appreciated. >>> >>> Thanks, >>> Christian >>> >>> btw, >>> I have not been able to access the picture on the >>> wiki<https://cwiki.apache.org/Hive/adminmanual-metastoreadmin.html#AdminManualMetastoreAdmin-MetastoreDeploymentOptionsinPictures>. >>> ("Not permitted"; even though I have registered on the wiki) >>> >>> >>> >> hive.metastore.local is really misnamed. >> >> local=true means communicate using datanucleus/JPOX and talking directly >> to the metastore. >> >> local=false means use thrift which is essentially a level of indirection. >> >> Talking about HiveService can confuse things because HiveService is a > different thrift interface. > > You could be setup like this: > HiveServiceClient->HiveService->metastore.local=true->derby > or > > HiveServiceClient->HiveService->metastore.local=false>thrift->hive_metastore > > most people are setup like this: > > HiveServiceClient->HiveService->metastore.local=true->mysql > cli->metastore.local=true->mysql > > >