我试图覆盖Spark的默认值log4j.properties,但没有任何运气.我尝试将以下内容添加到spark-submit:
--conf "spark.executor.extraJavaOptions=Dlog4j.configuration=/tmp/log4j.properties"
--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=/tmp/log4j.properties"
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.我也试过使用--files选项,spark-submit但似乎也没有用.有没有人有日志设置,所以你有log4j.properties每个驱动程序的文件而不使用默认值?
我正在使用Mesos和Marathon来运行Spark驱动程序.我不确定该--files选项,我找不到任何关于它如何使用以及它究竟做什么的例子.
我还想提一下,我手动将log4j.properties文件上传到我的所有节点,这些节点都有我的测试更改.
截至目前,Spark版本为1.1.0.
我正在处理的Web服务具有Jersey创建的生成的WADL.我想要做的是将xsd0.xsd重命名为Result.xsd或类似的东西.每当它重新生成WADL时,它将是Result.xsd.泽西有可能吗?
我成功地能够在运行时在Java中编译Groovy并将其存储在数据库中并将其拉出来.如果它有内部类或内部枚举,我无法编译Groovy类.有没有人成功编译这样的Groovy代码并包含内部类/枚举并能够通过类名拉出脚本?
例如,我想加载下面显示的包含内部类的"Test"脚本,并在运行时运行脚本.
编译代码:
public byte[] compileGroovyScript(final String className, final String script) {
byte[] compiledScriptBytes = null;
CompilationUnit compileUnit = new CompilationUnit();
compileUnit.addSource(className, script);
compileUnit.compile(Phases.CLASS_GENERATION);
for (Object compileClass : compileUnit.getClasses()) {
GroovyClass groovyClass = (GroovyClass) compileClass;
compiledScriptBytes = groovyClass.getBytes();
}
return compiledScriptBytes;
}
Run Code Online (Sandbox Code Playgroud)
拉出脚本的代码:
public Class getGroovyScript(final String className, final byte[] script) {
Class clazz = null;
try (GroovyClassLoader classLoader = new GroovyClassLoader(this.getClass().getClassLoader())) {
clazz = classLoader.defineClass(className, script);
} catch (IOException e) {
} catch (Exception e) {
}
return clazz; …Run Code Online (Sandbox Code Playgroud) 垃圾收集器列表:
我知道当您启用 ClassUnloading JVM 选项时,Conc Mark Sweep GC 支持清理 PermGen。其他垃圾收集器是否支持清理 PermGen?
原因:我们使用 Spring、Hibernate 和 Groovy,它们创建了很多代理,并且 Perm Gen 变大了。
编辑:应该提到我使用的是 Java 7。我知道 Java 8 删除了 Perm Gen,希望将来会升级。与此同时,我的问题是其他垃圾收集器是否支持清理除 Conc Mark Sweep 之外的 PermGen。
我有一个Java 7项目,它每n分钟由n个进程运行一次脚本。这是运行脚本的代码示例。
ScheduledFuture scheduledFuture = scheduledService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
try (GroovyClassLoader cl = new GroovyClassLoader()) {
// Load up reusable script modules in the class loader
Class scriptClass = cl.parseClass(scriptSource);
Foo script = optimizationClass.newInstance();
// Tell Groovy that we don't need class meta info
GroovySystem.getMetaClassRegistry().removeMetaClass(scriptClass);
script.run();
cl.clearCache();
} catch (IOException e) {
LOGGER.error("Failed to cleanup Groovy class loader, this will cause a memory leak", e);
}
}
}, 0, scheduledRun, TimeUnit.SECONDS);
scheduledFuture.get();
Run Code Online (Sandbox Code Playgroud)
由于某些原因,Groovy 2.1.7在Perm Gen中没有内存泄漏。当升级到Groovy 2.3.8或Groovy …