我们有一个使用 MySQL 数据库作为数据存储的产品。数据存储包含大量数据。我们面临的问题是应用程序的响应时间很慢。数据库查询非常基本,连接非常简单(如果有的话)。一些资深员工表示,响应时间缓慢的根本原因是对庞大数据存储的数据库操作。
我们公司的另一个团队过去曾参与过一个项目,他们使用 Hadoop 处理大型固定格式文件,并将这些文件的内容转储到数据库表中。借用这个项目,一些团队成员觉得我们可以从使用 MySQL 数据库迁移到简单的固定格式文件来保存数据。将有一个文件对应于数据库中的每个表。然后,我们可以构建另一个数据交互层,提供对这些文件中的内容执行 DML 操作的接口。该层将使用 Hadoop 和 MapReduce 编程模型开发。
在这一点上,我想到了几个问题。1. 问题陈述是否适合使用 Hadoop 解决的问题类型?2. 应用程序将如何要求数据交互层获取/更新/删除所需的数据?据我了解,包含数据的文件将驻留在 HDFS 上。我们将生成一个 Hadoop 作业,它将处理所需的文件(类似于 db 中的表)并获取所需的数据。此数据将写入 HDFS 上的输出文件。我们将不得不解析这个文件以获得所需的内容。3. 使用固定格式文件并用 Hadoop 处理它们的方法真的能解决问题吗?
我已经设法用两台 Ubuntu 机器建立了一个简单的节点集群,但是在玩了一段时间 Hadoop 之后,我觉得问题陈述不适合 Hadoop。我可能完全错了,因此想知道 Hadoop 是否适合这种情况,还是只是浪费时间,因为问题陈述与 Hadoop 的含义不符?