什么是获取社交媒体数据的最佳方法?

时间:2016-03-13 04:37:04

标签: apache-spark

嘿,我是大数据的新手。我正在制作一个系统,它将从社交媒体中获取数据并处理结果,为此我使用的是apache spark。

以下是我的模型的流程:

  1. 用户将使用php制作的网页保存所需的关键字。

  2. 用这些关键词我将从社交媒体中获取数据,     处理数据(例如,情绪和观点)然后提供给它     最终用户。

  3. 现在我的困惑是如何从社交媒体上获取数据。使用

    • apache kafka
    • apache flume
    • 或直接调用API twitter4j(只是一个例子)。

    虽然我必须学会实现所有三种数据提取技术,如果我碰巧使用直接api,那么我可以跳过整个hadoop部分。如果你们能告诉我哪一个更好,那就太好了。

    以上所有我在本地机器上做的事情。我已经完成了ui部分,现在我处于需要获取数据的阶段。

    感谢。

1 个答案:

答案 0 :(得分:0)

我想我会提出这个建议。

您可能不想使用分布式系统从任何来源获取数据,除非您计划对其生产服务器进行DDoS。如果您的群集设置在一个路由器后面,则整个群集可能会被列入黑名单,因为所有节点始终达到了在路由器上添加的访问速率限制,具体取决于服务器是否功能强大。 Twitter服务器并不关心100个线程是否诚实(假如你知道自己在做什么),但任何创业公司都可能马上找到你。

如果你有一个4核心的工作站,那么让他们抓住流媒体数据应该足以满足学术研究的初始阶段。或者,如果您真的需要大量数据,您可以使用您的fetcher脚本作为映射器进行Hadoop流式传输,而不是简化器,快速简便。如果您是Java或Scala中的超级明星,请在Spark的执行者的每个vcore上获取一个提取线程。

现在,Twitter有REST API,这意味着你可以用任何编程语言来获取数据。当然,有时使用现有接口可能更容易,假设它们维护良好,它们几乎总是更健壮。但我一直都很懒惰。例如,我有时只想要一个示例数据点,因此我只需将curl传送到jq以检查我要检查的内容。

是的,了解jq也会为您节省大量时间。并且成为一个没有DDoS人的绅士。