Database 将记录存储在HDFS或HBase中

Database 将记录存储在HDFS或HBase中,database,hadoop,Database,Hadoop,我有以下一个场景: 测量值以文件的形式通过web服务上传 这些文件稍后会复制到HDFS 每个测量值包含一个或多个参数的多个特征值 测量值可能有不同数量的值 使用Hadoop上的机器学习算法处理测量 并非进行所有测量,而是针对特定用户,在特定时间段内进行测量,例如,对Y-Z期间上载的来自用户X的文件执行处理 中间结果和最终结果存储在HDFS上 我的问题与第二点有关-这些文件后来被复制到HDFS-我担心这可能是一个问题,即存在大量小文件,例如1MB 我的想法是将这些文件存储在数据库中,这样我就避免了

我有以下一个场景:

测量值以文件的形式通过web服务上传 这些文件稍后会复制到HDFS 每个测量值包含一个或多个参数的多个特征值 测量值可能有不同数量的值 使用Hadoop上的机器学习算法处理测量 并非进行所有测量,而是针对特定用户,在特定时间段内进行测量,例如,对Y-Z期间上载的来自用户X的文件执行处理 中间结果和最终结果存储在HDFS上 我的问题与第二点有关-这些文件后来被复制到HDFS-我担心这可能是一个问题,即存在大量小文件,例如1MB

我的想法是将这些文件存储在数据库中,这样我就避免了小文件的问题,并且能够查询数据,为用户选择数据。这是更好的方法吗

如果答案是肯定的,我可以使用哪些数据库?因此,我需要数据库:

与Hadoop大数据兼容 行可能包含不同数量的值,如时间序列 检索特定用户在特定时间段内的测量值 记录被输入到MapReduce作业
我认为HBase非常适合您

我还有一个问题,我用HBase解决了

将小文件直接存储在HDFS中是一种不好的做法,可能会出现问题

从:

apachehbase是Hadoop数据库。需要时使用它, 对大数据的实时读/写访问。这个项目的目标是 托管非常大的表-数十亿行X数百万行 列-位于商品硬件集群顶部

HBase是为Hadoop设计的 行可以在列族中存储不同的列,更新的值具有时间戳,因此您可以返回单元格的历史记录 HBase和Hadoop是为MaReduce作业设计的,可以为作业输入/输出行
在我的例子中,我有很多200 Kb/1 Mb的小文件,现在我将这些文件存储在一个表中,其中一些列作为标题/信息,一列作为文件的二进制内容,文件名作为键。文件名是UUID

谢谢,这看起来很像我需要的。你能提供更多关于你的经历的信息吗?你认为它的表现如何?您存储的数据有多大?我也听说过卡桑德拉,你怎么看?既然HBase存在这么久,它是否仍然处于活动状态而不是过时?好吧,对于这个项目,我只需要存储小文件,而不需要执行其他操作。我没有尝试过其他解决方案,如Cassandra、Hive等。我正在存储和读取数十万个小文件,我对性能感到满意。它比直接向HDFS发送数据更快。这是一个公司的项目,所以我不能提供更多的信息。HBase项目还活着,他们还在继续开发它。这是一个apache项目