Apache Storm on Twitter
-
简述
在本章中,我们将讨论 Apache Storm 的实时应用程序。我们将看到 Storm 在 Twitter 中是如何使用的。 -
推特
Twitter 是一种在线社交网络服务,它提供了一个发送和接收用户推文的平台。注册用户可以阅读和发布推文,但未注册用户只能阅读推文。Hashtag 用于通过在相关关键字前附加 # 来按关键字对推文进行分类。现在让我们采取一个实时场景来查找每个主题最常用的主题标签。喷口创建
spout 的目的是尽快获取人们提交的推文。Twitter 提供“Twitter Streaming API”,这是一个基于 Web 服务的工具,用于实时检索人们提交的推文。Twitter Streaming API 可以用任何编程语言访问。twitter4j是一个开源的、非官方的 Java 库,它提供了一个基于 Java 的模块来轻松访问 Twitter 流 API。twitter4j提供基于侦听器的框架来访问推文。要访问 Twitter 流 API,我们需要登录 Twitter 开发者帐户,并且应该获得以下 OAuth 身份验证详细信息。- 客户密钥
- 客户秘密
- 访问令牌
- AccessTookenSecret
Storm 提供了一个 twitter spout,TwitterSampleSpout,在其入门套件中。我们将使用它来检索推文。spout 需要 OAuth 身份验证详细信息和至少一个关键字。spout 将根据关键字发出实时推文。完整的程序代码如下。编码:TwitterSampleSpout.java
-
标签阅读器bolt
spout 发出的推文将被转发到HashtagReaderBolt,它将处理推文并发出所有可用的主题标签。HashtagReaderBolt 使用getHashTagEntitiestwitter4j 提供的方法。getHashTagEntities 读取推文并返回主题标签列表。完整的程序代码如下 -编码:HashtagReaderBolt.java
-
Hashtag 计数器bolt
发出的主题标签将被转发到HashtagCounterBolt. 此bolt将处理所有主题标签并使用 Java Map 对象将每个主题标签及其计数保存在内存中。完整的程序代码如下。编码:HashtagCounterBolt.java
-
提交拓扑
提交拓扑是主要应用程序。Twitter拓扑结构包括TwitterSampleSpout, HashtagReaderBolt, 和HashtagCounterBolt. 以下程序代码显示了如何提交拓扑。编码:TwitterHashtagStorm.java
-
构建和运行应用程序
完整的应用程序有四个 Java 代码。它们如下 -- TwitterSampleSpout.java
- HashtagReaderBolt.java
- HashtagCounterBolt.java
- TwitterHashtagStorm.java
您可以使用以下命令编译应用程序 -使用以下命令执行应用程序 -输出
该应用程序将打印当前可用的主题标签及其计数。输出应类似于以下内容 -