grails - Could not reserve enough space for object heap - grails

I am getting this error running app:
BUILD SUCCESSFUL
| Compiling 5 source files
| Compiling 5 source files.....
***
Metrics servlet injected into web.xml
Metrics Admin servlet-mapping (for /metrics/*) injected into web.xml
***
| Running Grails application
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
| Error Forked Grails VM exited with error
I looked over the same errors on Stack and made adjustments to the memory but I am still getting this error. I am new to Grails but I believe everything is setup correct and i can run a sample app (helloworld).
Here is the changes i made:
-Xms512m -Xmx1g -XX:PermSize=256m
This is the memory
free -m
total used free shared buffers cached
Mem: 2015 1297 718 56 169 859
-/+ buffers/cache: 267 1748
Checking if parameters are being read
$ ps -ef | grep java
tomcat7 32158 1 1 11:02 ? 00:00:10 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms512m -Xmx1g -XX:PermSize=256m -XX:MaxPermSize=256m -Xms512m -Xmx1g -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+UseConcMarkSweepGC -XX:MaxPermSize=256m -Djava.endorsed.dirs=/usr/share/tomcat7/endorsed -classpath /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar -Dcatalina.base=/var/lib/tomcat7 -Dcatalina.home=/usr/share/tomcat7 -Djava.io.tmpdir=/tmp/tomcat7-tomcat7-tmp org.apache.catalina.startup.Bootstrap start
I have this in my $HOME/.profile
export JAVA_OPTS="-Xms512m -Xmx1g -XX:MaxPermSize=256m"
in my setenv.sh for Tomcat7
export CATALINA_OPTS="-Xms512m -Xmx1g \
-XX:+CMSClassUnloadingEnabled \
-XX:+CMSPermGenSweepingEnabled \
-XX:+UseConcMarkSweepGC \
-XX:MaxPermSize=256m"
I am not sure what to change now - it seems the memory would be adequate? Please any thoughts would be great. thank you
Forgot to add if needed:
$ grails -version
Grails version: 2.4.5
$ java -version
java version "1.7.0_95"
OpenJDK Runtime Environment (IcedTea 2.6.4) (7u95-2.6.4-0ubuntu0.14.04.1)
OpenJDK Client VM (build 24.95-b01, mixed mode, sharing)

Related

Quarkus: "Enclosing method not found" Error when building native docker image

I am trying to build a Quarkus native executable docker image and I keep receiving
Fatal error:java.lang.InternalError: java.lang.InternalError: Enclosing method not found
I am using Quarkus platform image version 1.13.6.Final and following these instructions
My maven output is
...
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Building native image from C:\Users\aa99988\development\code\microservices\pm\sappmbreakdownoptionservice\target\sappmbreakdownoptionservice-1.0.0-SNAPSHOT-native-image-source-jar\sappmbreakdownoptionservice-1.0.0-SNAPSHOT-runner.jar
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildContainerRunner] Using docker to run the native image builder
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildContainerRunner] Checking image status quay.io/quarkus/ubi-quarkus-native-image:21.0-java11
21.0-java11: Pulling from quarkus/ubi-quarkus-native-image
Digest: sha256:3362737fef7d247d108e15fe35a2d7b57b4461ce3fdfc7d3874129d49fc774e4
Status: Image is up to date for quay.io/quarkus/ubi-quarkus-native-image:21.0-java11
quay.io/quarkus/ubi-quarkus-native-image:21.0-java11
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Running Quarkus native-image plugin on GraalVM Version 21.0.0.2 (Java Version 11.0.10+8-jvmci-21.0-b06)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] docker run --env LANG=C --rm -v //c/Users/aa99988/development/code/microservices/pm/sappmbreakdownoptionservice/target/sappmbreakdownoptionservice-1.0.0-SNAPSHOT-native-image-source-jar:/project:z quay.io/quarkus/ubi-quarkus-native-image:21.0-java11 -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager -J-Dsun.nio.ch.maxUpdateArraySize=100 -J-Dvertx.logger-delegate-factory-class-name=io.quarkus.vertx.core.runtime.VertxLogDelegateFactory -J-Dvertx.disableDnsResolver=true -J-Dio.netty.leakDetection.level=DISABLED -J-Dio.netty.allocator.maxOrder=1 -J-Duser.language=en -J-Duser.country=US -J-Dfile.encoding=UTF-8 --initialize-at-build-time= -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy\$BySpaceAndTime -H:+JNI -H:+AllowFoldMethods -jar sappmbreakdownoptionservice-1.0.0-SNAPSHOT-runner.jar -H:FallbackThreshold=0 -H:+ReportExceptionStackTraces -H:-AddAllCharsets -H:EnableURLProtocols=http -H:-UseServiceLoaderFeature -H:+StackTrace sappmbreakdownoptionservice-1.0.0-SNAPSHOT-runner
[sappmbreakdownoptionservice-1.0.0-SNAPSHOT-runner:25] classlist: 14,726.45 ms, 1.18 GB
[sappmbreakdownoptionservice-1.0.0-SNAPSHOT-runner:25] (cap): 755.71 ms, 1.18 GB
[sappmbreakdownoptionservice-1.0.0-SNAPSHOT-runner:25] setup: 3,387.29 ms, 1.18 GB
16:12:00,476 INFO [org.jbo.threads] JBoss Threads version 3.2.0.Final
[sappmbreakdownoptionservice-1.0.0-SNAPSHOT-runner:25] analysis: 22,748.92 ms, 2.31 GB
Fatal error:java.lang.InternalError: java.lang.InternalError: Enclosing method not found
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:600)
at java.base/java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
at com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:488)
at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:370)
at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:529)
at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:119)
at com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus.main(NativeImageGeneratorRunner.java:561)
Caused by: java.lang.InternalError: Enclosing method not found
at java.base/java.lang.Class.getEnclosingMethod(Class.java:1296)
at java.base/sun.reflect.generics.scope.ClassScope.computeEnclosingScope(ClassScope.java:50)
at java.base/sun.reflect.generics.scope.AbstractScope.getEnclosingScope(AbstractScope.java:77)
at java.base/sun.reflect.generics.scope.AbstractScope.lookup(AbstractScope.java:95)
at java.base/sun.reflect.generics.factory.CoreReflectionFactory.findTypeVariable(CoreReflectionFactory.java:110)
at java.base/sun.reflect.generics.visitor.Reifier.visitTypeVariableSignature(Reifier.java:165)
at java.base/sun.reflect.generics.tree.TypeVariableSignature.accept(TypeVariableSignature.java:43)
at java.base/sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68)
at java.base/sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138)
at java.base/sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
at java.base/sun.reflect.generics.repository.ClassRepository.computeSuperclass(ClassRepository.java:104)
at java.base/sun.reflect.generics.repository.ClassRepository.getSuperclass(ClassRepository.java:86)
at java.base/java.lang.Class.getGenericSuperclass(Class.java:949)
at com.oracle.svm.hosted.analysis.Inflation.fillGenericInfo(Inflation.java:365)
at com.oracle.svm.hosted.analysis.Inflation.checkType(Inflation.java:139)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:720)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
at com.oracle.svm.hosted.analysis.Inflation.checkObjectGraph(Inflation.java:124)
at com.oracle.graal.pointsto.BigBang.checkObjectGraph(BigBang.java:626)
at com.oracle.graal.pointsto.BigBang.finish(BigBang.java:595)
at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:717)
at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:563)
at com.oracle.svm.hosted.NativeImageGenerator.lambda$run$0(NativeImageGenerator.java:476)
at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1407)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Error: Image build request failed with exit status 1
...
Other than this GitHub Issue concerning GraalVM, I can't seem to find any resource to assist.
It seems I can run a mutlistage docker build which seems to work fine.
Is this a bug in the quay.io/quarkus/ubi-quarkus-mandrel:21.0-java11 image? Or am I simply doing something worng?

sdk grails and lazybones init fatal error

I can't use grail and lazybones installed via sdkman.
I have got fatal errors.
OS: Ubuntu 16.04
$ java -version
openjdk version "9-internal"
OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src)
OpenJDK 64-Bit Server VM (build 9-internal+0-2016-04-14-195246.buildd.src, mixed mode)
$ sdk version
SDKMAN 5.7.2+323
$ sdk install grails
$ grails -version
| Grails Version: 3.3.8
| Groovy Version: 2.4.15
| JVM Version: 9-internal
$ sdk install lazybones
$ lazybones -version
Lazybones version 0.8.3
$ grails create-app --stacktrace helloworld
Resolving dependencies..
| Error Error occurred running Grails CLI: Received fatal alert: handshake_failure (NOTE: Stack trace has been filtered. Use --verbose to see entire trace.)
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:436)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:643)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:137)
at org.eclipse.aether.transport.http.HttpTransporter.execute(HttpTransporter.java:287)
at org.eclipse.aether.transport.http.HttpTransporter.implGet(HttpTransporter.java:243)
at org.eclipse.aether.spi.connector.transport.AbstractTransporter.get(AbstractTransporter.java:59)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:447)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:350)
at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:581)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:249)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:421)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:320)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:217)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.resolveCachedArtifactDescriptor(DefaultDependencyCollector.java:535)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.getArtifactDescriptorResult(DefaultDependencyCollector.java:519)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:409)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:363)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process(DefaultDependencyCollector.java:351)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:254)
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:341)
at org.springframework.boot.cli.compiler.grape.AetherGrapeEngine.resolve(AetherGrapeEngine.java:318)
at org.springframework.boot.cli.compiler.grape.AetherGrapeEngine.resolve(AetherGrapeEngine.java:300)
at org.springframework.boot.cli.compiler.grape.AetherGrapeEngine.resolve(AetherGrapeEngine.java:292)
at org.grails.cli.boot.GrailsDependencyVersions.<init>(GrailsDependencyVersions.groovy:54)
at org.grails.cli.boot.GrailsDependencyVersions.<init>(GrailsDependencyVersions.groovy:50)
at org.grails.cli.profile.repository.MavenProfileRepository.<init>(MavenProfileRepository.groovy:53)
at org.grails.cli.GrailsCli.createMavenProfileRepository(GrailsCli.groovy:334)
at org.grails.cli.GrailsCli.execute(GrailsCli.groovy:235)
at org.grails.cli.GrailsCli.main(GrailsCli.groovy:159)
| Error Error occurred running Grails CLI: Received fatal alert: handshake_failure
$ lazybones list
Can't connect to pledbrook/lazybones-templates: Unable to make member of class sun.net.www.protocol.https.HttpsURLConnectionImpl accessible: module java.base does not export sun.net.www.protocol.https to unnamed module #75f65e45
To me that looks like an SSL handshake error when grails is doing some of its initialisation work for create app. It might be attempting to pull down some required jar files etc.
What does sdk list grails show?
What does which grails and which javareturn?
I've not used jdk 9 heaps so might be worthwhile investigating changing that also. I think you'll find switching to jdk8 will have better results. Each jdk comes with a list of standard root certificate authorities it trusts.
Maybe with the recent security issues like the one surrounding the Symantec CAs jdk9 might have removed these but the server grails is connecting to is still using one perhaps.
Edit: I think you may also have been using an internal development build version of Java 9 jdk. as you reported to using build 9-internal+0-2016-04-14-195246.buildd
Try using jdk 8 or installing a newer version of Java 9.

Installing neo4j in openshift

While I run sh neo4j console inside the /neo4j/versions/2.1/neo4j-2.1/bin. I get the following error:
WARNING: Max 16384 open files allowed, minimum of 40 000 recommended. See the Neo4j manual.
Starting Neo4j Server console-mode...
Using additional JVM arguments: -server -XX:+DisableExplicitGC -Dorg.neo4j.server.properties=conf/neo4j-server.properties -Djava.util.logging.config.file=conf/logging.properties -Dlog4j.configuration=file:conf/log4j.properties -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:-OmitStackTraceInFastThrow
2015-11-29 11:58:24.427+0000 INFO [API] Setting startup timeout to: 120000ms based on -1
Exception in thread "main" org.apache.commons.configuration.ConversionException: 'org.neo4j.server.webserver.port' doesn't map to an Integer object
at org.apache.commons.configuration.AbstractConfiguration.getInteger(AbstractConfiguration.java:845)
at org.apache.commons.configuration.AbstractConfiguration.getInt(AbstractConfiguration.java:819)
at org.neo4j.server.Bootstrapper.webServerPort(Bootstrapper.java:239)
at org.neo4j.server.Bootstrapper.start(Bootstrapper.java:130)
at org.neo4j.server.Bootstrapper.main(Bootstrapper.java:63)
Caused by: org.apache.commons.configuration.ConversionException: Could not convert "${OPENSHIFT_NEO4J_DB_PORT}" to java.lang.Integer
at org.apache.commons.configuration.PropertyConverter.toNumber(PropertyConverter.java:413)
at org.apache.commons.configuration.PropertyConverter.toInteger(PropertyConverter.java:260)
at org.apache.commons.configuration.AbstractConfiguration.getInteger(AbstractConfiguration.java:841)
... 4 more
Caused by: java.lang.NumberFormatException: For input string: ""${OPENSHIFT_NEO4J_DB_PORT}""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:481)
at java.lang.Integer.<init>(Integer.java:677)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.commons.configuration.PropertyConverter.toNumber(PropertyConverter.java:409)
... 6 more
It seems you put in a shell variable Caused by: java.lang.NumberFormatException: For input string: ""${OPENSHIFT_NEO4J_DB_PORT}""
in Neo4j's neo4j-server.properties which is not supported.
Try to modify your config script to rather replace the port inline in the config file, like this:
sed -i -e "s|org.neo4j.server.webserver.port=.*|org.neo4j.server.webserver.port=${OPENSHIFT_NEO4J_DB_PORT}|g" $NEO4J_HOME/conf/neo4j-server.properties
Seems like you've hit the max files limit. This article talks about it in relation to Neo4j:
Neo4j WARNING: Max 1024 open files allowed, minimum of 40 000 recommended. See the Neo4j manual
Specifically you would up the numbers in /etc/security/limits.conf. You may need to restart.
This seems to be possible on OpenShift:
https://forums.openshift.com/how-to-increase-the-open-file-limit-on-as7-instance

Exception in thread "main" java.lang.ClassNotFoundException: org.codehaus.groovy.grails.cli.support.GrailsStarter in Intellij using grails 3.0.0

I imported a Grails project in IntelliJ 14.1 and I got this exception when I tried to run the project using run-app command:
C:\Program Files\Java\jdk1.8.0_40\bin\java" -Dgrails.home=C:\grails-3.0.0 -Dbase.dir=E:\Aurora\Cloned\funned\src300\papafund-web "-Dtools.jar=C:\Program Files\Java\jdk1.8.0_40\lib\tools.jar" -Dgroovy.starter.conf=C:\grails-3.0.0/conf/groovy-starter.conf -Xmx768M -Xms768M -XX:MaxPermSize=256m -XX:PermSize=256m -Djline.WindowsTerminal.directConsole=false -javaagent:C:\grails-3.0.0\lib\org.springframework\springloaded\jars\springloaded-1.2.3.RELEASE.jar -noverify -Dspringloaded=profile=grails -Didea.launcher.port=7532 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1.1\bin" -Dfile.encoding=windows-1252 -classpath "C:\grails-3.0.0\dist\grails-bootstrap-3.0.0.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain org.codehaus.groovy.grails.cli.support.GrailsStarter --main org.codehaus.groovy.grails.cli.GrailsScriptRunner --conf C:\grails-3.0.0/conf/groovy-starter.conf "run-app -plain-output"
Exception in thread "main" java.lang.ClassNotFoundException: org.codehaus.groovy.grails.cli.support.GrailsStarter
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122)
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=256m; support was removed in 8.0
Process finished with exit code 1
IntelliJ doesn't support Grails 3 yet - it has been requested in their bug tracker.
You can easily run the app from a commandline and use the IDE as an editor.
Intellij Idea 15 supports Grails 3 or higher. You can see from the following:
https://www.jetbrains.com/help/idea/2016.1/getting-started-with-grails-3.html

Error with bulk-loading in cassandra

Good Morning,
I'm trying to implement the massive data dump cassandra example using the bulk-loading (http://www.datastax.com/dev/blog/bulk-loading) as a guide.
In the example resolve dependencies with the script (http://www.datastax.com/wp-content/uploads/2011/08/DataImport) but I find that the dependencies to be covered with cassandra libraries not located in the directories listed here because the version I'm working with dse with cassandra 2.0. Well then trying to cover such dependencies get the following script.
#!/bin/sh
# paths to the cassandra source tree, cassandra jar and java
CASSANDRA_HOME="/usr/share/dse/cassandra"
# CASSANDRA_JAR="./apache-cassandra-2.0.10.jar"
JAVA=`which java`
# Java classpath. Must include:
# - directory of DataImportExample
# - directory with cassandra/log4j config files
# - cassandra jar
# - cassandra depencies jar
CLASSPATH=".:/usr/share/dse/dse.jar:./slf4j-1.7.7/slf4-nop-1.7.7.jar:./slf4j-1.7.7/slf4j-simple-1.7.7.jar:/etc/dse/cassandra"
for jar in $CASSANDRA_HOME/lib/*.jar; do
CLASSPATH=$CLASSPATH:$jar
done
$JAVA -ea -cp $CLASSPATH -Xmx256M \
-Dlog4j.configuration=log4j-tools.properties \
CassandraDataBulk "$#"
CASSANDRA_JAR is commented and I use "cassandra-all-2.0.8.39.jar" located in the folder "/ usr / share / dse / cassandra / lib" and is already included.
I solve slf4j dependencies downloading that in 1.7.7 version.
Due to the difference of cassandra version also I had to accustom SSTableSimpleUnsortedWriter builder.
IPartitioner partitioner = new RandomPartitioner();
SSTableSimpleUnsortedWriter sourcesWriter = new SSTableSimpleUnsortedWriter(
directory,
partitioner,
keyspace,
table,
AsciiType.instance,
null,
64
);
It seems that the problem today is that there are still dependencies.
Under, the trace error I get.
There is a dependency but it seems that being "org.apache.commons.configuration.ConfigurationRuntimeException" the real problem could be another, Could have a bad configuration "cassandra.yaml"?
Thanks,
A greeting!
[dmdb#vm-dmdb01 ~]$ ./init_env.sh export.csv
[main] ERROR org.apache.cassandra.cql3.QueryProcessor - Unable to initialize MemoryMeter (jamm not specified as javaagent). This means Cassandra will be unable to measure object sizes accurately and may consequently OOM.
[main] INFO org.apache.cassandra.config.YamlConfigurationLoader - Loading settings from file:/etc/dse/cassandra/cassandra.yaml
[main] INFO org.apache.cassandra.config.DatabaseDescriptor - Data files directories: [/data01, /data02]
[main] INFO org.apache.cassandra.config.DatabaseDescriptor - Commit log directory: /datatmp/commitlog
[main] INFO org.apache.cassandra.config.DatabaseDescriptor - DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap
[main] INFO org.apache.cassandra.config.DatabaseDescriptor - disk_failure_policy is stop
[main] INFO org.apache.cassandra.config.DatabaseDescriptor - commit_failure_policy is stop
[main] INFO org.apache.cassandra.config.DatabaseDescriptor - Global memtable threshold is enabled at 61MB
[main] INFO com.datastax.bdp.snitch.Workload - Setting my workload to Cassandra
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/configuration/ConfigurationRuntimeException
at com.datastax.bdp.config.ConfigUtil.defaultValue(ConfigUtil.java:18)
at com.datastax.bdp.config.DseConfig.<clinit>(DseConfig.java:51)
at com.datastax.bdp.snitch.DseDelegateSnitch.<init>(DseDelegateSnitch.java:42)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:374)
at org.apache.cassandra.utils.FBUtilities.construct(FBUtilities.java:488)
at org.apache.cassandra.config.DatabaseDescriptor.createEndpointSnitch(DatabaseDescriptor.java:508)
at org.apache.cassandra.config.DatabaseDescriptor.applyConfig(DatabaseDescriptor.java:341)
at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:111)
at org.apache.cassandra.io.sstable.AbstractSSTableSimpleWriter.<init>(AbstractSSTableSimpleWriter.java:50)
at org.apache.cassandra.io.sstable.SSTableSimpleUnsortedWriter.<init>(SSTableSimpleUnsortedWriter.java:96)
at org.apache.cassandra.io.sstable.SSTableSimpleUnsortedWriter.<init>(SSTableSimpleUnsortedWriter.java:80)
at org.apache.cassandra.io.sstable.SSTableSimpleUnsortedWriter.<init>(SSTableSimpleUnsortedWriter.java:91)
at CassandraDataBulk.main(CassandraDataBulk.java:35)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuration.ConfigurationRuntimeException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 17 more
You are missing a "javaagent" parameter in your java call. Add the following:
-javaagent:$CASSANDRA_HOME/lib/jamm-0.2.5.jar
Your final call should look like:
$JAVA -ea -cp $CLASSPATH -Xmx256M \
-Dlog4j.configuration=log4j-tools.properties \
-javaagent:$CASSANDRA_HOME/lib/jamm-0.2.5.jar
CassandraDataBulk "$#"
NOTE: Adjust the path to jamm.jar as necessary
Reference
As for the runtime configuration error, download apache commons 'lang' library and include it to your classpath.
Download here
If you receive NEW exceptions after implementing the fix, download google-common.jar and guava-16.0.1.jar and include them as well to your classpath. These are all of the JARs that my own bulk loader required so far.

Resources