问题标签 [apache-samza]

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.

0 投票
1 回答
288 浏览

gradle - Apache Samza:Samza REST 和 hello-samza 入门

我正在关注Apache Samza 网站上的 hello-samza 教程,并希望按照此处所述添加 REST 服务:http: //samza.apache.org/learn/tutorials/latest/samza-rest-getting-started.html

我可以在 YARN UI 中看到 samza 作业,但以下构建命令会产生错误:

是否有必要从hello-samza repo更改 gradle 构建文件?

我使用的是 Ubuntu 16.04,Samza 版本是 0.13.0。谢谢你的建议!

0 投票
1 回答
183 浏览

apache-kafka - 将数据从单独的 kafka 集群加载到 Samza?

我正在尝试创建一个与 Wikipedia 示例作业非常相似的 Samza 作业。但是,在“WikipediaFeed”对象中,我试图从与启动 Hello-Samza 网格时运行的 Kafka 代理不同的 Kafka 代理获取数据。

我是否必须在“WikipediaFeed”对象中创建一个线程安全的 Kafka 消费者来使用来自不同 Kafka 集群的数据,还是有另一种我没有看到的方式?

编辑 1:这是他们的 Wikipedia 示例的链接。 https://github.com/apache/samza-hello-samza/tree/master/src/main

谢谢

0 投票
2 回答
385 浏览

hadoop - Spark 存在时 Hadoop 和流解决方案的相关性

我正在为我的创业公司启动一项大数据计划。在 2018 年,有任何理由使用 Hadoop,因为 Spark 被吹捧为更快,因为它主要不是将中间数据写入磁盘作为 Hadoop 的 MR。

我意识到 Spark 对 RAM 的需求更高,但这只是一次可以收回成本的 CAPEX 成本吗?

一般来说,除非有遗留项目,否则既然 Spark 可用,为什么还要选择 Hadoop?

会欣赏两者的真实世界比较,陷阱等吗?

或者,是否存在 Hadoop 可以解决但 Spark 不能解决的用例?

——————实际问题在下方评论————</p>

我会使用 YARN 作为资源管理器,使用 HDFS 作为 Spark 的文件系统。还要意识到,当 Spark 与 Hadoop 生态系统相交时,它有点安静。

比较是:

  1. Mapreduce 与 Spark 代码
  2. SparkSQL 与 Hive
  3. 人们也提到了 Pig,但并不是很多人都想学习自定义查询。如果我必须使用 Pig 作为数据科学家,为什么我不使用 Apache NiFi 和 Hadoop?

也不确定 Spark 如何处理以下内容:

  1. 如果数据不适合 RAM,那怎么办?回到基于磁盘的范例(这里不讨论流式用例..)所以不比 Mapreduce 更好吗?Tez 如何让 MR2 变得更好?
  2. Hadoop 3 支持擦除编码以减少数据复制。火花是做什么的?

我不清楚的是过多的重叠选择。例如,仅流式传输具有:

  1. 火花流
  2. 阿帕奇风暴
  3. 阿帕奇萨姆扎
  4. 卡夫卡流
  5. CEP 商业工具。(ORacle CEP、TIBCO 等)

他们中的许多人使用类似于 Spark 核心引擎的 DAG,因此很难从另一个中选择一个。

用例:

  1. 应用程序将数据发送到中间件,直到事件结束。事件可以按周期性或由于满足业务条件而结束。
  2. 中间件必须显示用户从他们的应用实例发送的值的实时添加(简化)。接受中间件是实际值总和的地板,实际值可以更高。计划在这里使用 Kafka 流来让消费者以最小的延迟将所有输入添加到缓存中,该缓存由应用程序轮询以显示当前的附加值。
  3. 中间件记录所有输入
  4. 事件结束后,大数据范例扫描日志数据和数据库记录,通过比较所有 dB 值和日志条目(审计)并将它们与 Kafka 显示值进行比较来获得准确的计数。该方案计算的值为最终值。

设计选择:

  1. 我喜欢 Kafka,因为它解耦了应用程序中间件并且是低延迟高吞吐量消息传递。Streams 代码很容易编写。很高兴有人使用 Spark Streams 或 Apache Storm 或 Apache Samza 来反驳争论?
  2. 应用程序本身是 Tomcat 服务器上的 Java 代码,带有 iOS/Android 客户端的 REST 端点。由于附加值的显式活跃性,不进行客户端缓存。
0 投票
2 回答
812 浏览

apache-kafka - Samza:延迟处理消息直到时间戳

我正在使用 Samza 处理来自 Kafka 主题的消息。某些消息在将来带有时间戳,我想将处理推迟到该时间戳之后。与此同时,我想继续处理其他传入的消息。

我试图做的是让我Task的消息排队并实现WindowableTask定期检查消息,如果它们的时间戳允许处理它们。基本思想如下所示:

这显然有一些缺点。当我重新部署任务时,我会丢失内存中的等待消息。所以我想知道使用 Samza 延迟处理消息的最佳实践。我是否需要一次又一次地将消息重新发送到同一主题,直到我最终可以处理它们?我们在这里谈论将处理延迟几分钟,最多 1-2 小时。

0 投票
1 回答
380 浏览

