That could happen if you have "org.apache.drill.exec.store.sys.local.LocalPStoreProvider" set as the class somewhere in the configuration.
As far as I searched, it is set only in "conf/drill-override-example.conf" and should not be copied over to "conf/drill-override.conf" However, there is a JIRA <https://issues.apache.org/jira/browse/DRILL-956> to fix this just in case if some one want to use the local file store. On Wed, Jun 11, 2014 at 4:54 PM, Xiao Meng <[email protected]> wrote: > > Oh, it is the default value of sys.store.provider. > But without setting the value, I get the following exception when starting > drillbit with distributed mode. > > Exception in thread "main" > org.apache.drill.exec.exception.DrillbitStartupException: Failure while > initializing values in Drillbit. > at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:70) > at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:61) > at org.apache.drill.exec.server.Drillbit.main(Drillbit.java:83) > Caused by: org.apache.drill.common.exceptions.ExecutionSetupException: A > System Table provider was either not specified or could not be found or > instantiated > at > org.apache.drill.exec.store.sys.PStoreRegistry.newPStoreProvider(PStoreRegistry.java:59) > at org.apache.drill.exec.server.Drillbit.<init>(Drillbit.java:116) > at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:68) > ... 2 more > Caused by: java.lang.NoSuchMethodException: > org.apache.drill.exec.store.sys.local.LocalPStoreProvider.<init>(org.apache.drill.exec.store.sys.PStoreRegistry) > at java.lang.Class.getConstructor0(Class.java:2810) > at java.lang.Class.getConstructor(Class.java:1718) > at > org.apache.drill.exec.store.sys.PStoreRegistry.newPStoreProvider(PStoreRegistry.java:54) > ... 4 more > Exception in thread "ShutdownHook" > java.lang.UnsupportedOperationException: Unknown handle type > at > org.apache.drill.exec.coord.zk.ZKClusterCoordinator.unregister(ZKClusterCoordinator.java:151) > at org.apache.drill.exec.server.Drillbit.close(Drillbit.java:159) > at > org.apache.drill.exec.server.Drillbit$ShutdownThread.run(Drillbit.java:187) > > > > On Wed, Jun 11, 2014 at 4:45 PM, Aditya <[email protected]> wrote: > >> "org.apache.drill.exec.store.sys.zk.ZkPStoreProvider" is default >> < >> https://github.com/apache/incubator-drill/blob/master/exec/java-exec/src/main/resources/drill-module.conf#L98 >> > >> >> for distributed mode and you need not specify it explicitly. >> >> If you want to use HBase storage instead, you can specify " >> org.apache.drill.exec.store.hbase.config.HBasePStoreProvider >> < >> https://github.com/apache/incubator-drill/blob/master/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/config/HBasePStoreProvider.java >> >" >> >> as the storage provider as follow >> >> sys.store.provider: { >> > class: >> "org.apache.drill.exec.store.hbase.config.HBasePStoreProvider", >> > hbase: { >> > tableName : "drill_store", >> > config : { >> > "hbase.zookeeper.quorum" : "localhost", >> > "hbase.zookeeper.property.clientPort" : 2181 >> > } >> > } >> > } >> > >> >> The provider class is part of "drill-storage-hbase" project. >> >> >> >> On Wed, Jun 11, 2014 at 4:23 PM, Xiao Meng <[email protected]> wrote: >> >> > Hi, >> > >> > I've tried it both in embedded mode and distributed mode and works fine >> for >> > me now. >> > >> > For the distributed mode, we need to set the sys.store.provider as >> > zookeeper >> > >> > sys.store.provider: { >> > class: "org.apache.drill.exec.store.sys.zk.ZkPStoreProvider" >> > }, >> > >> > One question: >> > >> > > In daemon/distributed mode, you can also store them in HBase if you >> have >> > that available as part of your cluster. >> > So do we need to write the plugin for HBase? I did not see any class in >> > exec.store.sys. >> > >> > >> > Hope it will help for the other people. >> > >> > BTW, can someone give the edit permission on the wiki? I can put this >> into >> > wiki. My user name is xiaom. >> > >> > Thanks, >> > >> > Xiao >> > >> > >> > On Wed, Jun 11, 2014 at 12:36 PM, Jacques Nadeau <[email protected]> >> > wrote: >> > >> > > Hey Guys, >> > > >> > > I've had a couple of questions about the commits that went in last >> night. >> > > Some things changed in configuration that people should be aware of. >> > They >> > > are as follows: >> > > >> > > - drill-override.conf is basically empty. A sample drill-override is >> > > available as well to see what some settings are that are available. >> You >> > > should move to this setup only migrate any settings that you have >> changed >> > > from previous defaults. >> > > - If you use your old settings, you'll likely to encounter a Zookeeper >> > > exception. This is because the drill.exec.zk.root no longer supports >> > have >> > > a leading slash (e.g. /drill). To make it work, you need to either >> > follow >> > > the recommendation above or remove the leading slash. >> > > - views, storage plugins and system settings are persisted across >> > drillbit >> > > restarts. >> > > - view are persisted in writable workspaces (default one is dfs.tmp) >> as >> > > json files called viewname.view.drill. >> > > - Storage plugins and other drill settings are stored in a Drill >> PStores >> > (a >> > > persistent store for settings information). In embedded mode they are >> > > persisted to the local file system. By default, in daemon/distributed >> > > mode, they are stored in zookeeper. In daemon/distributed mode, you >> can >> > > also store them in HBase if you have that available as part of your >> > > cluster. >> > > - In order to configure storage plugins, you need to use the web ui at >> > > http://localhost:8047 >> > > - By default, Drill is initially populated with >> > > bootstrap-storage-plugins.json in your classpath (Drill packages one >> in >> > one >> > > of the jars or you can put your own earlier in the classpath). Once >> the >> > > first node comes up and populates the storage plugin configuration, >> Drill >> > > no longer uses or considers this file. >> > > >> > > >> > > Let me know if there are other questions or issues that come up. >> Also, >> > be >> > > sure to do a full clean build with this so you don't have any old/new >> > file >> > > conflicts. >> > > >> > > thanks, >> > > Jacques >> > > >> > >> > >
