ZooKeeper主从应用
原理
1、zookeeper能做什么? 它可以在分布式系统中协作多个任务,一个协作任务是指一个包含多个进程的任务
2、真实系统中的三个问题 1.消息延迟 2.处理器性能 3.时钟偏移
3、主从模式的三个问题 1.主节点崩溃 :如果主节点发送错误并失效,系统将无法分配新的任务或重新分配已失败的任务。2.从节点崩溃:如果从节点崩溃,已分配的任务将无法完成。 3.通信故障:如果主节点和从节点之间无法进行信息交换,从节点将无法得知新任务分配给它。
4、主-从架构的需求 主节点选举:这是关键的一步,使得主节点可以给从节点分配任务 崩溃检测:主节点必须具有检测从节点崩溃或失去连接的能力。 组成员关系管理:主节点必须具有知道哪一个从节点可以执行任务的能力。 元数据管理:主节点和从节点必须具有通过某种可靠的方式来保存分配状态和执行状态的能力。
5、 监视与通知
操作
app-11为主节点,app-12为从节点、app-13为客户端。
1、 分别用app-11、app-12、app-13登录到客户端。
命令:su – hadoop
、zkCli.sh
2、 在主节点上创建一个临时节点并存入数据app-11。
命令:create -e /master "app-11"
3、分别创建临时节点workers、tasks、assign。
命令:create /workers ""
、create /tasks ""
、create /assign ""
4、使用ls多项监控。
命令:ls /workers true
、ls /tasks true
5、在从节点上向workers注册一个节点,并存入自己的节点信息。
命令:creat -e workers/worker1 "app-12"
6、 返回到app-11上。
7、 在客户端上,创建有序的任务。
命令:create -s /tasks/task- "cmd"
8、 返回主节点。
9、在主节点上创建任务节点worker1。
命令:create /assign/worker1 ""
10、在从节点上监控任务节点,因为任务节点还没有创建,所以用stat命令。
命令:stat /assign/worker1/task-0000000000 true
11、在主节点上创建任务节点。
命令:create /assign/worker1/task-0000000000 ""
12、返回从节点.
13、同理在主节点上监控任务完成的状况。
命令:stat /assign/worker1/task-0000000000/status true
14、在从节点上创建任务完成状态,假设ok。
命令:create /assign/worker1/task-0000000000/status "OK"
15、返回主节点。
ZooKeeper清理工作
1、 登录hadoop用户。
命令:su – Hadoop
2、 登录到客户端。
命令:zkCli.sh
3、 删除其他节点,先查看有哪些节点。
命令:ls /
4、删除其他多余节点,只留zookeeper节点。
命令:rmr /workers
、rmr /test
、rmr /tasks
、rmr /master
、rmr /assign
5、 退出。
命令:quit
常见问题
问题原因:临时节点下不能创建子节点
解决办法:检查workers是否为临时节点,删除workers重新创建。
友情提示:详细学习内容可观看Spark快速大数据处理——余海峰https://edu.csdn.net/course/detail/24205