apache-kafka - 在给定 messageId 的流数据中缓冲消息

用例:我有具有 messageId 的消息,多条消息可以具有相同的消息 ID,这些消息存在于由 messageId 分区的流式管道(如 kafka)中,因此我确保具有相同 messageId 的所有消息都将进入同一个分区。

因此,我需要编写一个作业,该作业应将消息缓冲一段时间(比如说 1 分钟),然后将具有相同 messageId 的所有消息合并为单个大消息。

我认为可以使用 spark Datasets和 spark sql(或其他东西?)来完成。但是我找不到任何关于如何为给定的消息 id 存储消息一段时间然后对这些消息进行聚合的示例/文档。

0 投票
1 回答
242 浏览

apache-samza - Hello-Samza 无法编译

根据 Hello-Samza 上的文档执行 mvn clean package。构建失败。

[错误] 无法在项目 hello-samza 上执行目标:无法解析项目 org.apache.samza:hello-samza:jar:0.14.1-SNAPSHOT 的依赖项:无法在 org.apache.samza:samza- 处收集依赖项api:jar:0.14.1-SNAPSHOT:无法读取 org.apache.samza:samza-api:jar:0.14.1-SNAPSHOT 的工件描述符:无法传输工件 org.apache.samza:samza-api:pom: 0.14.1-SNAPSHOT 来自/到 scala-tools.org ( https://oss.sonatype.org/content/groups/scala-tools ):访问被拒绝:https://oss.sonatype.org/content/groups /scala-tools/org/apache/samza/samza-api/0.14.1-SNAPSHOT/samza-api-0.14.1-SNAPSHOT.pom, 原因短语:禁止。-> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: 无法在项目 hello-samza 上执行目标:无法解析项目 org.apache.samza:hello-samza:jar:0.14.1-SNAPSHOT 的依赖项:无法在 org.apache.samza:samza-api:jar:0.14.1-SNAPSHOT 收集依赖项

0 投票
1 回答
253 浏览

java - Samza 0.14.1 没有正确处理 OffsetOutOfRangeException 异常?

我们面临着与此线程中描述的相同的问题。

这里 - Samza 正在请求一个太旧的 Kafka 分区偏移量(即 Kafka 日志已向前移动)。我们将属性设置 consumer.auto.offset.resetsmallest,因此期望 Samza 在这种情况下将其检查点重置为最早可用的分区偏移量。但这并没有发生,我们不断地得到这种形式的例外:

版本详情

  • 萨姆萨:2.11-0.14.1
  • 卡夫卡客户端:1.1.0
  • 卡夫卡服务器:1.1.0 Scala 2.11

浏览代码,似乎GetOffset::isValidOffset应该能够捕获异常OffsetOutOfRangeException并将其转换为 false 值。但似乎这并没有发生。会不会出现不匹配的package情况ExceptionGetOffSet类正在捕获异常import kafka.common.OffsetOutOfRangeException,但从日志来看,该类的包似乎不同。这可能是原因吗?

此外,似乎BrokerProxy类 - 的调用者GetOffset将打印日志"It appears that..."以防它获得错误值,但它没有记录这一行(表明GetOffset方法中生成的某些异常未被捕获并被传播):

这可能是由于我们使用的 Kafka 客户端库版本不匹配造成的吗?是否有我们应该与 Samza 0.14.1 一起使用的推荐 Kafka 客户端版本(假设 Kafka 服务器是 1.x)?

对此的任何帮助将不胜感激。

0 投票
1 回答
27589 浏览

apache-kafka - 卡夫卡生产者超时异常

我正在运行将数据写入 Kafka 主题的 Samza 流作业。Kafka 正在运行一个 3 节点集群。Samza 作业部署在纱线上。我们在容器日志中看到了很多这样的异常:

这 3 种类型的异常来了很多。

请帮助我了解这里的问题。每当它发生时,Samza 容器就会重新启动。

0 投票
1 回答
178 浏览

java - samza 容器失败

您好,由于以下错误,我的 samza 作业容器经常失败:

容器启动异常。容器 id:container_1540535314451_0141_01_000021 退出代码:1 堆栈跟踪:ExitCodeException exitCode=1: at org.apache.hadoop.util.Shell.runCommand(Shell.java:538) at org.apache.hadoop.util.Shell.run(Shell. java:455) 在 org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715) 在 org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211) 在 org .apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302) 在 org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java: 82) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent。

有人可以帮我解决为什么会这样吗?

0 投票
0 回答
119 浏览

amazon-emr - Samza 1.1.0 - run-app.sh 在部署 hello samza 期间不起作用

当我按照文档在纱线上部署 hello samza 教程时遇到错误。特别是,当我运行上面提到的 run-app.sh 脚本时,我遇到了错误。

我目前在 AWS EMR(emr - 5.13.0、amazon 2.8.3、zookeeper 3.4.10)上使用 Samza 1.1.0,我正在尝试使用 samza 上提供的文档部署 hello samza(https://samza.apache .org/learn/documentation/latest/deployment/yarn.html)。首先,我找不到 bin/build-package.sh 但我使用 bin/deploy.sh 来构建 maven 包。然后,我尝试运行以下脚本 run-app.sh

文档说我现在应该能够部署该作业,但我收到以下错误消息