1、创建一个maven工程
2.添加pom文件
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.10</version>
</dependency>
</dependencies>
3、在项目的src/main/resources目录下,新建一个文件,命名为“log4j.properties”,在文件中填入。(打印日志所用)
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
4、创建ZooKeeper客户端
package cqcvc.com.cn.zookeeper01;
import java.io.IOException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
import org.junit.Test;
public class Testzookeeper {
private String connectString="hadoop01:2181,hadoop02:2181,hadoop03:2181";//连接(此端口号就在zk的配置文件myid里)
private int sessionTimeout=2000;//超时时间
private ZooKeeper zkClient;
@Test
public void init() throws IOException {
zkClient = new ZooKeeper(connectString, sessionTimeout, new Watcher() {
public void process(WatchedEvent event) {
// TODO Auto-generated method stub
}
});
}
}
出现的问题分析,这里虽然找到节点,但是还是报错了,原因就在没有找到本地的映射关系
C:\Windows\System32\drivers\etc\hosts
之前只配了HP01 02 03没有配hadoop01 02 03所以没找到映射关系
修改之后就没有报错了
5、创建一个节点
package cqcvc.com.cn.zookeeper01;
import java.io.IOException;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.junit.Before;
import org.junit.Test;
public class Testzookeeper {
private String connectString="hadoop01:2181,hadoop02:2181,hadoop03:2181";//连接(此端口号就在zk的配置文件myid里)
private int sessionTimeout=2000;//超时时间
private ZooKeeper zkClient;
@Before
public void init() throws IOException {
zkClient = new ZooKeeper(connectString, sessionTimeout, new Watcher() {
public void process(WatchedEvent event) {
// TODO Auto-generated method stub
}
});
}
@Test
//创建节点
public void createNode() throws KeeperException, InterruptedException {
String path = zkClient.create("/wuguo", "gangezhenshuai".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
System.out.println(path);
}
}