问题标签 [hazelcast-jet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hazelcast-jet - 单个顶点中的合作和非合作“处理器”
s可以Processor
在单个顶点上既合作又不合作?因为协同性是 的属性Processor
,并且ProcessorSupplier
不需要返回Processor
相同类型的 s。或者是吗?
这个用例很奇怪并且可以避免,但只是想知道......
java - Hazelcast keySet 流式传输?
我是 Hazelcast 的新手,我正在尝试使用它来将数据存储在一张太大而无法容纳在单台机器上的地图中。
我需要实现的过程之一是遍历地图中的每个值并对它们做一些事情 - 不累积或聚合,我不需要一次查看所有数据,因此没有内存问题接着就,随即。
我的简单实现是使用IMap.keySet()
然后遍历所有键以依次获取每个存储的值(并允许在处理后对值进行 GC),但我担心系统中会有太多数据即使只是获取密钥列表也足以给系统带来过度的压力。
我希望有一个流式 API,我可以流式传输密钥(甚至完整条目),这样本地节点就不必在本地缓存整个集合 - 但在文档。
如果您提出任何建议,我将不胜感激。谢谢。
apache-flink - Hazelcast Jet 和 Apache Flink 有什么区别
更具体地说,Hazelcast Jet 解决了哪些 Flink 无法解决(同样好)的用例,反之亦然?
hazelcast - Hazelcast Jet - 用例
Hazelcast Jet 的用例是什么?有人开始使用了吗?
我们的项目使用 Hazelcast 进行分布式地图持有键值对和这些键上的分布式计算,以在持有键的节点上运行任务。我们也使用 NearCache 解决方案。
我很想知道 Hazelcast Jet 有什么不同,它解决了哪些问题?
hazelcast - hazelcast-jet 如何实现与 hazelcast EntryProcessors 不同的任何东西
hazelcast-jet 如何实现与之前通过在 IMap 中的键上提交 EntryProcessors 所实现的完全不同的东西?
很想知道。
java - 分配处理时通常有多少开销?
对于不耐烦的读者:这是一项正在进行的工作,我在此过程中寻求帮助。请不要以我的临时数据来判断这些工具,因为它们可能会在我试图获得更好的结果时发生变化。
我们正处于架构决策过程的中间,以使用一种工具来分析协同仿真的输出。
作为该过程的一部分,我被要求编写一个基准测试工具,并获取有关几个分布式处理框架速度的数据。
我测试的框架有:Apache Spark、Apache Flink、Hazelcast Jet。并作为比较基准纯 Java。
我使用的测试用例是一个简单的“这里是 Pojos 列表,pojo 中的一个字段是双精度值。找到最小(最小值)值”。
简单、直接并且希望具有高度可比性。
四分之三的测试使用简单的比较器,第四个(flink)使用与比较器基本相同的reducer。分析函数如下所示:
我对此进行了广泛的测试,改变了测试列表的大小以及分配的资源。结果让我大吃一惊。最好的结果如下所示(所有数字以毫秒为单位,1 个 mio pojos,每个测试 10 个):
- 实例:声明和启动框架实例需要多长时间
- 列表:将列表解析/传输到框架“列表”需要多长时间
- 过程:处理数据以检索最小值所需的时间
- 总体:从每个测试的开始到结束
结果:
最有趣的部分是:
- 最好的结果全部来自纯本地测试(一个实例)
- 任何使用分布式机制(附加节点等)的测试仍然慢了一个数量级(例如,如果分布式火花,则慢 2.5 倍)。
现在不要误会我的意思,分布式处理的每个核心必须比单线程处理慢,这是基本逻辑。
但是即使在单线程上使用也要 2 个数量级?如果是分布式的,又是 3 个数量级?有人能看出我在所有 3 个分布式进程中显然犯的错误吗?我预计某些因素 < 10,因此可以选择使用更多硬件来杀死它。
那么有没有办法将这些框架的开销减少到,嗯,也许是 x9 而不是 x999?
我知道我知道,我使用的测试数据非常小,但即使扩大规模,我也没有看到开销与性能相比有任何减少。它大致是我们需要分析的批量数据的大小(每次模拟 0.1M - 1M 个对象/秒)。因此,欢迎您帮助找出我的错误。:D
更新火花:
在对 Spark 进行了一些更彻底的测试之后,我仍然没有留下深刻的印象。设置如下:
一台机器上的 java 客户端,64 核,480 GB RAM 作业主机和 7 个从机在一个单独的机架上,32 个 cors,每个 20 GB
结果:无论投入多少硬件,无论任务如何集群,使用 spark 的列表中每百万个 pojo 需要 5-6 秒。
另一方面,Java 处理相同的数量需要 5-30 毫秒。所以基本上是200-1,000的一个因素。
有没有人建议如何为如此简单的工作“加速” Spark?
更新榛树:
现在我开始印象深刻了。虽然我仍在与一些奇怪的问题作斗争,但至少 Hazelcast Jet 似乎明白,如果可能的话,本地数据可以在本地处理。只有 100%(x2 倍)的开销,这是完全可以接受的。
10 个 mio 对象
更新弗林克:
暂时将其从基准测试中删除,因为它会造成太多麻烦而没有给出很好的结果。
编辑:整个基准测试可以在以下位置找到:https ://github.com/anderschbe/clusterbench
spark 的集群设置使用 spark-2.1.0-bin-hadoop2.7,因为它开箱即用。spark_env.sh 有一个小改动:SPARK_NO_DAEMONIZE=true
使其在集群上运行所需的唯一更改是将 SparcProc 第 25 行中的“localhost”替换为“spark://I_cant_give_you_my_cluster_IP.doo”
java - 有没有办法独立启动 Hazelcast Jet 实例,哪一种性能最高?
我刚刚开始在我们的集群上测试 Hazelcast Jet。现在启动一个实例并不难。但是:这样做需要执行一个完整的(尽管很小)jar,包括一个完整大小的(并且可能未优化)jvm。
有替代品吗?像预先优化的独立“仅启动此实例以使用集群节点”数据包?
我的谷歌搜索没有带来任何结果,所以也许其他人取得了更大的成功?
java - 使用流 API 时使用 AddJar() 添加代码?
实现流时如何使用 addJar() 方法?
newJob() 使用 DAG:
流在内部更改为 DAG:
java - 如何强制 Hazelcast (Jet) 客户端使用特定接口?
我只是在尝试使用客户端-> 集群上的实例设置来测试和提高性能。有趣的是,带有 hazelcast (jet) 实例的机器上的 1G 网络接口似乎是一个主要瓶颈。
我已经将实例配置为使用 10G 接口,它显然是这样做的。但是客户端似乎很固执地第一次连接使用1G接口,严重限制了吞吐量。有没有办法在客户端强制使用 10G 接口?ClientConfig.getNetworkConfig()
似乎没有这样做的方法。
java - 如何为 Hazelcast Jet 制定一个优雅的顶点以获得最小值?
我正试图围绕 Hazelcast Jets 累积处理器中的双功能使用。第一次尝试是一个简单的最小比较,但我想出的东西看起来很不雅。有更好的方法吗?
基本上我有一个包含 3 个字段的类:类型、值、时间戳,我想获取具有最低值的对象。
我的供应商是一个新对象,其值为 max.double,看起来不错。我的终结者只是把手穿过物体,这也很好。
但是蓄能器看起来过于复杂了。有没有办法避免将 x 强制转换为 myObject 两次?或者一些更优雅的方式,只保留双精度值,但最后仍然返回对象?无需迭代整个地图以再次获取最小值的对象?