我在AWS EC2实例上运行了一个分布式系统。我的集群大约有2000个节点。我想介绍一个流处理模型,它可以处理每个节点定期发布的元数据(cpu使用情况、内存使用情况、IO等)。我的系统只关心最新的数据。当处理模型下降时,也可以忽略几个数据点。因此,我选择了hazelcast-jet,这是一种性能优异的内存处理模型.在这里,我有几个关于模型的问题:
如果有一个全面的例子,我可以从中学习,这将是超级有用的。
发布于 2019-09-25 15:59:02
将hazelcast-jet部署到多个ec2实例的最佳方法是什么?
lib目录并下载hazelcast-aws模块:
$ cd lib $ wget https://repo1.maven.org/maven2/com/hazelcast/hazelcast-aws/2.4/hazelcast-aws-2.4.jarbin/common.sh将模块添加到类路径。文件的末尾是一行
CLASSPATH="$JET_HOME/lib/hazelcast-jet-3.1.jar:$CLASSPATH“
您可以复制这一行,并将-jet-3.1替换为-aws-2.4。config/hazelcast.xml以启用AWS集群发现。细节是这里。在这一步中,您必须处理IAM角色、EC2安全组、区域等。还有一个用于AWS部署的最佳做法指南。jet-start.sh启动集群。如何配置客户端,使其知道在哪里提交任务?
一种简单的方法是指定Jet正在运行的机器的公共is,例如:
ClientConfig clientConfig = new ClientConfig();
clientConfig.getGroupConfig().setName("jet");
clientConfig.addAddress("54.224.63.209", "34.239.139.244");但是,根据您的AWS设置,这些设置可能不稳定,因此您也可以进行配置以发现它们。这是解释这里。
如何摄取数千个来源的数据?源推送数据,而不是被提取。
我认为您的最佳选择是将数据放入Hazelcast Map,并使用mapJournal源从其中获取更新事件。
https://stackoverflow.com/questions/58093358
复制相似问题