摘要: 自我学习,仅供参考:数据库总是会遇到各种失败的场景,如网络连接断开、断电等,尽管journaling日志功能也提供了数据恢复的功能,但journaling通常是针对单个节点来说的,只能保证单节点数据的一致性,而复制集通常是由多个节点组成,每个节点除了journaling日志恢复功能外,整个复制集还具有故障自动转移的功能,这样能保证数据库的高可用性。在生产环境中一个复制集最少应该包含三个节点,其中有一个必须是主节点,典型的部署结构如下图:其中每个节点都是一个mongod进程对应的实例,节点之间互相周期性的通过心跳检查对方的状态,默认情况下primary节点负责数据的读、写,second节点备份p 阅读全文
posted @ 2013-08-24 17:47 郭远威 阅读(2793) 评论(0) 推荐(1) 编辑
摘要: 安装部署: 1. 配置spark为1个master,2个slave的独立集群(Standlone)模式, 可以在VMWare中构建3台运行Ubuntu的机器作为服务器; master主机配置如下: vim /etc/hostname 编辑此文件,设置主机名为master vim /etc/hosts 阅读全文
posted @ 2019-01-24 11:44 郭远威 阅读(1240) 评论(0) 推荐(1) 编辑
摘要: 1. 配置为1个namenode(master主机),2个datanode(slave1主机+slave2主机)的hadoop集群模式, 在VMWare中构建3台运行Ubuntu的机器作为服务器; 关闭操作系统防火墙:ubuntu下默认是关闭的,可以通过命令ufw status检查; master主 阅读全文
posted @ 2018-03-16 16:58 郭远威 阅读(875) 评论(0) 推荐(1) 编辑
摘要: 安装Python 下载地址:http://www.python.org/, Python 有 Python 2 和 Python 3 两个版本, 语法有些区别,ubuntu上自带了python2.7.6,所以在 ubuntu上暂时不需额外安装。 安装JAVA JDK 下载地址:http://www. 阅读全文
posted @ 2016-04-26 09:51 郭远威 阅读(3058) 评论(2) 推荐(0) 编辑
摘要: 集群介绍:Galera是一个MySQL(也支持MariaDB,Percona)的同步多主集群软件,目前只支持InnoDB引擎。主要功能:同步复制真正的multi-master,即所有节点可以同时读写数据库自动的节点成员控制,失效节点自动被清除新节点加入数据自动复制真正的并行复制,行级用户可以直接连接... 阅读全文
posted @ 2015-05-17 12:37 郭远威 阅读(10063) 评论(0) 推荐(2) 编辑
摘要: 2015年3月3号,MongoDB新版本3.0发布了,和以前版本相比,这次改动较大,主要有以下几个方面:1. 引入了插件式的存储引擎架构,允许第三方根据实际项目的需要开发存储引擎,类似于MySql中的分层存储引擎架构。随同这种架构发布的新的存储引擎为WiredTiger,老的存储引擎更名为MMAPv... 阅读全文
posted @ 2015-03-27 22:49 郭远威 阅读(2613) 评论(1) 推荐(2) 编辑
摘要: 锁粒度与并发性能怎么样?数据库的读写并发性能与锁的粒度息息相关,不管是读操作还是写操作开始运行时,都会请求相应的锁资源,如果请求不到,操作就会被阻塞。读操作请求的是读锁,能够与其它读操作共享,但是当写操作请求数据库时,它所申请的是写锁,具有排它性。MongoDB在2.2之前的版本,锁的粒度是非常粗的... 阅读全文
posted @ 2014-12-26 21:18 郭远威 阅读(2838) 评论(3) 推荐(0) 编辑
摘要: 上面的(http://www.cnblogs.com/guoyuanwei/p/3565088.html)介绍了部署了一个默认的分片集群,对mongoDB的分片集群有了大概的认识,到目前为止我们还没有在集群上建立其它数据库,mongoDB的分片是基于集合(表)来进行的,因此要对一个集合分片,必须先使... 阅读全文
posted @ 2014-06-01 06:35 郭远威 阅读(2023) 评论(0) 推荐(0) 编辑
摘要: 前面几篇文章的分析复制集解决了数据库的备份与自动故障转移,但是围绕数据库的业务中当前还有两个方面的问题变得越来越重要。一是海量数据如何存储?二是如何高效的读写海量数据?尽管复制集也可以实现读写分析,如在primary节点上写,在secondary节点上读,但在这种方式下客户端读出来的数据有可能不是最新的,因为primary节点到secondary节点间的数据同步会带来一定延迟,而且这种方式也不能处理大量数据。mongoDB从设计之初就考虑了上面所提到的两个问题,引入了分片机制,实现了海量数据的分布式存储与高效的读写分离。复制集中的每个成员是一个mongod实例,但在分片部署上,每一个片可能就是 阅读全文
posted @ 2014-02-24 18:09 郭远威 阅读(1560) 评论(1) 推荐(1) 编辑
摘要: 对于某些应用程序来说,写关注是重要的。它能判断哪些写操作成功写入了,哪些失败了,对于失败的操作,驱动程序能返回错误,由应用程序决定怎么处理。如果没有写关注,应用程序发送一个写操作到socket后,就不会管后面发送了什么情况,不知道是否成功写入数据库,这种情形对于日志类型的应用程序还是可以接受的,因为偶尔的写失败不会影响整个日志的监控情况;带有写关注的操作会等到数据库确认成功写入后才能返回,因此写关注会带来一点性能的损失。下面先分析复制集上写关注配置。默认情况下复制集的写关注只针对primary节点,当应用程序发送一个写操作请求时,驱动程序会调用getLastError命令返回写操作的执行情况( 阅读全文
posted @ 2014-01-27 22:16 郭远威 阅读(1206) 评论(0) 推荐(1) 编辑
摘要: 上面的介绍的数据同步(http://www.cnblogs.com/guoyuanwei/p/3293668.html)相当于传统数据库中的备份策略,mongoDB在此基础还有自动故障转移的功能。在复制集概述那一节提到过心跳"lastHeartbeat"字段,mongoDB就是靠它来实现自动故障转移的。 mongod实例每隔2秒就向其它成员发送一个心跳包以及通过rs.staus()中返回的成员的”health”值来判断成员的状态。如果出现复制集中primary节点不可用了,那么复制集中所有secondary的节点就会触发一次选举操作,选出一个新的primary节点。如上所配 阅读全文
posted @ 2014-01-27 22:13 郭远威 阅读(3216) 评论(0) 推荐(0) 编辑