mysql - 我必须使用HIVE,HBASE进行我的数据分析

标签 mysql hadoop cassandra hive hbase

我有150 GB的MySQL数据,计划将MySQL替换为Casandra作为后端。
分析,计划与Hadoop,HIVE或HBASE一起使用。
目前,我有4台用于POC的物理机。请有人帮助我提出最有效的架构。
每天我将获得5 GB的数据。

  • 我必须发送给每个客户的每日状态报告。
  • 必须根据请求提供分析报告:例如:1周报告或上个月的前2周报告。是否可以使用HIVe或HBASE即时生成报告?
  • 我想使用Hadoop Cassandra来提供最佳性能。
  • 最佳答案

    Hadoop可以使用Spark等新兴技术,通过map reduce范式或其他方法来处理数据。优点是可靠的分布式文件系统以及使用数据局部性将计算发送到具有数据的节点。

    Hive是一种类似于SQL的好方法,每天处理一次文件并生成报告。它是批处理,每天增加5 GB应该不会产生很大的影响。虽然它具有较高的开销延迟,但是如果您每天执行一次,这应该不是问题。

    HBase和Cassandra是NoSQL数据库,其目的是提供低延迟的数据。如果这是必要条件,则应选择其中任何一个。 HBase使用DFS来存储数据,而Cassandra具有与Hadoop的良好连接器,因此,运行这两个来源中消耗的作业很简单。

    对于基于请求的报告,指定日期范围,您应该以一种有效的方式存储数据,这样就不必摄取报告不需要的数据。 Hive支持分区,可以使用日期(即/<year>/<month>/<day>/)完成分区。使用分区可以极大地优化您的作业执行时间。

    如果您使用NoSQL方法,请确保行键具有某种日期格式作为前缀(例如20140521 ...),以便您可以选择以所需日期开头的行。

    您还应该考虑的一些问题是:

  • 您要在集群中存储多少数据–例如最后180
    天等。这将影响节点/磁盘的数量。当心数据通常被复制3次。
  • 您在HDFS中有多少个文件-当文件数很大时,
    Namenode在检索文件元数据时将受到重创。一些
    存在解决方案,例如复制的名称节点或使用MapR Hadoop
    本身不依赖Namenode的发行版。
  • 关于mysql - 我必须使用HIVE,HBASE进行我的数据分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23785151/

    相关文章:

    cassandra - 什么是 Cassandra 中的 gc grace

    hadoop - DataStax Enterprise 3.2-Hive S3 NoSuchBucket

    c# - 为什么日期字段存储的值与 null 不同

    java - 在 Java 应用程序中使用 Mahout

    cassandra - 泰坦中的 titan-cassandra-es.properties 是什么?

    hadoop - 将 Mahout 模型输出导出为 Weka 输入

    java - 在 hadoop 中运行多个 MapReduce 作业

    php - 当我尝试使用 php 连接到数据库时出现很多错误

    php - PDO如何检查输入是否为空而不使用WHERE

    javascript - 如何在PHP中选择带有连接表的记录