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

Reply via email to