我正在为我的大学做作业,我需要在AWS上使用Hadoop实现一些工作。
为了实现上述目的,我想使用像MySQL这样的关系数据库。
我已经阅读并看到我实际上可以在AWS上将MySQL用作RDS,但是我不理解如何使用Hadoop以及最重要的Java SDK。
基本上,经过几个步骤,我收到的文件每一行都是这样的:
(A, B, C) num1 num2
我想执行一个额外的步骤来创建一个数据库,其中每个A是一个新表,每个B是一个新行,而C,num1和num2是该行中的单元格。
我需要这样做,以便以后在这些表上执行SELECT和JOIN查询。
这有可能吗?如果是这样,有人可以帮我提供一个示例或 list ,以供我创建和使用数据库时要做的事情吗?
非常感谢你!
编辑:
为了澄清,我想创建一个像MySQL这样的数据库,然后通过Hadoop步骤向其中添加项目。例如,如果我的映射器从文件中接收到我在上面编写的行,则对于每个A,他们将创建一个新表并将其发送给化简器:键-A,值-B,C,num1,num2。
然后,每个化简器将接收一个表作为键,并将所有要填充的元素用作值,因此,对于每个值(aka B,C,num1,num2),它将在该表中创建一行B,并用C填充它,num1,num2个单元格。
最佳答案
Hadoop不是数据库。该项目包括通过HDFS(如果数据位于S3中,则不使用),YARN和MapReduce进行存储和执行。开箱即用,它没有可以轻松进行的连接或类似SQL的功能。为此,您至少需要Hive,它可以放在MySQL之上。
如果您只需要SQL,则可以在Hadoop Realm 直接针对S3数据集使用SparkSQL。或者,您可以留在AWS土地上并使用Athena。
但是,如果您的数据集开头不那么大(甚至高达100+ GB),那么在RDS上使用MySQL将会很好。
关于java - 通过Java SDK在AWS上使用Hadoop创建数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54439820/