建议使用NoSQL上的文件I/O,尤其是HBase吗?还是不?

建议使用NoSQL上的文件I/O,尤其是HBase吗?还是不?,nosql,hadoop,hbase,hdfs,Nosql,Hadoop,Hbase,Hdfs,我是NoSQL的新手,现在我正尝试将其用于文件存储。我将文件作为二进制文件存储在HBase中 我不需要任何统计数据,只需要文件存储 推荐吗?我担心I/O速度 我使用HBase存储的原因是我必须使用,但我不能在客户端计算机上构建Hadoop。正因为如此,我试图找到一些库来帮助客户机连接到HDFS以获取文件。但是我找不到它,我只是选择了HBase而不是连接库 在这种情况下,我该怎么办?我不知道Hadoop,但是MongoDB有GridFS,它是为分布式文件存储设计的,它允许您水平扩展,获得“免费”的

我是NoSQL的新手,现在我正尝试将其用于文件存储。我将文件作为二进制文件存储在HBase中

我不需要任何统计数据,只需要文件存储

推荐吗?我担心I/O速度

我使用HBase存储的原因是我必须使用,但我不能在客户端计算机上构建Hadoop。正因为如此,我试图找到一些库来帮助客户机连接到HDFS以获取文件。但是我找不到它,我只是选择了HBase而不是连接库


在这种情况下,我该怎么办?

我不知道Hadoop,但是MongoDB有GridFS,它是为分布式文件存储设计的,它允许您水平扩展,获得“免费”的复制,等等


在MongoDB中以块的形式存储文件会有一些开销,因此如果您的负载是低到中等的,并且您需要较低的响应时间,那么直接使用文件系统可能会更好。不同的驱动程序实现的性能也会有所不同。

我认为将HDFS作为常规文件系统安装的功能应该会对您有所帮助

您当然可以使用HBase来存储文件。这可能并不理想,根据您的文件大小分布,您可能需要调整一些设置。与HDFS相比,它可能是处理大量文件的更好选择

要注意的设置:

  • 最大区域大小:您可能希望将其设置为4GB
  • 最大单元格大小:您需要将其设置为0以禁用此限制

您可能还需要考虑其他类型的替代方案(甚至可能是MapR)。

请小心取消最大单元格大小的限制-您可能会遇到区域服务器溢出的风险。您是正确的。您可能应该明确地将文件大小限制在合理的范围内,并将其用作单元格大小限制。