Hi Paul,

Sorry for the late response.

When I first ran into this issue, I have verified that the directory 
C:/User/ivy.chan/drill/udf/registry has created by the process. So I don't 
think that is permission issue. I also tried your workaround and for some 
reason it still try to create something in C:/User/ivy.chan/drill/udf/registry 
and I got the exact same error.  Also tried to move drill to c drive under my 
profile, still not working.

For now, I have a cluster setup and running in other servers so I'm good.

Thanks for your help.

Ivy

-----Original Message-----
From: Paul Rogers [mailto:[email protected]]
Sent: Saturday, December 03, 2016 7:46 PM
To: [email protected]
Subject: Re: Drill 1.9.0 - Embedded mode doesn't work on Windows

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


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

Reply via email to