zookeeper原理2(转)

ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。 Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在 某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookeeper的目的就在于此。本文简单分析 zookeeper的工作原理,对于如何使用zookeeper不是本文讨论的重点。本文主要是对Zookeeper的是想原理进行分析说明。只有在熟悉实现原理之后才[……]

Read more

zookeeper原理

ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。
分布式环境中大多数服务是允许部分失败,也允许数据不一致,但有些最基础的服务是需要高可靠性,高一致性的,这些服务是其他分布式服务运转的基础,比如naming service、分布式lock等,这些分布式的基础服务有以下要求:
高可用性
高一致性
高性能
对于这种有些挑战CAP原则 的服务该如何设计,是一个挑战,也是一个不错的研究课题,Apache的ZooKeeper也许给了我们一个不错的答案。Z[……]

Read more

docker初体验和使用笔记

在ubuntu13.10上体验docker
首先要检测以下你的内核版本
sudo uname -a
Linux helight-Xu 3.11.0-26-generic #45-Ubuntu SMP Tue Jul 15 04:02:06 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

第一次添加Docker的repository到你的本地秘钥库

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8B[......]

Read more

用户画像数据建模方法(zz)

  原文:http://blog.baifendian.com/?p=8015

从1991年Tim Berners-Lee发明了万维网(World Wide Web)开始,到20年后2011年,互联网真正走向了一个新的里程碑,进入了“大数据时代”。经历了12、13两年热炒之后,人们逐渐冷静下来,更加聚 焦于如何利用大数据挖掘潜在的商业价值,如何在企业中实实在在的应用大数据技术。伴随着大数据应用的讨论、创新,个性化技术成为了一个重要落地点。相比传 统的线下会员管理、问卷调查、购物篮分析,大数据第一次使得企业能够通过互联网便利地获取用户更为广泛的反馈信息,为进一步精准、快速地分析[……]

Read more

一种简单的分布式存储系统

三层架构(MetaNodeMonitor+MetaNode+DataNode),核心是下面两层(MetaNode+DataNode),下面两层是可以脱离Monitor独立运行。

Monitor的存在主要是作为一个MetaNode的监控和MetaNode出错时进行切换角色,并且通知DataNode进行切换。

DataNode在获取主MetaNode的Ip后进行本地缓存,不需要主动询问Monitor,而且DataNode还可以主动从任意MetaNode获取主MetaNode的IP信息。

MetaNode作为整个系统的大脑,存储所有的文件元信息,这一点和HDFS的NameNode是[……]

Read more

两阶段提交算法

两阶段提交协议是在事务处理、数据库,以及计算机网络中使用的一种原子提交协议(atomic commitment)。它是一个分布式算法,协调在整个分布式原子事务中的参与者的行为(commit或者roll back)。这个协议在一些系统错误发生时仍然能够成功,((两阶段提交协议))但并不能保证对所有错误都能进行容错。为了能做错误恢复,协议的所有参与 者都需要使用日志对协议状态进行记录。

两阶段提交协议中,其中一个节点被设置为coordinator,其他节点设置为cohorts。每个Mutation都会经历两个状态:prepare和commit。Master把mutation持久地写入log的[……]

Read more

netty用pb来实现多接口rpc

在netty中使用pb, nettty的pb编解码必须指定要解码和编码的pb结构体,这然做多接口的应用就很不方便,这里采用了一种简单的方式来解决。

pb定义如下:

package org.zhwen.netty.hello;

enum ReqestType {
LOGIN = 0;
SERVICE = 1;
}

message Request {
required ReqestType type = 1;
optional Login login = 100;
optional Service service = 101;
}

message Log[……]

Read more

zz MySQL的InnoDB索引原理详解

原文地址:http://www.admin10000.com/document/5372.html

摘要:

本篇介绍下Mysql的InnoDB索引相关知识,从各种树到索引原理到存储的细节。

InnoDB是Mysql的默认存储引擎(Mysql5.5.5之前是MyISAM,文档)。本着高效学习的目的,本篇以介绍InnoDB为主,少量涉及MyISAM作为对比。

这篇文章是我在学习过程中总结完成的,内容主要来自书本和博客(参考文献会给出),过程中加入了一些自己的理解,描述不准确的地方烦请指出。

  1 各种树形结构

本来不打算从二叉搜索树开始,因为网上已经有太多相关文章,但是考虑到[……]

Read more

ngingx访问限制和iptables简单使用

为了方便安装了一个phpmyadmin,结果公司扫描了之后说要做一些安全限制,主要还是用到nginx的访问限制和iptables,这里稍微做一下记录

nginx的限制较为简单,在server中添加对phpmyadmin的限制即可

location ~* /phpmyadmin/ {

allow 192.168.3.0/24;

deny all;

}
主要还是记录一下iptables的简单使用:
1、查看
iptables -vL –line-number
-v 输出详细信息,包含通过该规则的数据包数量,总字节数及相应的网络接口
-L 查看当前[……]

Read more