Hadoop准备(3)

zk环境的搭建

(1) cd /export/softwares 进入到
将zookeeper文件拖入到/export/softwares 当中

(2)利用 tar -zxvf zookeeper-3.4.9.tar.gz -c …/servers/ 对安装包进行解压
进入到conf文件当中,拷贝zoo_sample.cfg 到 zoo.cfg
创建目录 -p /export/servers/zookeeper-3.4.9/zkdatas
vim zoo.cfg

(3)dataDir=/export/servers/zookeeper-3.4.9/zkdatas
两个autopurge取消掉注释
再输入server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888

(4)在第一台机器中 echo 1 > /export/servers/zookeeper-3.4.9/zkdatas/myid
二三台机器重复此操作

在第一台机器中拷贝文件:
scp -r /export/servers/zookeeper-3.4.9/ node02:$ PWD
scp -r /export/servers/zookeeper-3.4.9/ node03:$ PWD

启动zookeeper服务:
/export/servers/zookeeper-3.4.9/bin/zkServer.sh start
查看启动状态:
/export/servers/zookeeper-3.4.9/bin/zkServer.sh status

zk的shell操作

登录:

在bin目录下输入 zkCli.sh

创建节点:

  create [-s] [-e] path data acl

其中,-s或-e分别指定节点特性,顺序或临时节点,若不指定则表示持久节点:acl用来进行权限控制

创建永久节点:

zk的shell操作创建节点

创建永久节点

create /abc helloworld

创建永久的顺序的的节点

create -s /bbb helloworld

创建临时节点:

create -e /mytemp mytemp

创建一个临时顺序节点:

create -e -s /mytemp mytemp

获取节点的值

get 绝对路径

设置节点的值

set /abc 新值

删除节点的值:

delete 路径(只能删除没有子节点的操作)

递归删除:

rmr 路径

history 数据模型

zk节点的属性

临时节点不能拥有子节点

永久节点:

 有序的永久节点

 无序的永久节点

节点属性:

dataVersion:数据版本号,每次对节点进行set操作,dataVersion的值都会增加1(即使设置相同的数据),可有效避免了数据更新时出现的先后顺序问题。

cversion:子节点的版本号,当znode的子节点有变化时,cversion的值就会增加1

aclVersion:ACL的版本号

cZxid:Znode创建的事务id

mZxid:Znode被修改的事务id,即每次对znode的修改都会更新mZxid

zk的watch机制

zookeeper的watch机制:利用watcher来实现分布式的通知功能,可分为以下三个过程:

客户端向服务端注册Watcher、服务端事件触发Wacther、客户端回调Watcher得到触发事件情况。

特性:

监听器是一次性的:

事件封装:所有的节点变化,都封装成了对应的事件的变化,节点的每一个操作,都对应的封装了一个事件,监听器专门获取这个事件即可。

异步发送:监听器与节点之间的操作是异步的。先注册再触发。

设定监听器:

get /hello(路径) watch

临时节点与zk的watch机制一起搭配使用,可以监听我们的临时节点什么时候消失。

zk的javaAPI操作

创建一个永久节点(测试类):

子工程的POM文件的配置:

<parent>
    <artifactId>bigdata01</artifactId>
    <groupId>cn.it.cast</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>zkday01</artifactId>



<dependencies>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>2.12.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-recipes</artifactId>
        <version>2.12.0</version>
    </dependency>
    <dependency>
        <groupId>com.google.collections</groupId>
        <artifactId>google-collections</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.3.0-M1</version>
        <!-- scope的取值一共有四个  test  provided   compile   默认值 -->
        <scope>test</scope>
    </dependency>
</dependencies>
<build>
    <plugins>
        <!-- java编译插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

Java源代码:

import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.</
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值