我刚开始学习大数据,我对Hadoop很感兴趣。我正计划构建一个简单的分析系统,以了解我网站中发生的某些事件。
所以我计划让代码(前端和后端)触发一些会对消息进行排队的事件(很可能是使用RabbitMQ)。然后,这些消息将由消费者处理,消费者将数据连续写入HDFS。然后,我可以随时运行map reduce作业来分析当前的数据集。
我倾向于使用Amazon EMR来实现Hadoop功能。所以我的问题是,从运行消费者的服务器,如何将数据保存到HDFS?我知道有一个像“hadoop dfs -copyFromLocal”这样的命令,但我如何跨服务器使用它?有没有可用的工具?
有没有人尝试过类似的事情?我很想知道你的实施。细节和示例将非常有用。谢谢!
答案 0 :(得分:1)
如果你提到EMR,它会从s3存储中的文件夹中获取输入,因此你可以使用你喜欢的语言库将数据推送到s3,以便稍后使用EMR作业进行分析。例如,在python中可以使用boto。
甚至还有驱动程序允许您将s3存储作为设备安装,但是不久之前所有这些驱动程序都太麻烦而无法在生产系统中使用它们。可能随着时间的推移已经发生了变化。
问:如何将数据导入Amazon S3?您可以使用Amazon S3 API 将数据上传到Amazon S3。或者,您可以使用许多开源 或商业客户轻松上传数据到Amazon S3。
请注意,emr(以及s3)意味着额外的成本,并且它的使用对于真正的大数据是合理的。另请注意,在Hadoop性能和存储成本方面拥有相对较大的文件总是有益的。