Hbase是面向列的数据库,普通的关系型数据库是面向行的存储结构(面向行:向数据库插入一条记录,这个记录就是一行)。
Hbase建立的表有三个关键字段,第一个是RowKey:类似于主键,唯一的标识一行,第二个字段是Timestamp时间戳,HBASE在插入新数据时,旧数据不会被覆盖掉,而是新数据加上一个新的时间戳;第三个字段是Column Family即列族,允许一个表下有多个列族,一个列族下有多个列,但一般建议设置一个列族。列族名:列名。好处:例如QQ的业务办理都大量稀疏矩阵,在此基础上,增加一列则要牵扯到所有数据,而如果使用面向列的,则很好实现。
Hmaster是Hbase的管理节点,Hbase的服务节点是RegionServer,提供服务的单位是Region,一台RegionServer上有一台或多台Region,一个Region上只有一个HLOG,HLOG是一个预写机制,Hbase插入数据时,先写入HLOG中,写入HLOG成功后给客户端返回一个插入成功的消息后,再把HLOG中的数据写入到Region中。这样做的优点是可以保持强的一致性,即使server断电了,内存中的数据消失了,可以从HLOG或HDFS中找回数据。Hbase非常快的原因是直接从内存中读取数据(Store下的MemStore),当MEMStore在内存中占到一定的量的时候就刷新到磁盘上,最后写到HDFS上去。Hbase无论是改还是删,旧数据都仍然存在,因此数据量会变得非常大,因此Hbase使用了两种机制来解决这个问题,split(拆分)和Compact(紧缩)
Spark是纯内存计算,比mapreduce、Hive快的多,还支持各种数据挖掘算法。
Transformation变换 Action执行,spark在对RDD进行Transformation时,只会改变DAG,不会真正执行,因此如果Transformation做错了,可以回到前面某一步,重新定义。
一共包含四种节点,持久无序、持久有序、临时无序、临时有序。
Zookeeper每个节点既可以包含子节点又可以保存值。不像文件系统只有叶子节点保存值,目录文件不保存值。
Zookeeper包括三个成员:Observer可有可无,写消息必须从Leader,读消息可以从Leader或Follower或Observer。Observer不参与选举,好处是Observer挂掉之后,很快下线,且可以保证合适的选举数量。如果只对读有压力,可以增加Observer。
Redis不依托hadoop组件,redis比memcache的好处就是除了在内存运行还支持持久化。
本文地址:https://blog.csdn.net/zhao2chen3/article/details/111961151