在NoSQL数据库中存储数据可以提供键值存储模型。但是,HDFS是Hadoop生态系统中的分布式文件存储。键值由mapreduce群集使用。因此,此分布仅在处理阶段生成。
我需要知道是否有可能将静态数据存储在HDFS中,其中每个值都将由密钥标识。
答案 0 :(得分:1)
Hadoop从早期开始就支持SequenceFiles(如果不是从开始就支持)https://wiki.apache.org/hadoop/SequenceFile。
这些仅在地图/缩小场景中有用,今天您可能想要使用一种列式格式(镶木地板或兽人)来存储数据,您也可以将其降级为仅包含一个键和一个值,并且与每个键使用多个值一起使用(它们还包含允许您在扫描时跳过数据的元数据(例如,实木复合地板过滤器下推https://drill.apache.org/docs/parquet-filter-pushdown/)
请注意,所有这些格式都不会为您提供在线查询功能(例如No-SQL数据库),因为您需要一个no-sql数据库-如果您想要一个将其数据存储在HDFS上的数据库,则可以使用HBase(通过HFile格式)它使用的也是存储在HDFS上的键多值格式)