2

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

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

  1. 高可用性
  2. 良好的可扩展性
  3. 高性能/实时数据访问
  4. 您可以使用商品硬件

而且我看不出有什么缺点!Hadoop有没有什么缺点?

基于 Hive 的 Hadoop 的优点是:

  1. 扩展性也不错
  2. 您也可以使用商品硬件
  3. 在异构环境中运行的能力
  4. 使用 MapReduce 框架进行并行计算
  5. 带有 HiveQL 的 Hive

缺点是:

  1. 没有实时数据访问。分析数据可能需要几分钟或几小时。

因此,在我看来,对于处理大数据,MySQL 集群是更好的解决方案。为什么 Hadoop 是处理大数据的圣杯?你有什么意见?

4

3 回答 3

5

以上两个答案都忽略了 mySQL 和 Hadoop 之间的巨大差异。mySQL 要求您以某种格式存储数据。它喜欢高度结构化的数据——你声明表中每一列的数据类型等。Hadoop 根本不关心这个。

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

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

于 2015-05-08T23:52:17.447 回答
4

Hadoop不是MySQL的替代品,所以我觉得他们有自己的场景。</p>

众所周知,hadoop 更适合批处理作业或离线计算,但也有许多相关的实时产品,例如 hbase。

如果您想选择离线计算和存储架构。

我建议使用 hadoop 而不是 MySQL 集群进行离线计算和存储,因为:

  1. 成本:显然,hadoop 集群比 MySQL 集群更便宜
  2. 可扩展性:hadoop在一个集群中支持上万台机器
  3. 生态系统:mapreduce、hive、pig、sqoop 等。

所以你可以选择hadoop作为离线计算和存储,MySQL作为在线计算和存储,你也可以从lambda架构中学习更多。

于 2014-01-29T03:25:41.197 回答
2

另一个答案很好,但并没有真正解释为什么 hadoop 在离线数据处理方面比 MySQL 集群更具可扩展性。Hadoop 对于必须分布在多台机器上的大型数据集更有效,因为它可以让您完全控制数据分片。

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

这个问题的答案很好地解释了这种区别。

于 2014-03-13T19:09:18.407 回答