上一篇文章主要讲了本地表类型MergeTree,本篇主要讲的是ReplicatedMergeTree和Distributed类型。
ReplicatedMergeTree相对于MergeTree存储引擎,多了复制功能,同一shard类的服务器,数据是会同步的。
Distributed并不是真正意义上的表,有点类似于mysql merge存储引擎,也有点类似于视图。
分布表的创建有好多种,本篇以ReplicatedMergeTree+Distributed+zookeeper的方式来实现
上一篇文章主要讲了本地表类型MergeTree,本篇主要讲的是ReplicatedMergeTree和Distributed类型。
ReplicatedMergeTree相对于MergeTree存储引擎,多了复制功能,同一shard类的服务器,数据是会同步的。
Distributed并不是真正意义上的表,有点类似于mysql merge存储引擎,也有点类似于视图。
分布表的创建有好多种,本篇以ReplicatedMergeTree+Distributed+zookeeper的方式来实现
随着数据量的不断增加,又不想增加开发成本,我们选择了tidb数据库,在olap和oltp方面表现都非常的抢眼。为了数据分层,更加方便的提供数据,还需要一个在olap方面有优秀表现的数据存储工具,es我们也在用,不过不能跨索引查询,这会导致单索引会越来越大,不好维护。而clickhouse在olap方面表现优异,并且支持联合查询。
hbase的master的备份机,启动不了了。报以下错误:
2019-11-08 10:19:51,950 ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper create failed after 4 attempts
2019-11-08 10:19:52,820 INFO [main] zookeeper.ZooKeeper: Session: 0x0 closed
2019-11-08 10:19:52,820 ERROR [main] master.HMasterCommandLine: Master exiting
hbase一直好好的,突然hbase shell报以下错误
hbase(main):001:0> list
TABLE
ERROR: Can't get master address from ZooKeeper; znode data == null
Here is some help for this command:
List all user tables in hbase. Optional regular expression parameter could
be used to filter the output. Examples:
hbase> list
hbase> list 'abc.*'
hbase> list 'ns:abc.*'
hbase> list 'ns:.*'
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
zookeeper服务器会产生三类日志:事务日志、快照日志和集群服务器运行日志。
在zookeeper默认配置文件zoo.cfg中有一个配置项dataDir,该配置项用于配置zookeeper快照日志和事务日志的存储地址。在官方提供的默认参考配置文件zoo_sample.cfg中,只有dataDir配置项。其实在实际应用中,还可以为事务日志专门配置存储地址,配置项名称为dataLogDir,在zoo_sample.cfg中并未体现出来。在没有dataLogDir配置项的时候,
zookeeper默认将事务日志文件和快照日志文件都存储在dataDir对应的目录下。建议将事务日志(dataLogDir)与快照日志(dataLog)单独配置,因为当zookeeper集群进行频繁的数据读写操作是,会产生大量的事务日志信息,将两类日志分开存储会提高系统性能,而且,可以允许将两类日志存在在不同的存储介质上,减少磁盘压力。
zookeeper集群服务器运行日志,该日志的配置地址在conf/目录下的log4j.properties文件中,该文件中有一个配置项为“zookeeper.log.dir=.”,表示log4j日志文件在与执行程序(zkServer.sh)在同一目录下。当执行zkServer.sh 时,在该文件夹下会产生zookeeper.out日志文件。下面主要介绍事务日志与快照日志。
kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
namenode是hadoop的核心,如果namenode宕机,整个hadoop都会挂掉。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。