2014-01-10 88 views
0

我刚刚开始了解大数据,并对Hadoop感兴趣。我打算构建一个简单的分析系统,以了解我的网站中发生的某些事件。使用Hadoop设计分析系统

所以我打算让代码(包括前端和后端)触发一些会排队消息的事件(很可能与RabbitMQ)。这些消息将由消费者进行处理,消费者会将数据连续写入HDFS。然后,我可以随时运行地图缩减作业来分析当前数据集。

我倾向于Amazon EMR的Hadoop功能。所以我的问题是,从我的服务器运行使用者,我如何将数据保存到HDFS?我知道有一个像“hadoop dfs -copyFromLocal”这样的命令,但是如何在服务器之间使用它?有没有工具可用?

有没有人试过类似的东西?我很想听听你的实现。细节和例子会非常有帮助。谢谢!

回答

1

如果您提到EMR,它会从s3存储中的文件夹中获取输入,因此您可以使用您的优先语言库将数据推送到s3,以便稍后使用EMR作业进行分析。例如,在python中,可以使用boto

甚至有驱动程序允许您将s3存储设备作为设备安装,但是前一段时间他们都是在生产系统中使用它们的人太多。可能是随着时间而变化的事情。

EMR FAQ

问:如何让我的数据导入Amazon S3吗?您可以使用Amazon S3 API将 上传数据到Amazon S3。或者,您可以使用许多开源 或商业客户端轻松将数据上传到Amazon S3。

请注意,emr(以及s3)意味着额外的成本,并且它的使用情况对于真正的大数据是合理的。还要注意,在Hadoop性能和存储成本方面存在相对较大的文件总是有益的。

+0

难道真的要用S3吗?或者我可以指定其他来源的输入? – maru

+0

@beefjerky是的,你必须。请参阅已编辑答案中的常见问题解答链接 – alko

+0

尽管将输入源限制为S3,但看起来有些奇怪,但是,它确实在常见问题解答中提到了它 - “在请求表单中,指定您的群集名称,Amazon S3中的位置你的输入数据,你的处理应用程序......“。谢谢! – maru