大数据(了解)
定义:指无法在一定时间范围内用常规软件工具进行捕捉、管理和数据的数据聚合
解决的问题:如何存储、如何分析处理
数据的单位:bit、Byte、KB、MB、GB、TB、PB、EB
应用:o2o、零售、房产,保险,物联网
*Linux集群环境搭建
- 创建虚拟机
- windows确定所有vm的服务都启动了
- 确认好网关地址
- 确认VmNet8网卡已经配置好了ip地址和DN
- 复制虚拟机
- 配置mac地址和ip地址
- 配置主机名和域名映射
- 关闭防火墙和SELinux
- ssh免密登录,生成公钥和秘钥
- 时钟同步
安装:
yum install -y ntp
同步
crontab -e
随后在输入界面输入
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
安装jdk和mysql(查阅资料即可)
Shell脚本基础增强
如何创建和使用 shell 脚本
创建:
#!/bin/bash
echo "Hello World !"
执行
方式1:sh hello.sh
方式2:
chomd+X ./hello.sh #使脚本具有权限
./hello.sh #执行脚本
变量的创建和使用
局部变量:
#!/bin/bash
str="hello"
echo ${str}world
全局变量:
指的是环境变量什么的之类
变量的类型:局部变量、环境变量、shell变量
shell 脚本的参数使用
#!/bin/bash
a=1;
b=2;
echo `expr $a + $b`;
echo $((a+b));
echo $[a+b];
shell 流程语句
if语句:
if[]
then
elif
then
else
fi
for语句:
for()
do
done
函数的定义和调用
funWithReturn(){
}
funWithReturn #调用
Zookeeper
主要解决分布式集群中应用系统的一致性问题
面向客户端的分布式系统文件
根目录是/
从根目录开始,每一个节点称为znode
znode特性
文件夹特性:一个znode下可以有子znode
文件特性:一个znode可以存储数据和元数据信息
znode类型
永久类型/临时类型:取决于客户端断开后是否被销毁
永久序列化类型/临时序列化类型:普通节点的名字创建指定,序列化节点就是节点后面带了个序列化码
-
架构
Zookeeper集群是一个基于主从架构的高可用集群 -
主从和主备
1、Leader 一个Zookeeper集群同一时间只会有一个实际工作的Leader,它会发起并维护与各
Follwer及Observer间的心跳。所有的写操作必须要通过Leader完成再由Leader将写操作广
播给其它服务器。
2、Follower 一个Zookeeper集群可能同时存在多个Follower,它会响应Leader的心跳。
Follower可直接处理并返回客户端的读请求,同时会将写请求转发给Leader处理,并且负
责在Leader处理写请求时对请求进行投票。
3、Observer 角色与Follower类似,但是无投票权。 -
Leader选举
什么时候选举Leader(必须要有两台服务器或以上才能进行选举)
A.服务器启动时期会进行Leader选举:
B.一旦Leader服务器挂了,那么整个集群将暂停对外服务,进入新一轮Leader选举,其过程和启动时期的Leader选举过程基本一致过程相同。
票的结构(myid,zxid)
(myid,zxid):(服务器id,事务id)
投票的流程
(1) 每个Server发出一个投票。
(2) 接受来自各个服务器的投票。
(3) 处理投票。
· 优先检查ZXID。ZXID比较大的服务器优先作为Leader。
· 如果ZXID相同,那么就比较myid。myid较大的服务器作为Leader服务器。
(4) 统计投票。
(5) 改变服务器状态。一旦确定了Leader,每个服务器就会更新自己的状态,如果是
Follower,那么就变更为FOLLOWING,如果是Leader,就变更为LEADING。
安装(查资料)
启动zookeeper:
/export/servers/zookeeper-3.4.9/bin/zkServer.sh start
查看启动状态
/export/servers/zookeeper-3.4.9/bin/zkServer.sh status
已经在环境变量中配置好,启动只需要:
zkServer.sh start
常用的命令
创建znode
create -e -s path data [znode]
列出path下对应的znode的数据和属性
get path [znode]
查看Path下所有Znode以及子Znode的属性
ls2 path [znode]
更新节点
set path data []
删除节点,如果删除的节点有子节点就无法删除
delete path []
rmr path 删除节点, 如果有子Znode则递归删除
面试题
1.下面与 Zookeeper 类似的框架是?
A Protobuf: JSON XML
B Java
C Kafka 消息队列
D Chubby[tʃʌbi]
答案D:谷歌内部的分布式锁服务 Chubby
2.选举机制(半数机制)
1.集群有几台机器节点,可以在配置文件中指定。比如我的机器有vm01,vm02,vm03,vm04。
2.启动vm01,vm02,打印角色失败。
3.启动vm03,打印vm01,vm02,vm03角色成功,并且vm03的myid最高,是leader.
4.启动vm04,打印角色是follower。