我希望在我的一个项目场景中对Hadoop等大数据平台的使用有一些专家意见。虽然我很了解像MySQL这样的数据库,但我是这项技术的新手。
我们正在创建一种用于分析社交媒体数据的产品。因此输入数据将是大量的推文,Facebook帖子,用户配置文件,YouTube数据和来自博客的数据等。除此之外,我将有一个Web应用程序来帮助我查看和分析这些数据。正如要求所表明的那样,我需要一种实时系统。因此,如果我有一条推文,我想将它提供给我的网络应用程序,以便进行处理。批处理数据处理可能不适合我的应用程序。
我的问题是:
答案 0 :(得分:6)
Hadoop不适合近实时/交互式分析。 Hadoop被设计用于进行数小时数据的大批量处理。我曾经使用Hadoop处理任何大约10 GB或更多的数据集(这仍然有点矫枉过正),一旦达到100 GB,那么你就会想要像Hadoop这样的东西。
现在我的建议是针对Spark,因为它更现代,更快,更灵活,更强大,并且具有SparkStreaming模块,可实现更接近实时的分析。阅读所有关于它的内容! https://spark.apache.org/
答案 1 :(得分:1)
在这种情况下,我更喜欢Lambda架构。
使用Lambda Architecture,您有两条路线:一条快速路线,其中包含用于当前信息的noSQL数据库,以及一条带有hadoop-hdfs的批处理路径,用于归档数据,并且使用合并组件,您可以在一个查询中合并两个数据源,这样您就可以获得接近实时的全部数据。
http://lambda-architecture.net/
关于lambda架构的图片:http://i.stack.imgur.com/eofRW.png
我们创建了一个带Lambda架构的PoC项目(也用于Twitter分析),并且它的工作正常。
答案 2 :(得分:0)
Spark将是解决您问题的最佳解决方案。您还可以查看其他内存数据库。