2

用其他 NoSQL 数据库替换 hadoop 中的 HDFS 需要付出什么努力。这涉及到多少工作?有没有人有任何好的维基或描述它的链接?是否像为该数据库实现 FileSystem 接口一样简单?

我发现了几篇关于其他人如何修改 hadoop 以生成自定义发行版的文章,但还没有找到替换 HDFS 的指南。

谢谢, 帕思

4

2 回答 2

2

实现自己的 DFS 接口并使其与 hadoop 一起工作相对简单。您所需要的只是文件和目录的文件系统概念与您的存储之间的某种逻辑映射。
在 NoSQL 的情况下(如果我假设 KeyValue),您应该决定如何表示目录。您可以做一些特殊的节点,也可以将路径放入键中。
另一个决策点 - 决定您是否关心数据局部性
关于文档,我认为 s3n DFS 实现的来源是最好的起点。
我认为关闭的例子是 DataStax http://www.datastax.com/
完成的 Hadoop over Cassandra 另一个例子(我们最近做过的事情)是 hadoop 与 OpenStack Swift 的集成。 http://bigdatacraft.com/archives/349

于 2013-01-26T07:34:29.177 回答
2

实际上不久前我就这样做了,因为 HDFS 上存在磁盘空间限制,这限制了我们的备份和存储策略,所以我们讨论了使用 S3N 作为 HDFS 的替代品,看起来这是一个非常标准的操作。

您需要在 hadoop-site.xml 或 hdfs-site.xml 中添加以下属性:

<property>
  <name>fs.default.name</name>
  <value>s3://BUCKET</value>
</property>

<property>
  <name>fs.s3.awsAccessKeyId</name>
  <value>ID</value>
</property>

<property>
  <name>fs.s3.awsSecretAccessKey</name>
  <value>SECRET</value>
</property>

您可以在此处找到有关设置的更多详细信息。需要注意的一件有趣的事情是,由于在这种情况下数据存储在 Amazon S3 上,因此需要获取它,因为它不再是本地的,但是对性能的影响似乎并不像我最初担心的那样显着。

我没有尝试过但你绝对应该寻找 HDFS 的替代品的东西是QFS fron Quantcast,我听说过一些好东西,基准测试似乎使它比 HDFS 更快。

于 2013-01-26T13:57:26.537 回答