一、搭建环境常用命令:
1.设置ip地址、子网掩码、网关:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
2.重启网络
service network restart
3.修改主机和ip地址映射关系
vim /etc/hosts
4.修改机器网卡设置
vim /etc/udev/rules.d/70-persistent-net.rules
5.修改主机名称
vim /etc/sysconfig/network
6.查看防火墙iptables自动启动状态:
chkconfig iptables --list
查看iptables状态:
service iptables status
开启/关闭iptables:
service iptables start
service iptables stop
设置iptables开机启动/不启动:
chkconfig iptables on/off
二、为用户添加sudo权限:
首需要切换到root身份
$su -
(注意有- ,这和su是不同的,在用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前用户的环境变量,用"su -"命令将环境变量也一起带过去,就象和root登录一样)
然后
$visudo //切记,此处没有vi和sudo之间没有空格
1、移动光标,到最后一行
2、按a,进入append模式
3、输入
your_user_name ALL=(ALL) ALL
4、按Esc
5、输入“:w”(保存文件)
6、输入“:q”(退出)
这样就把自己加入了sudo组,可以使用sudo命令了。
三、环境变量添加方式
export JAVA_HOME=/usr/local/jdk
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:${ZOOKEEPER_HOME}/bin:${JAVA_HOME}/bin
每次添加一个都在PATH的最后添加,添加方式是 :${PATH_HOME}/bin
四、zookeeper简介
基本概念
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。
原理
ZooKeeper的基本运转流程:
1、选举Leader。
2、同步数据。
3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。
4、Leader要具有最高的执行ID,类似root权限。
5、集群中大多数的机器得到响应并接受选出的Leader。
此处为一个系列文章,值得学习:zookeeper
一些解释
znode是zookeeper中的一个数据节点,znode下还可以创建子znode,可以理解为文件夹的构造,一个文件夹下可以有子文件夹或者子文件。
可以理解为zookeeper提供了一种存储系统,这个存储系统里存储的是znode的树形结构
每一个znode就是一个数据节点,znode可以存数据,也可以实现类似文件夹的功能,就是znode下可以创建子znode,但是临时节点下是不能创建子节点的。
整个集群会选举出一个leader,这个leader负责处理客户端的事务请求,事务请求包括znode的创建、修改、删除等,follower负责处理客户端的读请求。
当集群中的任何一个follower节点接收到客户端的事务请求,都会转发给leader,也就是说整个集群只有leader可以处理事务请求,其他角色的节点都不能处理,当leader处理事务请求的时候,就要向整个集群广播一个提议,这个提议的意思就是告诉follower你们要创建/修改/删除一个znode,然后follower接收到leader的提议之后,就会做相应的操作,操作完成告诉leader完成了
当leader接收到集群中的大多数follower的成功操作的回复之后,这里的大多数指的是超过集群机器数量的一半
如果有落后的follower,这些落后的follower也会从leader同步状态,保持与leader的状态一致。