如何从现有的 Web 应用程序访问 HDFS(Hadoop 文件系统)

Posted

技术标签:

【中文标题】如何从现有的 Web 应用程序访问 HDFS(Hadoop 文件系统)【英文标题】:How can I access the HDFS(Hadoop File System) from existing web application 【发布时间】:2013-03-23 05:36:55 【问题描述】:

我已经在我的集群上安装了 hadoop 1.0.4,有 1 个主节点和 3 个从节点,现在我想通过我的 Web 应用程序访问我的 HDFS 文件系统,以存储和访问现有 Web 应用程序的数据。

由于我的 Web 应用程序目前使用 mysql 作为数据库,我想用 HDFS 替换它。

那么可以使用什么,让我可以通过现有的Web应用程序访问HDFS?

出于后端数据迁移的目的,我使用的是 sqoop 和 flume,但我希望应用程序与 HDFS 实时同步。因为我从网页保存的应该直接去HDFS,而我要搜索的应该直接来自HDFS。

请提出建议。

提前致谢。

【问题讨论】:

为什么要从mysql迁移到hadoop? 感谢您的快速响应 kirugan,随着我的数据与日俱增,以及结构化(用户数据)和非结构化(歌曲、视频)等不同类型的数据,我还想实现显示推荐功能. 嗯...你想使用 Apache Mahaout 之类的东西吗? 是的,我已经集成了它以用于显示推荐,但我想如何将它与实时应用程序集成。 【参考方案1】:

这就像用橙子代替苹果。

您不能用 HDFS 替换 MySQL。 MySQL 是数据库,而 HDFS 是类似 ext3/ext4 的文件系统。 HDFS 以分布式方式运行,而 ext3/ext4 不会。

HDFS 提供高延迟和高吞吐量,而 MySQL 数据库提供低延迟和低吞吐量。考虑用 NoSQL DB(Cassandra、HBase 等)替换 RDBMS(MySQL、Oracle 等)。

有大量的 NoSQL 数据库,根据需求分析,必须选择合适的数据库。

【讨论】:

感谢 Praveen,但这就是我有一个配置了 Hadoop 的 HBase,它是一个 hadoopDB,那么我如何通过普通的 Web 应用程序访问它,我可以通过 JDBC 访问它吗? HBase 可以从命令行访问,也可以使用 Java API。检查 HBase 文档 (hbase.apache.org/book.html) 是否相同。最近向 HBase 添加了一个 SQL 层 (phoenix-hbase.blogspot.in)。

以上是关于如何从现有的 Web 应用程序访问 HDFS(Hadoop 文件系统)的主要内容,如果未能解决你的问题,请参考以下文章

如何从现有的 iPhone 代码库发布 iPad 应用程序?

如何从现有的 android 应用程序从头开始 android 应用程序?

从 ClickHouse 访问 HDFS HA 集群失败,出现错误 HdfsConfigNotFound

如何将消息直接从现有的大型机应用程序发布到 Kafka 主题?

如何从现有的远程分支创建本地分支?

5 weekend01020304050607的分布式集群的HA测试 + hdfs--动态增加节点和副本数量管理 + HA的java api访问要点