我LongAccumulator
在地图操作中使用a 作为共享计数器。但是似乎我没有正确使用它,因为工作节点上计数器的状态没有更新。这是我的柜台类的样子:
public class Counter implements Serializable {
private LongAccumulator counter;
public Long increment() {
log.info("Incrementing counter with id: " + counter.id() + " on thread: " + Thread.currentThread().getName());
counter.add(1);
Long value = counter.value();
log.info("Counter's value with id: " + counter.id() + " is: " + value + " on thread: " + Thread.currentThread().getName());
return value;
}
public Counter(JavaSparkContext javaSparkContext) {
counter = javaSparkContext.sc().longAccumulator();
}
}
据我了解的文档,当应用程序在多个工作程序节点中运行时,这应该可以正常工作:
累加器是仅通过关联和交换操作“累加”的变量,因此可以有效地并行支持。它们可用于实现计数器(如在MapReduce中)或总和。Spark本身支持数字类型的累加器,程序员可以添加对新类型的支持。
但是这是当计数器在2个不同的工作线程上递增并且看起来状态未在节点之间共享时的结果:
INFO计数器:线程上ID为866的递增计数器:Executor任务启动worker-6
INFO计数器:线程ID为866的计数器值为:1线程:Executor任务启动worker-6
INFO计数器:ID为866的递增计数器,线程:执行程序任务启动worker-0
INFO计数器:ID:866的计数器的值是:1在线程上:执行程序任务启动worker-0
我是否理解累加器概念错误,或者必须使用任何设置来启动任务?
它不应该工作:
然后,可以使用add方法将在集群上运行的任务添加到集群中。但是,他们无法读取其值。只有驱动程序可以使用value方法读取累加器的值。
每个任务都有其自己的累加器,该累加器在本地更新,并在完成任务并报告结果后与驱动程序上的“共享”副本合并。
从任务中使用旧Accumulator
API时(AccumulatorV2
实际上是包装)实际上会引发异常value
,但由于某种原因,已在中将其省略AccumulatorV2
。
我试图在弹出组件和JMenuItem组件的click action事件中向JTree动态添加节点。我右键单击节点组件并添加另一个节点。添加节点适用于叶节点,但不适用于非叶节点。我不知道代码有什么问题。似乎添加了节点,但Gui没有更新。 平台:Windows 7 Java Java版本“1.7.0\u 17”Java(TM)SE运行时环境(build 1.7.0\u 17-b02)Java HotS
我的源XML文档 根据元素内容的模式,在元素中的元素中,我希望添加一个新的元素。元素是前导信息。因此,首先,我必须创建一个新的元素及其和内容。之后,我必须创建一个相应的元素,该元素具有相同的内容和特定的内容。 这是我的目标XML文档的示例(添加param03): 我的XSLT文档 结果XML文档错误 我遇到的问题: > 使用不会按预期更改节点上下文。新的元素将在最后一个位置添加到元素中,而不是按照
问题内容: 我想打印根节点的子元素。这是我的XML文件。 根据我的理解,根节点是“公司”,其子节点必须是“职员”和“职员”(因为存在“职员”节点2次)。但是,当我尝试通过我的Java代码获取它们时,我得到了5个子节点。3个额外的文本节点从哪里来? Java代码: 输出: 为什么三个文本节点要过来? 问题答案: 为什么三个文本节点要过来? 它们是子 元素 之间的空白。如果只需要子元素,则应忽略其他类
我想打印根节点的子元素。这是我的XML文件。 根据我的理解,根节点是“company”,其子节点必须是“staff”和“staff”(因为有两个“staff”节点)。但是当我试图通过java代码获取它们时,我得到了5个子节点。3个额外的文本节点来自哪里? Java代码: 输出: 为什么这三个文本节点会出现在这里?
但是在我使用运行应用程序的服务器上,环境变量仍然。 我用来在服务器上运行应用程序的pm2命令是:
我有一种工作方法,可以在给定键的情况下删除链表中的节点。那时我将节点类嵌套在LinkedList类中,可以直接访问节点类的成员(例如head.next和head.data)。我对代码进行了重构,使其具有一个单独的节点类,并为数据和下一个成员设置了访问器和mutator方法。(我正在准备面试,所以我正在处理许多linkedlist问题,所以我认为有一个单独的类可以让我不必复制和粘贴很多代码。 这是我