>
>  java.lang.ClassNotFoundException: IO Error loading class
> org.apache.accumulo.tserver.compaction.DefaultCompactionStrategy


Do you have your accumulo jars in VFS?  I would recommend against that, put
them in ACCUMULO_HOME/lib.  Those should not be reloaded between restarts
and makes a lot of extra calls against HDFS than are necessary.

On Thu, Sep 27, 2018 at 2:36 PM Rob Verkuylen <r...@verkuylen.net> wrote:

> Hmm 'jinfo <tabletserver_pid> | grep tmp'  shows:
>
> java.io.tmpdir = /tmp
>
>
> "ls -hal /" shows 777 on /tmp
>
>
> Grepping for 'tmp' in tserver startup:
>
> [zookeeper.ZooKeeper] INFO : Client environment:java.io.tmpdir=/tmp
>
> [server.Accumulo] INFO : general.vfs.cache.dir =
> /tmp/accumulo-vfs-cache-accumulo
>
> [server.Accumulo] INFO : tserver.dir.memdump = /tmp
>
>
> I'm guessing the relevant code to get the dir would be in:
> AccumuloVFSClassLoader.java
>
> String cacheDirPath = AccumuloClassLoader.getAccumuloString(VFS_CACHE_DIR,
> System.getProperty("java.io.tmpdir"));
>
> with
>
> public static final String VFS_CACHE_DIR = "general.vfs.cache.dir";
>
>
> which then would be ' /tmp/accumulo-vfs-cache-accumulo', but it seems
> this dir does not not need to exist and will be created. Could there be any
> other reason this would pop up? Can these settings be overridden somewhere?
>
>
>
>
> On Wed, Sep 26, 2018 at 10:17 PM Christopher <ctubb...@apache.org> wrote:
>
>> It looks like the error is when vfs tries to create a temporary file in
>> your tmpdir. I would check that your java.io.tmpdir points to a directory
>> that exists and has the appropriate permissions for the user running the
>> Accumulo process.
>>
>> On Wed, Sep 26, 2018, 16:08 Rob Verkuylen <r...@verkuylen.net> wrote:
>>
>>> Hi,
>>>
>>>
>>> I'm trying to get vfs loading of my jar working in 1.7.2. On a test
>>> cluster of the same version this works fine and I see the jar being
>>> replicated in the cache in '/tmp/accumulo-vfs*/fstore-filters-1.3.2.jar',
>>> but when I do the exact same thing on prod, I get the stacktrace below. Any
>>> ideas?
>>>
>>>
>>> Setup I used:
>>>
>>> config -s
>>> general.vfs.context.classpath.fstore=hdfs://nameservice1/libs/accumulo/fstore/.*jar
>>> config -t test.fstore_index -s table.classpath.context=fstore
>>>
>>> Stacktrace on tablet server:
>>> Failed to load class
>>>             java.lang.ClassNotFoundException: IO Error loading class
>>> org.apache.accumulo.tserver.compaction.DefaultCompactionStrategy
>>>                         at
>>> org.apache.accumulo.start.classloader.vfs.ContextManager.loadClass(ContextManager.java:188)
>>>                         at
>>> org.apache.accumulo.core.conf.Property.createInstance(Property.java:873)
>>>                         at
>>> org.apache.accumulo.core.conf.Property.createTableInstanceFromPropertyName(Property.java:910)
>>>                         at
>>> org.apache.accumulo.tserver.TabletServerResourceManager$TabletResourceManager.needsMajorCompaction(TabletServerResourceManager.java:647)
>>>                         at
>>> org.apache.accumulo.tserver.tablet.Tablet.needsMajorCompaction(Tablet.java:1594)
>>>                         at
>>> org.apache.accumulo.tserver.tablet.Tablet.initiateMajorCompaction(Tablet.java:1574)
>>>                         at
>>> org.apache.accumulo.tserver.TabletServer$MajorCompactor.run(TabletServer.java:1875)
>>>                         at
>>> org.apache.accumulo.fate.util.LoggingRunnable.run(LoggingRunnable.java:35)
>>>                         at java.lang.Thread.run(Thread.java:745)
>>>             Caused by: org.apache.commons.vfs2.FileSystemException:
>>> Could not replicate
>>> "hdfs://nameservice1/libs/accumulo/fstore/fstore-filters-1.3.2.jar".
>>>                         at
>>> org.apache.commons.vfs2.provider.AbstractFileSystem.replicateFile(AbstractFileSystem.java:426)
>>>                         at
>>> org.apache.commons.vfs2.provider.zip.ZipFileSystem.<init>(ZipFileSystem.java:66)
>>>                         at
>>> org.apache.commons.vfs2.provider.jar.JarFileSystem.<init>(JarFileSystem.java:48)
>>>                         at
>>> org.apache.commons.vfs2.provider.jar.JarFileProvider.doCreateFileSystem(JarFileProvider.java:80)
>>>                         at
>>> org.apache.commons.vfs2.provider.AbstractLayeredFileProvider.createFileSystem(AbstractLayeredFileProvider.java:87)
>>>                         at
>>> org.apache.commons.vfs2.impl.DefaultFileSystemManager.createFileSystem(DefaultFileSystemManager.java:1022)
>>>                         at
>>> org.apache.commons.vfs2.impl.DefaultFileSystemManager.createFileSystem(DefaultFileSystemManager.java:1042)
>>>                         at
>>> org.apache.commons.vfs2.impl.VFSClassLoader.addFileObjects(VFSClassLoader.java:156)
>>>                         at
>>> org.apache.commons.vfs2.impl.VFSClassLoader.<init>(VFSClassLoader.java:119)
>>>                         at
>>> org.apache.accumulo.start.classloader.vfs.AccumuloReloadingVFSClassLoader.<init>(AccumuloReloadingVFSClassLoader.java:147)
>>>                         at
>>> org.apache.accumulo.start.classloader.vfs.AccumuloReloadingVFSClassLoader.<init>(AccumuloReloadingVFSClassLoader.java:162)
>>>                         at
>>> org.apache.accumulo.start.classloader.vfs.ContextManager$Context.getClassLoader(ContextManager.java:46)
>>>                         at
>>> org.apache.accumulo.start.classloader.vfs.ContextManager.getClassLoader(ContextManager.java:174)
>>>                         at
>>> org.apache.accumulo.start.classloader.vfs.ContextManager.loadClass(ContextManager.java:186)
>>>                         ... 8 more
>>>             Caused by: org.apache.commons.vfs2.FileSystemException:
>>> Unknown message with code "No such file or directory".
>>>                         at
>>> org.apache.accumulo.start.classloader.vfs.UniqueFileReplicator.replicateFile(UniqueFileReplicator.java:68)
>>>                         at
>>> org.apache.commons.vfs2.provider.AbstractFileSystem.doReplicateFile(AbstractFileSystem.java:473)
>>>                         at
>>> org.apache.commons.vfs2.provider.AbstractFileSystem.replicateFile(AbstractFileSystem.java:422)
>>>                         ... 21 more
>>>             Caused by: java.io.IOException: No such file or directory
>>>                         at
>>> java.io.UnixFileSystem.createFileExclusively(Native Method)
>>>                         at java.io.File.createTempFile(File.java:2024)
>>>                         at
>>> org.apache.accumulo.start.classloader.vfs.UniqueFileReplicator.replicateFile(UniqueFileReplicator.java:60)
>>>                         ... 23 more
>>>
>>>
>>>
>>>
>>

Reply via email to