网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- RegionServer:运行在集群中的服务器,负责管理和服务其上存储的一个或多个Region。
- HBase采用的是典型的Master/Slave架构。HBase Master负责管理表和Region的元数据信息,以及RegionServer的负载均衡。而RegionServers负责处理客户端的读写请求,并管理存储在其上的Regions。
+ 可用性
- ZooKeeper实现了Client和HMaster之间的协调管理
- HLog(WAL:Write Ahead Log 当数据写入具体的磁盘之前,先将其写一份在日志文件上)
* HLog能够将死去的RegionServer"复活",获取其原来的表数据。
* 当HRegionServer死的时候,则将HLog的数据迁移到另一台服务器上。
* 而数据迁移又依靠HMaster,因此HMaster也需要容灾机制,则出现了HMaster Backup和ZooKeeper进行协调管理。
* 如果ZooKeeper和HMaster之间心跳"断"了,则启用HMaster Backup.
- 事务性
-
NoSQL 更加注重 性能、扩展性、灵活性,不像RDBMS一样强调原子性或一致性。
-
一致性问题
- 发生场景:通常发生在实时数仓。
- 批处理:规定记录数达到一定值才发送,可能导致时效性差(前后两条记录的时间间隔长)。
- 流处理:采用每隔一段时间(水位线)就进行数据发送的策略。面临的挑战是如何确保在时间范围内的数据都被纳入处理。
- 解决方案:允许一定的延迟(例如,计算3秒内的数据,但结果会在5秒内出来),这是为了等待那些符合时间范围但尚未被处理的数据。
- 流批一体:流处理和批处理结合的处理模式(Flink)
- 侧输出流:
- 为了保证最终一致性,对因延迟未能纳入批次的数据放入侧输出流中。
- 例如:如果在一个
-