0
大数据量
大数据处理的基本架构图
存储
数据库,分布式文件系统,NoSQL
比如对于社交网络数据的存储就更适合使用图数据库;对于实时响应要求高的场合使用HBase等列式数据库更好;对于海量批处理使用Hadoop(HDFS + MapReduce)
1数据分片与路由
-
纵向扩展 Scale Up
-
横向扩展 Scale Out
-
分片 Shard/Partition
将数据切分并分配到各个机器中去 -
路由 Routing
数据分片后,如何找到某条记录的具体位置,这个必然要解决的问题称为路由
分片与复制,保证高可用
数据复制后需要解决的问题: 并发更新时 如何 保证数据的一致性等等问题
抽象模型(数据记录->分片->机器存储)
某条记录 -》某个分片 (key - partition 映射)
某个分片 -》某个机器(partition - machine 映射)
- 点查询 , 常见的Hash映射
- 范围查询
Hash分片
Round Robin
哈希取模,扩展性低
虚拟桶 Virtual Bucket
数据记录 -》 虚拟桶 (hash映射)
虚拟桶 -》机器(内存表)
一致性哈希 Consistent Hashing
负载均衡
虚拟节点,兼顾机器差异
范围分片
LSM Tree