如何在 Amazon Elastic Mapreduce 之上使用 Hive 来处理 Amazon Simple DB 中的数据?
Posted
技术标签:
【中文标题】如何在 Amazon Elastic Mapreduce 之上使用 Hive 来处理 Amazon Simple DB 中的数据?【英文标题】:How can I use Hive on top of Amazon Elastic Mapreduce to process data in Amazon Simple DB? 【发布时间】:2010-06-25 21:13:56 【问题描述】:我在 Amazon 简单数据库域中有大量数据。我想在 Elastic Map Reduce 上启动 Hive(在 hadoop 之上),并且以某种方式从 simpledb 导入数据,或者连接到 simpledb 并在其上运行 hiveql 查询。我在导入数据时遇到问题。有什么指点吗?
【问题讨论】:
@Ankit:我有类似的用例,但略有不同的是,我使用 SQOOP 从 MS SQL Server 将数据导入 HDFS(在 HDFS 的 /user/hive/warehouse 目录中)。但是我正在学习如何开始,因为我是亚马逊服务的新手。请为我的用例建议一些解决方案。 【参考方案1】:作为流式 hadoop 作业的输入,您可以为 simpleDB 提供一系列 select 语句。
例如,您的输入可能包含(以不那么冗长的形式):
collectionA between dates 123 and 234
collectionA between dates 235 and 559
collectionA between dates 560 and 3000
...
然后您将实现一个执行以下转换的映射器脚本: input_select_statement => execute_select_statement => output_results
这将非常容易使用流式传输,因为您可以将任何库用于您喜欢的任何语言,而不必担心实现任何复杂的 Hadoop java 东西。
希望这会有所帮助。
(实现这一点的老生常谈的方法是让您在本地运行一个与上述相同的脚本,但将结果加载到 s3 中。我每晚运行一个这样的脚本来处理我们的大量数据库数据)
【讨论】:
以上是关于如何在 Amazon Elastic Mapreduce 之上使用 Hive 来处理 Amazon Simple DB 中的数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Amazon 的 Elastic Beanstalk 上安装 Python 脚本?
如何使用 Amazon linux 2 在 Elastic beanstalk 中使用多容器 docker?
如何通过 virtualenv 在 Amazon 的 Elastic Beanstalk 上使用最新版本的 python (3.6)
如何使用 .ebextensions 在 Amazon Elastic Beanstalk 中运行“npm install”