首页 文章

Storm-kafka 用于实时数据流的 Hortonworks 教程

提问于
浏览
1

阅读问题陈述后欢迎任何想法。

背景:使用 Apache Kafka 发布消息:Kafka 代理正在运行。 Kafka 生成器是创建消息并将其发布到 Kafka 代理以供进一步使用的应用程序。因此,为了让 Kafka 消费者使用数据,Kafka 主题需要在 Kafka 生产者和消费者开始发布消息和消费消息之前创建

Kafka 测试成功,因为 Kafka 消费者能够使用 Kafka 主题和显示结果的数据。

在启动 Storm 拓扑之前,停止 Kafka 使用者,以便 Storm Spout 能够处理来自 kafka 主题的数据流源。

使用 Apache Storm 实时处理数据:使用 Storm 拓扑创建,Storm Spout 处理数据流源,这意味着 Spout 将从 kafka 主题读取数据。另一方面,Spout 将数据流传递给 Storm Bolt,后者将数据处理并创建为 HDFS(文件格式)和 HBase(db 格式)以用于存储目的。

  • Zookeeper znode 缺少最后一个子 znode。从日志文件,2015-05-20 04:22:43 b.s.util [1]异步循环死了! java.lang.RuntimeException:java.lang.RuntimeException:org.apache.zookeeper.KeeperException$NoNodeException:KeeperErrorCode = _N_的 NoNode

Zookeeper 是分发应用程序的协调服务。从 zookeeper 客户端,我们总能看到/brokers/topics/truckevent,但是在运行 storm 时总是会丢失最后一个 znode。如果我们手动创建 znode,我设法解决了这个问题。但是,相同的方法不再适用于后续测试。

  • Storm(TrucjHBaseBolt 是 java 类)无法访问与 HBase 表的连接。从日志文件中,2015-05-20 04:22:51 c.h.t.t.TruckHBaseBolt [2]检索连接和访问 HBase 表时出错

我已经手动创建了 HBase 的数据格式的 Hbase 表。但是,检索与 HBase 的连接仍然失败。

  • Storm(HdfsBolt java 类)报告了当暴风用户将数据写入 hdfs 时被拒绝的权限。从日志文件,2015-05-20 04:22:43 b.s.util [3]异步循环死了! java.lang.RuntimeException:准备 HdfsBolt 时出错:权限被拒绝:user=storm,access=WRITE,inode =“/”:hdfs:hdfs:drwxr-xr-x

任何人都可以帮忙吗?

1 回答

  • 1

    对问题 1 的建议:

    停止风暴拓扑。在运行 storm 的 zookeeper 中手动删除与主题相关的 znode,然后重新启动 storm topology。这将创建新的 znodes。

    对问题 2 的建议:

    如果能够连接到 Hbase,请首先使用 java 代码进行检查。然后在 Storm 拓扑中测试相同的逻辑。

    问题 3 的答案:

    根据您的日志 user=storm,但您编写的目录由 hdfs 拥有。因此,请更改该目录的用户权限,并使用chown命令作为用户进行风暴。

相关问题