I gave this a try on Windows - downloaded the 1.9.0 release and moved it to C:\Users\agirish\apache-drill-1.9.0. I was successfully able to bring up Drill in embedded mode. It looks like I did have read/write/execute permissions on the dir (by default) - so I'm not sure if that's any different from OP's env.
On Sat, Dec 3, 2016 at 7:46 PM, Paul Rogers <[email protected]> wrote: > Hi Ivy, > > Looks like a glitch in the shiny new dynamic UDF feature. Does the > directory Users/ivy.chan exist on the C: drive? You can work around this in > a couple of ways. > > First, disable the dynamic UDF feature (which is not really needed for an > embedded Drillbit). Unfortunately, this works only once the Drillbit is up > because it is a runtime SQL option: > > ALTER SESSION SET `exec.udf.enable_dynamic_support` = false > > The other is to change the location of the directory that the feature is > trying to create. Add the following to your > $DRILL_HOME/conf/drill-override.conf > file: > > drill.udf.directory.root: “C:\Temp” > > Or any other directory that does, in fact, exist on your system. > > Let us know if this works. If not, perhaps Arina (who developed the > feature) can help provide a better solution. > > Thanks, > > - Paul > > > > On Dec 3, 2016, at 6:24 PM, <[email protected]> < > [email protected]> wrote: > > > > Hi > > > > I'm trying out 1.9.0 on our Windows server. When launching the embedded > mode, I got the following errors: > > > > > > E:\software\apache-drill-1.9.0\bin>sqlline.bat -u "jdbc:drill:zk=local" > > DRILL_ARGS - " -u jdbc:drill:zk=local" > > HADOOP_HOME not detected... > > HBASE_HOME not detected... > > Calculating Drill classpath... > > Error: Failure in starting embedded Drillbit: org.apache.drill.common. > exceptions > > .DrillRuntimeException: Error during udf area creation > [/C:/Users/ivy.chan/drill > > /udf/registry] on file system [file:///] (state=,code=0) > > java.sql.SQLException: Failure in starting embedded Drillbit: > org.apache.drill.c > > ommon.exceptions.DrillRuntimeException: Error during udf area creation > [/C:/User > > s/ivy.chan/drill/udf/registry] on file system [file:///] > > at org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>( > DrillConnection > > Impl.java:128) > > at org.apache.drill.jdbc.impl.DrillJdbc41Factory. > newDrillConnection(Dril > > lJdbc41Factory.java:70) > > at org.apache.drill.jdbc.impl.DrillFactory.newConnection( > DrillFactory.ja > > va:69) > > at org.apache.calcite.avatica.UnregisteredDriver.connect( > UnregisteredDri > > ver.java:143) > > at org.apache.drill.jdbc.Driver.connect(Driver.java:72) > > at sqlline.DatabaseConnection.connect(DatabaseConnection. > java:167) > > at sqlline.DatabaseConnection.getConnection( > DatabaseConnection.java:213) > > > > at sqlline.Commands.connect(Commands.java:1083) > > at sqlline.Commands.connect(Commands.java:1015) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl. > > java:62) > > at sun.reflect.DelegatingMethodAccessorImpl. > invoke(DelegatingMethodAcces > > sorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:497) > > at sqlline.ReflectiveCommandHandler.execute( > ReflectiveCommandHandler.jav > > a:36) > > at sqlline.SqlLine.dispatch(SqlLine.java:742) > > at sqlline.SqlLine.initArgs(SqlLine.java:528) > > at sqlline.SqlLine.begin(SqlLine.java:596) > > at sqlline.SqlLine.start(SqlLine.java:375) > > at sqlline.SqlLine.main(SqlLine.java:268) > > Caused by: org.apache.drill.common.exceptions.DrillRuntimeException: > Error durin > > g udf area creation [/C:/Users/ivy.chan/drill/udf/registry] on file > system [file > > :///] > > at org.apache.drill.common.exceptions. > DrillRuntimeException.format(Drill > > RuntimeException.java:49) > > at org.apache.drill.exec.expr.fn.registry. > RemoteFunctionRegistry.createA > > rea(RemoteFunctionRegistry.java:246) > > at org.apache.drill.exec.expr.fn.registry. > RemoteFunctionRegistry.prepare > > Areas(RemoteFunctionRegistry.java:208) > > at org.apache.drill.exec.expr.fn.registry. > RemoteFunctionRegistry.init(Re > > moteFunctionRegistry.java:106) > > at org.apache.drill.exec.server.Drillbit.run(Drillbit.java:126) > > at org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>( > DrillConnection > > Impl.java:119) > > ... 18 more > > Caused by: java.lang.IllegalStateException: Area > [/C:/Users/ivy.chan/drill/udf/r > > egistry] must be writable and executable for application user > > at com.google.common.base.Preconditions.checkState( > Preconditions.java:19 > > 7) > > at org.apache.drill.exec.expr.fn.registry. > RemoteFunctionRegistry.createA > > rea(RemoteFunctionRegistry.java:238) > > ... 22 more > > apache drill 1.9.0 > > "got drill?" > > > > It is working on 1.8.0. > > > > I also got compile error on sqlline.log: > > > > 2016-12-03 21:05:59,026 [main] WARN o.a.drill.exec.util.GuavaPatcher - > Unable to patch Guava classes. > > javassist.CannotCompileException: by java.lang.LinkageError: loader > (instance of sun/misc/Launcher$AppClassLoader): attempted duplicate > class definition for name: "com/google/common/base/Stopwatch" > > at javassist.ClassPool.toClass(ClassPool.java:1085) > ~[javassist-3.12.1.GA.jar:na] > > at javassist.ClassPool.toClass(ClassPool.java:1028) > ~[javassist-3.12.1.GA.jar:na] > > at javassist.ClassPool.toClass(ClassPool.java:986) > ~[javassist-3.12.1.GA.jar:na] > > at javassist.CtClass.toClass(CtClass.java:1079) > ~[javassist-3.12.1.GA.jar:na] > > at org.apache.drill.exec.util. > GuavaPatcher.patchStopwatch(GuavaPatcher.java:66) > ~[drill-java-exec-1.9.0.jar:1.9.0] > > at > > org.apache.drill.exec.util.GuavaPatcher.patch(GuavaPatcher.java:36) > ~[drill-java-exec-1.9.0.jar:1.9.0] > > at org.apache.drill.exec.server. > Drillbit.<clinit>(Drillbit.java:63) [drill-java-exec-1.9.0.jar:1.9.0] > > at > > org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>(DrillConnectionImpl.java:118) > [drill-jdbc-1.9.0.jar:1.9.0] > > at org.apache.drill.jdbc.impl.DrillJdbc41Factory. > newDrillConnection(DrillJdbc41Factory.java:70) > [drill-jdbc-1.9.0.jar:1.9.0] > > at > > org.apache.drill.jdbc.impl.DrillFactory.newConnection(DrillFactory.java:69) > [drill-jdbc-1.9.0.jar:1.9.0] > > at > > org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:143) > [calcite-avatica-1.4.0-drill-r19.jar:1.4.0-drill-r19] > > at org.apache.drill.jdbc.Driver.connect(Driver.java:72) > [drill-jdbc-1.9.0.jar:1.9.0] > > at > > sqlline.DatabaseConnection.connect(DatabaseConnection.java:167) > [sqlline-1.1.9-drill-r7.jar:na] > > at > > sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:213) > [sqlline-1.1.9-drill-r7.jar:na] > > at sqlline.Commands.connect(Commands.java:1083) > [sqlline-1.1.9-drill-r7.jar:na] > > at sqlline.Commands.connect(Commands.java:1015) > [sqlline-1.1.9-drill-r7.jar:na] > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) ~[na:1.8.0_73] > > at sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:62) ~[na:1.8.0_73] > > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_73] > > at java.lang.reflect.Method.invoke(Method.java:497) > ~[na:1.8.0_73] > > at sqlline.ReflectiveCommandHandler.execute( > ReflectiveCommandHandler.java:36) [sqlline-1.1.9-drill-r7.jar:na] > > at sqlline.SqlLine.dispatch(SqlLine.java:742) > [sqlline-1.1.9-drill-r7.jar:na] > > at sqlline.SqlLine.initArgs(SqlLine.java:528) > [sqlline-1.1.9-drill-r7.jar:na] > > at sqlline.SqlLine.begin(SqlLine.java:596) > [sqlline-1.1.9-drill-r7.jar:na] > > at sqlline.SqlLine.start(SqlLine.java:375) > [sqlline-1.1.9-drill-r7.jar:na] > > at sqlline.SqlLine.main(SqlLine.java:268) > [sqlline-1.1.9-drill-r7.jar:na] > > Caused by: java.lang.LinkageError: loader (instance of > sun/misc/Launcher$AppClassLoader): attempted duplicate class definition > for name: "com/google/common/base/Stopwatch" > > at java.lang.ClassLoader.defineClass1(Native Method) > ~[na:1.8.0_73] > > at java.lang.ClassLoader.defineClass(ClassLoader.java:760) > ~[na:1.8.0_73] > > at java.lang.ClassLoader.defineClass(ClassLoader.java:642) > ~[na:1.8.0_73] > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) ~[na:1.8.0_73] > > at sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:62) ~[na:1.8.0_73] > > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_73] > > at java.lang.reflect.Method.invoke(Method.java:497) > ~[na:1.8.0_73] > > at javassist.ClassPool.toClass2(ClassPool.java:1098) > ~[javassist-3.12.1.GA.jar:na] > > at javassist.ClassPool.toClass(ClassPool.java:1079) > ~[javassist-3.12.1.GA.jar:na] > > ... 25 common frames omitted > > > > Thanks, > > Ivy Chan > > > > > > > > > > > > ________________________________ > > ********************** IMPORTANT--PLEASE READ ************************ > This electronic message, including its attachments, is CONFIDENTIAL and may > contain PROPRIETARY or LEGALLY PRIVILEGED or PROTECTED information and is > intended for the authorized recipient of the sender. If you are not the > intended recipient, you are hereby notified that any use, disclosure, > copying, or distribution of this message or any of the information included > in it is unauthorized and strictly prohibited. If you have received this > message in error, please immediately notify the sender by reply e-mail and > permanently delete this message and its attachments, along with any copies > thereof, from all locations received (e.g., computer, mobile device, etc.). > Thank you. ************************************************************ > ************ > >
