首页 文章

BigData分析选择技术堆栈

提问于
浏览
1

我想编写一个能够生成报告并通过监视来自大型 生产环境 系统的数据进行交互式数据分析(类似OLAP)的应用程序 . (我知道,未来会有一些有问题的权衡决定,但让我们暂时搁置它们 . )
我确定了基本技术堆栈的以下可能性:

  • Hadoop:用于分布式文件系统和MapReduce框架

  • 数据库:HBase或Cassandra启用随机读取

  • 分析:Hive或Pig进行高级分析

根据我的研究,我倾向于认为Hadoop / HBase / Hive是最常见的组合 . 但这只是基于一些论坛问题和产品演示 .
其他人可否就此问题分享他的一般意见?
或者更具体地回答以下问题:

  • HBase通常比Cassandra(写入与读取性能)更适合大数据分析吗?

  • 使用数据库是否值得,还是我应该直接在Hadoop上找到我的分析图层?

  • 哪种数据库/分析工具组合最多"natural"?

  • 我错过了什么很酷的东西吗?

2 回答

  • 3

    恕我直言,

    1-考虑到所有最新进展,根据您的读/写需求决定是否使用HBase或Cassandra有点困难 . 您可以调整这些工具以适应您的读/写要求 . 在做出任何决定时,您应该考虑更多的事情 .

    2-此时您似乎不需要DB . 您可以将存储在HDFS中的数据映射到Hive表 . 然后在需要长时间运行批处理时运行Hive查询 . 如果您打算对数据的某些部分执行实时即席查询,则可以在相同的Hive表上使用Cloudera Impala(当 real-timeness 很重要时) . Impala使用相同的Hive元数据 . 所以你不必担心 .

    3-如果您打算在Hadoop平台上工作,那么HDFS Hive HBase Pig会很好 . 我不是说Cassandra很糟糕,但是Hbase的开发是为了与Hadoop一起使用 .

    4-那里有很多'cool'的东西,但你最好保持低数字 . 更多工具意味着更多配置和更多设置以及更多管理(更令人头痛) . 因此,首先只考虑那些真正需要的东西,并且只有在您认为确实需要时才添加特定工具,或者它是否会给您一些额外的优势 . 但你可能想看看 Impala, Storm, Flume, Spark/shark 等工具 .

    AFAIK,HBase被构建为在Hadoop集群之上使用 . 毫无疑问,它会占用一些内存,但这不应该是你的应用程序的瓶颈 . 你只需要正确地调整一切 . 但只有当您需要对数据进行随机实时读/写访问时才能实现它 .

  • 2

    如果你在与Hadoop相同的集群上运行HBase,你真的会减少可用于MapReduce作业的内存 . 对于OLAP系统,您并不需要HBase的随机读取/更新功能 . 您可以使用Flume或手动将数据加载到Hadoop集群中 . 设备监视数据有助于按时间划分,例如按日历日期划分 . 将数据加载到可以映射到分区Hive表的目录结构后,可以使用HiveQL进行查询 . 对于最棘手的分析,您可以使用Java编写MapReduce作业或使用Pig .

    问题是答复不会立即发生 . 这对于广告分析是可以的,但如果您尝试查看一些常用的预定指标,则可能会令人沮丧 . 在后一种情况下,您应该考虑预先计算此类度量标准并将结果加载到内存缓存中,甚至是关系数据库中 . 我已经看到在HBase中缓存了这些经常使用的结果,我只是无法为此目的而浪费在集群上浪费一半的可用RAM .

相关问题