asterixdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Xikui Wang <xik...@uci.edu>
Subject Re: Install UDF library (NCService option)
Date Tue, 16 Oct 2018 16:42:22 GMT
The UDF package will be installed when AsterixDB starts. Since the UDFs are
installed properly, there might be something wrong with the package that
you dropped off. Could you try again with a clean AsterixDB and the
compiled package? You could try to remove some default UDFs to make sure
the package that you have is actually up-to-date.

Best,
Xikui

On Tue, Oct 16, 2018 at 1:54 AM sandraskarshaug@gmail.com <
sandraskarshaug@gmail.com> wrote:

>
>
> On 2018/10/15 17:58:38, Xikui Wang <xikuiw@uci.edu> wrote:
> > Hi Sandra,
> >
> > The UDF template repo that you used was outdated for some time. There has
> > been some UDF refactorization in AsterixDB since that. I've just updated
> > the template repo to the latest AsterixDB build. Please pull the latest
> > changes before you try again.
> >
> > If you want to install UDF with the NCService deployment, you would have
> to
> > manually copy the package content into the
> > "lib/udfs/DATAVERSE_NAME/LIB_NAME/" directory. You will probably need to
> > create all the folders including the "udfs" one. A sample structure of
> the
> > lib directory will be like this:
> >
> > lib
> > ....
> > ├── stax-utils-20060502.jar
> > └── udfs
> >     └── test
> >         └── testlib
> >             ├── asterix-udf-template-0.1-SNAPSHOT.jar
> >             └── library_descriptor.xml
> >
> > About your previous question, Ansible always relies on SSH even if you
> > configure it with localhost only. It treats the localhost as a cluster
> with
> > a single machine. You may want to check the password-less configuration
> of
> > your machine to avoid that problem. If you just to want to find a fast
> way
> > to play around, the NCService deployment would be the right way to go. :)
> >
> > Best,
> > Xikui
> >
> > On Mon, Oct 15, 2018 at 8:14 AM Ian Maxon <imaxon@uci.edu> wrote:
> >
> > > You can probably get away with it, yes. Look at what the ansible task
> > > to install the UDF does and copy it to the same location, and it'll
> > > work.
> > >
> > > On Mon, Oct 15, 2018 at 7:00 AM Sandra Skarshaug
> > > <sandraskarshaug@gmail.com> wrote:
> > > >
> > > > Some follow up information, I have a folder structure inside
> > > asterix-server-0.9.3-binary-assembly which looks like the attached
> image.
> > > The files inside testlib are generated when building the following
> > > udf-template project: https://github.com/idleft/asterix-udf-template.
> > > >
> > > > When I try to execute the query below, it says function
> > > test.testlib#mysum@2 is not defined [CompilationException]
> > > >
> > > >  "use test;
> > > >  testlib#mysum(3,4);"
> > > >
> > > > man. 15. okt. 2018 kl. 11:36 skrev Sandra Skarshaug <
> > > sandraskarshaug@gmail.com>:
> > > >>
> > > >> Hi!
> > > >>
> > > >> I am using AsterixDB for my master thesis, and I have some issues
I
> > > hope you can help me with!
> > > >>
> > > >> How do I install a UDF package when I am using NCService, not
> Ansible?
> > > Is it enough to unzip the .jar generated from my project, and add it to
> > > asterix-server-0.9.3-binary-assembly/lib/udfs/testlib? Or should I use
> my
> > > local version of asterixdb (the cloned repo), not the one installed
> through
> > > your webpage?
> > > >>
> > > >> The following information is found in the cc.log when I put the
> .jar in
> > > the location specified above (lib/udfs/testlib): ssembly/lib/udfs
> > > >>
> > > >> Oct 15, 2018 10:41:17 AM org.apache.hyracks.control.cc.CCDriver
> main
> > > >> SEVERE: Exiting CCDriver due to exception
> > > >> java.lang.ArrayIndexOutOfBoundsException: 0
> > > >> at
> > >
> org.apache.asterix.app.external.ExternalLibraryUtils.getLibraryClassLoader(ExternalLibraryUtils.java:353)
> > > >> at
> > >
> org.apache.asterix.app.external.ExternalLibraryUtils.registerLibrary(ExternalLibraryUtils.java:299)
> > > >> at
> > >
> org.apache.asterix.app.external.ExternalLibraryUtils.setUpExternaLibraries(ExternalLibraryUtils.java:78)
> > > >> at
> > >
> org.apache.asterix.hyracks.bootstrap.CCApplication.start(CCApplication.java:140)
> > > >> at org.apache.hyracks.control.cc
> > >
> .ClusterControllerService.startApplication(ClusterControllerService.java:226)
> > > >> at org.apache.hyracks.control.cc
> > > .ClusterControllerService.start(ClusterControllerService.java:212)
> > > >> at org.apache.hyracks.control.cc.CCDriver.main(CCDriver.java:47)
> > > >>
> > > >>
> > > >> I am really looking forward to your answer!
> > > >>
> > > >> Best regards,
> > > >> Sandra Skarshaug
> > >
> > Hi, thanks for your reply! It finally worked now!
>
> However, I wrote a new function and factory (in the udf-template project),
> and then updated the library_descriptor. Then I built the project, ran the
> stop-script, before I added the updated files to /testlib. When starting up
> asterixDB now, only the old (first) functions are found when executing the
> query "SELECT * FROM Metadata.`Function`;", not the new one. Any idea what
> I have to do to make the new function available as well?
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message