MySQL Cluster与Hadoop一起处理大数据

时间:2014-01-29 02:23:49

标签: hadoop mapreduce hive bigdata mysql-cluster

我想知道使用MySQL Cluster和使用Hadoop框架的优点/缺点。 什么是更好的解决方案。我想看看你的意见。

我认为使用MySQL Cluster的优点是:

  1. 高可用性
  2. 良好的可扩展性
  3. 高性能/实时数据访问
  4. 您可以使用商品硬件
  5. 我没有看到劣势! Hadoop没有任何缺点吗?

    Hadoop与Hive的优势在于:

    1. 也具有良好的可扩展性
    2. 您也可以使用商品硬件
    3. 在异质环境中运行的能力
    4. 使用MapReduce框架进行并行计算
    5. Hive with HiveQL
    6. 缺点是:

      1. 没有实时数据访问。分析数据可能需要几分钟或几小时。
      2. 因此,在我看来,处理大数据时,MySQL集群是更好的解决方案。为什么Hadoop是处理大数据的圣杯?你有什么看法?

3 个答案:

答案 0 :(得分:5)

上述两个答案都错过了mySQL和Hadoop之间的巨大差异。 mySQL要求您以特定格式存储数据。它喜欢结构严重的数据 - 您在表格中声明每列的数据类型等.Hadoop根本不关心这一点。

示例 - 如果您有十亿个文本日志文件,为了使mySQL能够进行分析,您需要先将数据解析并加载到mySQL表中,然后键入每一列。使用hadoop和mapreduce,您可以定义从其原始源扫描/分析/返回数据的功能 - 您不需要预处理ETL来使其预先构建。

如果数据已经结构化并且在mySQL中 - 那么(希望)结构良好 - 为什么要将其导出为hadoop进行分析?如果不是,为什么要花时间来ETL数据?

答案 1 :(得分:3)

Hadoop不是MySQL的替代品,所以我认为他们有自己的场景。

每个人都知道hadoop对于批量作业或离线计算更好,但也有许多相关的实时产品,例如hbase。

如果您想选择离线计算机和存储拱。

我建议hadoop不是用于离线计算的MySQL集群&存储,因为:

  1. 成本:显然,hadoop集群比MySQL集群便宜
  2. 可扩展性:hadoop支持群集中超过一万台计算机
  3. 生态系统:mapreduce,hive,pig,sqoop等。
  4. 所以你可以选择hadoop作为离线计算&存储和MySQL作为在线计算和存储,您还可以从lambda architecture了解更多信息。

答案 2 :(得分:2)

另一个答案是好的,但并没有真正解释为什么hadoop比MySQL Clusters更适合离线数据处理。 Hadoop对于必须分布在多台计算机上的大型数据集更有效,因为它可以让您完全控制数据的分片。

MySQL群集使用自动分片,它旨在随机分发数据,因此没有任何一台机器受到更多负载的攻击。另一方面,Hadoop允许您明确定义数据分区,以便需要同时访问的多个数据点位于同一台计算机上,从而最大限度地减少完成工作所需的计算机之间的通信量。这使得Hadoop在许多情况下更适合处理海量数据集。

this question的答案很好地解释了这种区别。