如何从现有的 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访问要点