阅读问题陈述后欢迎任何想法。
背景: 使用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是分发应用程序的协调服务。从zookeeper客户端,我们总能看到/ brokers / topics / truckevent,但是在运行storm时总是会丢失最后一个znode。如果我们手动创建znode,我设法解决了这个问题。但是,相同的方法不再适用于后续测试。
我手动创建Hbase表和HBase的数据格式。但是,检索与HBase的连接仍然失败。
任何人都可以提供帮助吗?
答案 0 :(得分:1)
对问题1的建议:
停止风暴拓扑。在运行storm的zookeeper中手动删除与主题相关的znode,然后重新启动storm topology。 这将创建新的znodes。
对问题2的建议:
如果能够连接到Hbase,请首先使用java代码进行检查。然后在Storm拓扑中测试相同的逻辑。
回答问题3:
根据您的日志user = storm,但您编写的目录由hdfs拥有。因此,请更改该目录的用户权限,并使用 chown 命令为用户制作风暴。