小编sum*_*ulb的帖子

如何在Scala中读取环境变量

在Java中,读取环境变量是完成的System.getenv().

有没有办法在Scala中执行此操作?

scala environment-variables

142
推荐指数
5
解决办法
7万
查看次数

动态更改log4j日志级别

有哪些动态更改log4j日志级别的方法,以便我不必重新部署应用程序.在这些情况下,这些变化是永久性的吗?

java logging log4j runtime

120
推荐指数
4
解决办法
15万
查看次数

使用Shade-Plugin正确地最小化Uber Jar

我正在使用Maven-Shade-Plugin来创建一个可运行的Uber-jar.根据本页的最后一帧,可以通过使用以下方式最小化jar的大小:

<configuration>
      <minimizeJar>true</minimizeJar>
</configuration>
Run Code Online (Sandbox Code Playgroud)

但是,此功能未考虑log4j.properties文件中声明的类.因此,例如org.apache.log4j.appender.TimeAndSizeRollingAppender,即使它已在log4j.properties文件中声明,也不包含在Uber-jar中.

我相信我会遇到与Spring相同的问题.如果我的代码仅引用接口A并且我的Spring文件包含实现A的类B的实例化,那么B可能不会被添加到jar中,因为它不在代码中.

我怎么解决这个问题?

java executable-jar maven-plugin maven

25
推荐指数
1
解决办法
1万
查看次数

如何在Velocity foreach循环中获得从零开始的计数

我试图在Velocity #foreach指令中获得一个从零开始的计数器.

如果我使用:

#foreach ($item in $list)
   item.getName() : $velocityCount
#end
Run Code Online (Sandbox Code Playgroud)

我会得到:

Fred : 1
Wilma : 2
Barney : 3
Run Code Online (Sandbox Code Playgroud)

但是我需要:

Fred : 0
Wilma : 1
Barney : 2
Run Code Online (Sandbox Code Playgroud)

从速度模板的角度来看,解决方案必须尽可能简单.

编辑:
我可以使用:

#foreach ($item in $list)
   #set( $num = $velocityCount - 1 ) //The white space in mandatory
   item.getName() : $num
#end
Run Code Online (Sandbox Code Playgroud)

它的工作原理.但我正在寻找更优雅的解决方案.

编辑2:
我也需要基于单一的计数器.也就是说,在同一模板中,我很可能会有一个#foreach指令需要一个基于零的计数器和另一个#foreach需要一个基本计数器的指令.

java foreach velocity

15
推荐指数
2
解决办法
2万
查看次数

kafka NoClassDefFoundError kafka/Kafka

关于Apache-Kafka消息队列.

我从Kafka下载页面下载了Apache Kafka.我把它提取到了/opt/apache/installed/kafka-0.7.0-incubating-src.

快速入门页面说,你需要通过运行来启动饲养员,然后开始卡夫卡:
>bin/kafka-server-start.sh config/server.properties

我正在使用单独的Zookeeper服务器,因此我编辑config/server.properties指向该Zookeeper实例.

当我按照快速入门页面中的说明运行Kafka时,我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: kafka/Kafka
Caused by: java.lang.ClassNotFoundException: kafka.Kafka
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: kafka.Kafka.  Program will exit.
Run Code Online (Sandbox Code Playgroud)

我使用telnet确保可以从Kafka运行的机器访问Zookeeper实例.一切都好.

为什么我会收到此错误?

noclassdeffounderror apache-kafka apache-zookeeper

12
推荐指数
2
解决办法
9251
查看次数

从文件向RabbitMQ发布多条消息

通过简单地将消息放入UI并单击"发布消息"按钮,可以使用UI轻松完成将单个消息发布到RabbitMQ队列.

你如何发布一批消息?

我有一个文件,其中包含要发送给RabbitMQ的消息.每行有一条消息.

如何将文件中的所有消息发布到RabbitMQ服务器?

有没有办法从命令行执行此操作?

command-line file message-queue publish-subscribe rabbitmq

10
推荐指数
4
解决办法
2万
查看次数

Spark - 使用不可序列化的成员序列化对象

