继上一篇,本文将探讨下Redis Cluster更多的原理和特性。本文的内容来自于官方文档和后面的参考文献。 Continue reading
Redis Cluster学习笔记1
Redis在3.0版正式引入了集群这个特性。Redis集群是一个分布式(distributed)、容错(fault-tolerant)的 Redis内存K/V服务, 集群可以使用的功能是普通单机 Redis 所能使用的功能的一个子集(subset),比如Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误。 Continue reading
Redis Sentinel配置小记
Sentinel是一个管理多个redis实例的工具,它可以实现对redis的监控、通知、自动故障转移。sentinel不断的检测redis实例是否可以正常工作,通过API向其他程序报告redis的状态,如果redis master不能工作,则会自动启动故障转移进程,将其中的一个slave提升为master,其他的slave重新设置新的master实例。也就是说,它提供了:
监控(Monitoring): Sentinel 会不断地检查你的主实例和从实例是否正常。
通知(Notification): 当被监控的某个 Redis 实例出现问题时, Sentinel 进程可以通过 API 向管理员或者其他应用程序发送通知。
自动故障迁移(Automatic failover): 当一个主redis实例失效时, Sentinel 会开始记性一次failover, 它会将失效主实例的其中一个从实例升级为新的主实例, 并让失效主实例的其他从实例改为复制新的主实例; 而当客户端试图连接失效的主实例时, 集群也会向客户端返回新主实例的地址, 使得集群可以使用新主实例代替失效实例。
Redis Sentinel自身也是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程, 这些进程使用流言协议(gossip protocols)来接收关于主Redis实例是否失效的信息, 然后使用投票协议来决定是否执行自动failover,以及评选出从Redis实例作为新的主Redis实例。 Continue reading
Python Reading List (2)
最近工作又要用到Python了,无奈有段时日没用Python写过东西了,有些生疏。所以借五一把收藏的Python博文翻出来看一下,温故而知新。 Continue reading
Gitosis配置手记
Git是目前世界上最先进的分布式版本控制系统。大名鼎鼎的GitHub就是一个免费托管开源代码的远程仓库。但既不想公开源代码,又舍不得给GitHub交保护费,那需要我们自己搭建一台Git服务器作为私有仓库使用。下面我们使用gitosis(https://github.com/res0nat0r/gitosis)这个服务器来配置这个私有仓库。简单地说,Gitosis 就是一套用来管理 authorized_keys文件和实现简单连接限制的脚本,它是Python开发的,所以要保证Python和Python setuptools提前安装好。
apt-get install python-setuptools
Continue reading
使用iRedMail配置邮件服务器
iRedMail(http://www.iredmail.com/) 是一个基于 Linux/BSD 系统的零成本、功能完备、成熟的邮件服务器解决方案。iRedMail 是一个开源、免费的项目,是企业级邮件服务的一个不错的选择。iRedMail提供了全套的解决方案,所以使用iRedMail时不需要提前准备任何服务。在使用iRedMail前,我们需要了解一些概念:
MUA(邮件用户代理)就是我们常用的thunderbird, outlook等应用程序,也称为电子邮件客户端程序。通过 MUA 程序,我们可以发送邮件,也可以把接收到的邮件保存在客户端的邮箱中。这两种操作属于不同的两个进程。MUA通过POP(邮局协议)和STMP(简单邮件传输协议)从电子邮件服务器发送或接收消息。
而MTA(邮件传送代理) 和MDA(邮件分发代理) 是电子邮件服务器的两个独立进程MUA向电子邮件服务器发送一个电子邮件,MTA会判断这个邮件的地址是否在本服务器上。如果是通过MDA发送到目的邮箱MUA.如果不是MTA就把这个邮件传送到包含目的邮箱列表的电子邮件服务器。常用的MTA是sendmail,postfix和qmail,而MDA为dovecot。手动搭建MTA+MDA可以参考:How To Set Up a Postfix E-Mail Server with Dovecot。
除了MTA和MDA外,邮件防毒、垃圾邮件扫描等组件也是不可缺少的。更多的信息可以参考:
企业开源电子邮件系统安全保障实战精要: 第 1 部分,原理及 Sendmail、Qmail 安全防护实战
企业开源电子邮件系统安全保障实战精要: 第 2 部分,Postfix 安全防护实战及垃圾邮件防范 Continue reading
HUE – Let’s big data.
Hue(http://gethue.com/)全称是Hadoop User Experience,由Cloudera开发,是一个用于数据分析的Apache Hadoop的Web接口。
它提供的功能包括:
一个HDFS的文件浏览器
一个MapReduce/YARN的作业浏览器
一个Hive、HBase,Cloudera Impala 和 Sqoop2 的查询编辑器。
它还附带了一个Oozie的应用程序,用于创建和监控工作流程。后期数据可视化功能也非常强大!是不是觉得很高大上啊!下面我们一起使用一下东西。 Continue reading
Sqoop常用操作
该脚本由香打小伙伴整理。
首先保证HDFS和HiveServer2正常运行,集群运行在debugo01,debugo02,debugo03三台主机上。
1. 准备mysql数据
在debugo03的MySQL中新建一个测试数据库,并建测试表employee_salary。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
mysql -uroot -p mysql> create database test_sqoop; Query OK, 1 row affected (0.00 sec) mysql> use test_sqoop; SET FOREIGN_KEY_CHECKS=0; DROP TABLE IF EXISTS `employee_salary`; CREATE TABLE `employee_salary` ( `name` text, `id` int(8) NOT NULL AUTO_INCREMENT, `salary` int(8) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; INSERT INTO `employee_salary` VALUES ('zhangsan', '1', '5000'); INSERT INTO `employee_salary` VALUES ('lisi', '2', '5500'); commit; CREATE USER 'test'@'%' IDENTIFIED BY 'test'; GRANT ALL PRIVILEGES ON test_sqoop.* TO 'test'@'%'; |
OpenTSDB部署手记
OpenTSDB是一个基于HBase上的实时监控信息收集和展示平台。它支持秒级数据采集metrics,使用HBase进行永久存储,可以做容量规划,并很容易的接入到现有的监控系统里。OpenTSDB可以从大规模的设备中获取相应的metrics并进行存储、索引以及服务,从而使得这些数据更容易让人理解,如web化,图形化等。 Continue reading
HBase目录结构与Compaction
我们首先查看一下HDFS中的HBASE存储,可以找到其中几个目录
1 |
hdfs dfs -ls -R /hbase |
临时文件 /hbase/.tmp
归档 /hbase/archive
WAL日志 /hbase/WALs/debugo01 …
数据 /hbase/data/
Continue reading