0

先生,我想使用 Apache hive、flume 对 twitter 数据进行情感分析现在我有一个 twitter 帐户,并且我已经设置了 conf 文件。但是问题在于数据格式。它没有加载到蜂巢中。请帮助我,我在里面工作了一个月。

4

2 回答 2

0

我认为您可以配置 Flume 代理以从 Twitter 获取数据。你的问题是数据的格式

Apache Flume 提供了几种 Sink 类型。其中两个对您的要求很有用。

  1. HDFS 接收器
  2. 蜂巢水槽

使用 HDFS 接收器:

  1. 使用 TwitterSource 和 HDFS Sink 配置 Flume 代理。
  2. 提供您的 Twitter OAuth 详细信息,即 Flume Agent 的密钥。
  3. 一旦代理配置完成,然后启动它。
  4. 该代理将获取数据,即来自 Twitter 的推文,并将其作为 JSON 文档存储在 HDFS 路径中。
  5. 一旦数据在 HDFS 中可用,使用带有位置子句的 JSON SerDe 创建 Hive 外部表。

JSON SerDe 代码链接:https ://github.com/cloudera/cdh-twitter-example/blob/master/hive-serdes/src/main/java/com/cloudera/hive/serde/JSONSerDe.java

使用蜂巢水槽:

Flume 允许使用 Hive Sink 将数据写入 Hive Table。所以我们需要配置Flume代理如下:

TwiiterSource --> Channel --> Hive Sink
  1. 使用 TwitterSource 和 Hive Sink 配置 Flume 代理。
  2. 提供您的 Twitter OAuth 详细信息,即 Flume Agent 的密钥。
  3. 一旦代理配置完成,然后启动它。
  4. 该代理将获取数据,即来自 Twitter 的推文并将其存储在 Hive 表中。这使用 JSON SerDe。

Hive Sink 有一个称为serializer的参数来告诉 SerDe 的类型。

支持的序列化器DELIMITEDJSON

因此,请使用上述解决方案中的任何一种方式配置您的 Flume 代理。

请使用此文档链接获取有关接收器参数 (HDFS + Hive) 的更多详细信息

https://flume.apache.org/FlumeUserGuide.html

于 2015-09-03T20:01:55.437 回答
0

你可以尝试添加这个jar文件

hive-serdes-1.0-SNAPSHOT.jar

您可以关注以下博客以获取使用 Hive 执行情绪分析的完整参考。

https://acadgild.com/blog/sentiment-analysis-on-tweets-with-apache-hive-using-afinn-dictionary/

于 2016-07-16T18:30:59.193 回答