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. > ************************************************************************
