我想知道使用MySQL Cluster和使用Hadoop框架的优点/缺点。 什么是更好的解决方案。我想看看你的意见。
我认为使用MySQL Cluster的优点是:
我没有看到劣势! Hadoop没有任何缺点吗?
Hadoop与Hive的优势在于:
缺点是:
因此,在我看来,处理大数据时,MySQL集群是更好的解决方案。为什么Hadoop是处理大数据的圣杯?你有什么看法?
答案 0 :(得分:5)
上述两个答案都错过了mySQL和Hadoop之间的巨大差异。 mySQL要求您以特定格式存储数据。它喜欢结构严重的数据 - 您在表格中声明每列的数据类型等.Hadoop根本不关心这一点。
示例 - 如果您有十亿个文本日志文件,为了使mySQL能够进行分析,您需要先将数据解析并加载到mySQL表中,然后键入每一列。使用hadoop和mapreduce,您可以定义从其原始源扫描/分析/返回数据的功能 - 您不需要预处理ETL来使其预先构建。
如果数据已经结构化并且在mySQL中 - 那么(希望)结构良好 - 为什么要将其导出为hadoop进行分析?如果不是,为什么要花时间来ETL数据?
答案 1 :(得分:3)
Hadoop不是MySQL的替代品,所以我认为他们有自己的场景。
每个人都知道hadoop对于批量作业或离线计算更好,但也有许多相关的实时产品,例如hbase。
如果您想选择离线计算机和存储拱。
我建议hadoop不是用于离线计算的MySQL集群&存储,因为:
所以你可以选择hadoop作为离线计算&存储和MySQL作为在线计算和存储,您还可以从lambda architecture了解更多信息。
答案 2 :(得分:2)
另一个答案是好的,但并没有真正解释为什么hadoop比MySQL Clusters更适合离线数据处理。 Hadoop对于必须分布在多台计算机上的大型数据集更有效,因为它可以让您完全控制数据的分片。
MySQL群集使用自动分片,它旨在随机分发数据,因此没有任何一台机器受到更多负载的攻击。另一方面,Hadoop允许您明确定义数据分区,以便需要同时访问的多个数据点位于同一台计算机上,从而最大限度地减少完成工作所需的计算机之间的通信量。这使得Hadoop在许多情况下更适合处理海量数据集。
this question的答案很好地解释了这种区别。