我将在Spark的上下文中提出这个问题,因为这就是我所面临的问题,但这可能是一个普通的Java问题.

在我们的火花工作中,我们Resolver需要在所有工人中使用它(它在udf中使用).问题是它不可序列化,我们无法改变它.解决方案是将其作为序列化的另一个类的成员.

所以我们最终得到:

public class Analyzer implements Serializable {
    transient Resolver resolver;

    public Analyzer() {
        System.out.println("Initializing a Resolver...");
        resolver = new Resolver();
    }

    public int resolve(String key) {
         return resolver.find(key);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我们broadcast使用Spark API这个类:

 val analyzer = sparkContext.broadcast(new Analyzer())
Run Code Online (Sandbox Code Playgroud)

(有关Spark广播的更多信息,请点击此处)

然后,我们继续analyzer在UDF中使用,作为我们的火花代码的一部分,具体如下:

val resolve = udf((key: String) => analyzer.value.resolve(key))
val result = myDataFrame.select("key", resolve("key")).count()
Run Code Online (Sandbox Code Playgroud)

这一切都按预期工作,但让我们感到疑惑.

Resolver没有实现Serializable,因此标记为transient- 意味着它不会与它的所有者对象一起序列化Analyzer.

但是正如您从上面的代码中可以清楚地看到的那样,该resolve()方法使用resolver,因此它不能为null.事实上并非如此.代码有效.

因此,如果字段未通过序列化传递,那么resolver …

java serialization scala kryo apache-spark

9
推荐指数
1
解决办法
923
查看次数

R的卡夫卡消费者

我希望用Python或R(最好是R)一起破解kafka消费者.使用kafka控制台使用者我可以grep一个字符串并检索相关数据但是在R中适当地解析它时我感到很茫然.

有些kafka客户端可以使用其他语言(例如:PHP,CPP),但从数据分析的角度来看,R中的一个客户端会很有用.

如果这个论坛上的专家R开发人员暗示/建议可以让我在这方面取得进展的资源,那将是很棒的.

Apache Kafka:incubator.apache.org/kafka/

Kafka Consumer Client(s):https://github.com/kafka-dev/kafka/tree/master/clients

python r apache-kafka

7
推荐指数
2
解决办法
2562
查看次数

ASP.NET - 存储临时文件

我有一个Web表单,允许用户在我们的系统中打开票证时上传文件.使用"ajax控件工具包"asyncFileUpload控件完成上载.

我们的想法是将文件保存到临时目录,并在用户点击"提交"按钮时将它们保存到永久位置.

我希望能够摆脱不再相关的临时文件(例如,用户离开页面一个月而不发布表单).

什么是不永远保存临时文件的最佳方法.也许将它们保存在会话中?也许让他们保持在观察状态?

我可以在超时时向页面添加一些JS,并添加一些在用户离开页面时运行的代码.但这些想法是客户端解决方案.我不希望有人篡改代码并在我的系统上留下垃圾.

还有其他想法吗?

谢谢,Summerbulb

c# asp.net ajaxcontroltoolkit

6
推荐指数
2
解决办法
1万
查看次数

如何从UI的Stage DAG中知道哪一行代码导致OutOfMemory?

我正在尝试分析我的 Spark 作业中的一个问题,该问题因OutOfMemory错误而失败。

我试图通过查看 Spark ApplicationMaster 的 UI 来分析问题。UI 显示作业的阶段和任务细分,我将分析重点放在正在经历任务失败的阶段。

Stage UI 有一个 DAG,显示该阶段中正在执行的实际命令/方法。

问题是我有 150 行代码进行 DataFrame 转换,而最后只有一行代码执行一项操作 - 保存到镶木地板。这意味着所有“蓝色框”都有最后一行的行号。

是的,他们有一些关于方法的信息(窗口、顺序等),但我的整个代码中都有这些方法,所以我无法知道它引用的是哪一行。

我怎样才能找到代码的哪一部分有问题?

out-of-memory apache-spark apache-spark-sql

6
推荐指数
1
解决办法
1705
查看次数