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