Hadoop在项目中的实际用法

时间:2016-07-08 13:01:48

标签: java ruby-on-rails hadoop bigdata

我将在我的新项目中使用Hadoop。项目概念如下图所示: enter image description here

用户拥有生成一些数据(日志)的设备。用户可以将设备中的数据作为文件获取并上传到web app / hadoop。我将使用Ruby on Rails构建Web应用程序。

我了解Hadoop的一些基础知识(HDFS,Mappers,Reducers),但我不知道如何以实用的方式使用Hadoop。该项目现在只是一个概念,因为我想先得到一些提示,然后调整项目的组件以收集提示。

我的主要考虑因素是:

  1. Web应用程序应该存储在与Hadoop相同的位置吗? (相同的服务器/云/服务提供商)
  2. 如何上传文件?可以在网络应用表单上传文件吗?或者创建桌面应用程序以上传文件(可能的文件大小:100MB - 1GB)更好吗?
  3. 如果它是桌面应用程序,最好将数据直接发送到Hadoop或通过Web应用程序以某种方式发送?
  4. 您能指出一些有用的框架/工具/ API /资源,以便从外部资源(我的网络应用程序或桌面应用程序)上传吗?
  5. 如何以正确的方式使用Hadoop数据?我们假设用户的文件来到Hadoop。我知道我可以在这个文件上运行Mappers和Reducers来生成输出文件(或者将一些数据放到HBase中 - 我是对的?)。要获得这些数据,我需要正确的输出文件或从HBase获得一些“SELECT”,我是对的吗? Hadoop是否包含在作业完成时向外部Web应用程序发送信息的任何触发器?
  6. 我很欣赏这个主题的每一个暗示。

1 个答案:

答案 0 :(得分:1)

  1. 不要在同一台计算机上运行您的webapp。最好为Hadoop集群使用专用的容器机器
  2. HDFS(Hadoop文件系统)有一个读写API。例如,有一个WebHDFS
  3. 最好发送思考您的网络应用程序,因为这样您可以正确地验证客户端
  4. 我不懂。在我看来,上传很容易,而且不需要任何库来存档
  5. 不要直接从HDFS查询数据。之后将其导出到其他存储。如果你坚持直接使用它没有大问题。只需使用WebHDFS。