Zookeeper 知识

来源:互联网 发布:不干胶设计软件 编辑:程序博客网 时间:2024/06/05 10:36

一、概念简介;
分布式协调服务,为别的分布式程序服务
1.提供数据保管
2.提供节点监听
3.服务器主从选举场景

底层:采集状态数据(描述信息)

为用户程序提供数据节点监听的服务。

应用场景:

二:集群搭建:(最小3台)(集群结构)zookeeper ,conf,myid

三:zookeeper的命令行客户端及znode数据结构类型监听等功能

ephemeral 断开连接自己删除 如:-e 短暂节点
persistence
SEQUE
create -e /test
create /test 888
create -s /teast/aa 999
zkServer.sh start
zkCli.sh -server min1:2181
help查看基本命令的使用。

四:zookeeper 集群自动启动脚本及export变量作用域的解析

原理:ssh 运程登陆。
ssh min2 mkdir /root/min2

命令:
ssh min2 /usr/local/zookeeper-3.4.6/bin/zkServer.sh start
无效(此shell与登陆上的shell二个独立shell,此shell没有JAVA_HOME变量,窗口登陆会自动执行环境变量的初始化,ssh,需要手动启动souce 环境变量文档。/etc/profile)
原因:需要环境变量 echo $JAVA_HOME

变量:

export 定义的变量,会对自己所在的shell进程及其子进程生效

B=1 定义的变量,只对自己所在的shell 进程生效

例如:

a=1

定义一个变量如: a=1,写一个sell脚本echo a,echo a,显示1。
原因:脚本执行时在另外一个bash里。当前界面命令是此脚本的父进程。
(此脚本)子进程看不见父进程(当前命令界面)。
只对自己所在的shell 进程生效
命令pstree
pstree - display a tree of processes

export a=1.

定义一个变量如: a=1,写一个sell脚本echo a,1.echo a,显示1。原因:作用范围:会对自己所在的当前shell进程及其子进程生效

export:写一个脚本用一个export 定义一个变量,作用范围:只在当前进程及其子进程。父进程无法访问。

souce 作用:会把我当前定义在脚本文件里的变量,放在当前shell 里面。

!/bin/bash

echo “start zkSever…”
for i in 1 2 3
do
ssh min$i “source /etc/profile;/usr/local/zookeeper-3.4.6/bin/zkServer.sh start”
done

在root目录下:
配置免密码登陆
/root/bin/startzk.sh
ssh-keygen
ssh-copy-id min2

实验命令的使用

我的三台主机配置zookeeper 集群自动启动脚本
Hadoop 用户
/etc/profile 文件:

编写
Startzk.sh脚本 放在
pwd
/usr/local/zookeeper-3.4.6/bin
目录下:
Chmod +x startzk.sh
Vim startzk.sh
运行 startzk.sk
Hadoop 配置了免密码登陆。

!/bin/bash

echo “start zkSever…”
for i in 1 2 3
do
ssh min$i “source /etc/profile;/usr/local/zookeeper-3.4.6/bin/zkServer.sh start”
done
类似可以创建一个stopzk.sh

在集群大的情况下工作量就减少了。。。成功。

原创粉丝点击