Initially, for local udf pah Drill uses DRILL_TMP_DIR + drill.exec.udf.directory.local and only if DRILL_TMP_DIR is unset, drill.tmp-dir + drill.exec.udf.directory.local. By default for Windows, DRILL_TMP_DIR is set to %TEMP%. My guess %TEMP% is incorrectly set on your environment to something like: " C:\Users\mob140003207\AppData\Local\Temp;C:\Python27;" In your case it should be set to %USERPROFILE%\AppData\Local\Temp. Can you please check %TEMP% environment variable output? (in cmd echo %TEMP%). If my guess is correct, then it's better to modify it. You can do it in cmd (set TEMP=%USERPROFILE%\AppData\Local\Temp but it will be for one session) or in Advanced System Settings -> Environment variables -> User variables (permanent). If using last option, please restart cmd after change.
Kind regards Arina On Tue, Apr 18, 2017 at 5:17 PM, Vignesh Kalai < [email protected]> wrote: > Hi Arina, > Thanks for the swift reply. > I changed by config as you stated and tried to run it but again it > failed with below error. > > Caused by: java.lang.IllegalStateException: Local udf directory > [C:\Users\mob140003207\AppData\Local\Temp;C:\ > Python27;\drill\udf\udf\local] > must exist > > Thanks and Regards, > Vignesh K > > On Tue, Apr 18, 2017 at 7:16 PM, Arina Yelchiyeva < > [email protected]> wrote: > > > Local UDF directory is created from: Drill temporary directory > > + drill.exec.udf.directory.local. > > Let's not override drill.exec.udf.directory.local but override drill > temp. > > > > Please try the following configuration: > > drill.exec: { > > cluster-id: "drillbits1", > > zk.connect: "localhost:2181", > > udf.directory.root: "/D:/apache-drill-1.10.0/conf", > > drill.tmp-dir: "/D:/apache-drill-1.10.0/conf" > > } > > > > Kind regards > > Arina > > > > > > On Tue, Apr 18, 2017 at 4:30 PM, Vignesh Kalai < > > [email protected]> wrote: > > > > > Hi Arina, > > > I have also tried that but same error occurs. Please find by > > > drill-override.config > > > > > > drill.exec: { > > > cluster-id: "drillbits1", > > > zk.connect: "localhost:2181", > > > udf.directory.root: "/D:/apache-drill-1.10.0/conf" > > > #udf.directory.root: "D:/apache-drill-1.10.0/conf", > > > #udf.directory.base: "D:/apache-drill-1.10.0/conf", > > > udf.directory.local:"udf", > > > #zk.root:"D:/apache-drill-1.10.0/conf" > > > } > > > The error which I got is as below > > > > > > DRILL_ARGS - " -u jdbc:drill:zk=local" > > > HADOOP_HOME not detected... > > > HBASE_HOME not detected... > > > Calculating Drill classpath... > > > Error: Failure in starting embedded Drillbit: > > > java.lang.IllegalStateException: Local udf directory > > > [C:\Users\mob140003207\AppData\Local\Temp;C:\Python27;\udf] must exist > > > (state=,code=0) > > > java.sql.SQLException: Failure in starting embedded Drillbit: > > > java.lang.IllegalStateException: Local udf directory > > > [C:\Users\mob140003207\AppData\Local\Temp;C:\Python27;\udf] must exist > > > at > > > org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>( > > > DrillConnectionImpl.java:131) > > > at > > > org.apache.drill.jdbc.impl.DrillJdbc41Factory.newDrillConnection( > > > DrillJdbc41Factory.java:72) > > > at > > > org.apache.drill.jdbc.impl.DrillFactory.newConnection( > > > DrillFactory.java:69) > > > at > > > org.apache.calcite.avatica.UnregisteredDriver.connect( > > > UnregisteredDriver.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( > > > DelegatingMethodAccessorImpl.java:43) > > > at java.lang.reflect.Method.invoke(Method.java:497) > > > at > > > sqlline.ReflectiveCommandHandler.execute( > ReflectiveCommandHandler.java: > > 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: java.lang.IllegalStateException: Local udf > directory > > > [C:\Users\mob140003207\AppData\Local\Temp;C:\Python27;\udf] must exist > > > at > > > com.google.common.base.Preconditions.checkState( > Preconditions.java:197) > > > at > > > org.apache.drill.exec.expr.fn.FunctionImplementationRegistry > > > .getLocalUdfDir(FunctionImplementationRegistry.java:452) > > > at > > > org.apache.drill.exec.expr.fn.FunctionImplementationRegistry.<init>( > > > FunctionImplementationRegistry.java:123) > > > at > > > org.apache.drill.exec.expr.fn.FunctionImplementationRegistry.<init>( > > > FunctionImplementationRegistry.java:127) > > > at > > > org.apache.drill.exec.server.DrillbitContext.<init>( > > > DrillbitContext.java:95) > > > at > > > org.apache.drill.exec.work.WorkManager.start(WorkManager.java:106) > > > at > > > org.apache.drill.exec.server.Drillbit.run(Drillbit.java:119) > > > at > > > org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>( > > > DrillConnectionImpl.java:122) > > > ... 18 more > > > apache drill 1.10.0 > > > "json ain't no thang" > > > 0: jdbc:drill:zk=local> !quit > > > > > > Thanks and Regards, > > > Vignesh K > > > > > > On Tue, Apr 18, 2017 at 6:14 PM, Arina Yelchiyeva < > > > [email protected]> wrote: > > > > > > > Hi Vignesh, > > > > > > > > In previous email thread David suggested to change: > > > > udf.directory.root: "/C:/Temp/" > > > > /C:/Temp/ is syntax that can be used on Windows [1]. > > > > > > > > Can you please try this variant? > > > > > > > > [1] https://drill.apache.org/docs/dynamic-udfs/ > > > > > > > > Kind regards > > > > Arina > > > > > > > > > > > > On Tue, Apr 18, 2017 at 3:04 PM, Vignesh Kalai < > > > > [email protected]> wrote: > > > > > > > > > Hi Team, > > > > > This is in continuation to the mail I sent yesterday I didn't > > know > > > > how > > > > > to reply to that. As Abhishek Girish stated I changed the udf local > > > path > > > > > i.e.) udf.directory.local: "/udf" > > > > > But still the error occured > > > > > > > > > > * Caused by: java.lang.IllegalStateException: Local udf > > directory > > > > > [C:\Users\vignesh\AppData\Local\Temp;C:\Python27;\udf] must exist* > > > > > > > > > > The directory is writable. If feel the issue is the root directory > is > > > > > somewhere else from the directory the apache drill bin is. I also > > tried > > > > > changing *udf.directory.root:* and *udf.directory.base:* to > > *C:\\apache > > > > > *but > > > > > that also did not solve the issue. > > > > > > > > > > Thanks and Regards, > > > > > Vignesh k > > > > > > > > > > > > > > >
