【发布时间】:2023-03-30 19:00:01
【问题描述】:
我正在开发一个基于 Web 的社交网络应用程序,它使用 Apache Web 服务器和 MYSQL 服务器作为带有 codeigniter MVC 框架的数据库。我不知道如何在这个应用程序中集成Hadoop,以及如何编写map-reduce程序。
【问题讨论】:
标签: hadoop
我正在开发一个基于 Web 的社交网络应用程序,它使用 Apache Web 服务器和 MYSQL 服务器作为带有 codeigniter MVC 框架的数据库。我不知道如何在这个应用程序中集成Hadoop,以及如何编写map-reduce程序。
【问题讨论】:
标签: hadoop
Hadoop 和 map-reduce 与 Web 应用程序没有直接关系。只要您将 Web 应用程序理解为(快速)响应用户输入(Web 请求)的东西,就不应将 Hadoop 集成到 Web 应用程序中。
Hadoop 和 map-reduce 对于在大型数据集上运行以从这些数据集中转换/提取数据/知识的算法非常有用。
【讨论】:
是的,可以使用 apache hadoop 作为后端来制作 Web 应用程序
您可以使用apache hive和pig创建Web应用程序您可以编写自定义mapper和reducers并用作udf,但个人经验它很慢,如果您的数据非常少,最好使用其他数据库并进行分析. ,我更喜欢 spark 是更好的响应时间的解决方案..
【讨论】:
虽然 Hadoop 现在主要用于“离线分析”,但它对 Web 项目也很有用。例如,预先计算推荐或建议,然后提供给网站的用户。
另一个使用案例是能够从多个数据源进行 ETL 以生成网站的倒排索引(例如,具有大量输入数据的工作/汽车/租赁类网站)。
当您遇到“大数据”问题时,请务必考虑 Hadoop,而不是在您的网站管理少量数据时。
使用 Hadoop 解决此类问题有一些优点和缺点。明显的优势是它可以透明地扩展任何类型的批处理(如我提到的示例)。缺点是它不是实时的:您不能使用 Hadoop 每 5 秒更新一次您的网站。
【讨论】:
我认为 Hadoop 对于社交网络风格的应用程序有两种“经典”用法。
首先是使用 HBASE 来存储消息和其他动态信息。也可以考虑在 HBASE 中存储用户配置文件,以便用这种 NoSQL 解决方案完全取代 MySQL。
其次是使用 Hadoop MapReduce 分析您的网络。这种分析的一个很好的例子是寻找朋友的建议。
【讨论】:
通过使用 hadoop 分析您的数据并将结果输入您的 mysql 数据库。然后将其与您的 Web 应用程序一起使用。
【讨论】:
在您的 Web 应用程序中,您可以使用 REST 服务从 Hadoop 获取所需的数据(如作业结果):https://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-site/WebServicesIntro.html
【讨论】: