大数据(7) - zookeeper的安装与使用
简介
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
特点
tar -xzf ~/softwares/installtions/zookeeper-3.4.5.tar.gz -C ~/modules/
2.修改配置文件
cd /home/admin/modules/zookeeper-3.4.5/conf mv zoo_sample.cfg ./zoo.cfg vim zoo.cfg 修改内容如下:
(需要手动创建该文件夹)
dataDir=/home/admin/modules/zookeeper-3.4.5/zkData (文件最下面添加)
server.1=linux01:2888:3888
server.2=linux02:2888:3888
server.3=linux03:2888:3888
3.创建文件夹与myid
cd /home/admin/modules/zookeeper-3.4.5 mkdir zkData cd zkData touch myid echo 1 > myid
4.分发安装到linux02和linux03
cd /home/admin/modules/zookeeper-3.4.5 scp -r zookeeper-3.4.5/ linux02:/home/admin/modules/ scp -r zookeeper-3.4.5/ linux03:/home/admin/modules/ 分别修改linux02和linux03的myid为2和3
5.启动zookeeper集群与查看状态
bin/zkServer.sh start bin/zkServer.sh status
6.客户端链接到zookeeper
bin/zkCli.sh -server linux01:2181
链接成功后测试
1.查看根目录
ls / 2.创建测试文件夹
create /my_test_servers "servers" 退出
quit
7.其它
如果有其它zookeeper集群正在运行,jps查看的是其它的进程,想要关闭不能使用
bin/zkServer.sh stop
只能用jps查看进程id,然后把进程kill掉,再重新启动zookeeper集群
kill -9 [进程id]
简单使用
1.在Intellij IDEA 中创建zookeeper测试项目
2.创建zookeeper服务端文件
DistributeServer.java package zookeeper; import org.apache.zookeeper.*; import java.io.IOException;
import java.io.UnsupportedEncodingException; public class DistributeServer {
private static String connectString = "linux01:2181,linux02:2181,linux03:2181";
private static int sessionTimeout = 2000;
private ZooKeeper zk = null;
private String parentNode = "/my_test_servers"; // 创建到zk的客户端链接
public void getConnect() throws IOException {
zk = new ZooKeeper(connectString, sessionTimeout, watchedEvent -> { });
} // 注册服务器
public void registServer(String hostname) throws UnsupportedEncodingException, KeeperException, InterruptedException {
String create = zk.create(
parentNode + "/" + "child_node",
hostname.getBytes("UTF-8"),
ZooDefs.Ids.OPEN_ACL_UNSAFE,
CreateMode.EPHEMERAL_SEQUENTIAL
);
System.out.println(hostname + "is online" + create);
} // 业务功能
public void business(String hostname) throws InterruptedException {
System.out.println(hostname + "is working ...");
Thread.sleep(Long.MAX_VALUE);
} public static void main(String[] args) throws IOException, InterruptedException, KeeperException {
args = new String[]{"linux03"}; DistributeServer server = new DistributeServer();
server.getConnect(); server.registServer(args[0]);
server.business(args[0]);
} }
3.创建zookeeper客户端文件
DistributeClinet.java package zookeeper; import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.ZooKeeper; import java.io.IOException;
import java.util.ArrayList;
import java.util.List; public class DistributeClinet {
private static String connectString = "linux01:2181,linux02:2181,linux03:2181";
private static int sessionTimeout = 2000;
private ZooKeeper zk = null;
private String parentNode = "/my_test_servers"; // 创建客户端链接
public void getConnect() throws IOException {
zk = new ZooKeeper(connectString, sessionTimeout, watchedEvent -> {
// 当我们监停的服务器发生变化,则会回调该方法
// 在这里获取到变化后的所以的服务列表
try {
getServerList();
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
});
} public void getServerList() throws KeeperException, InterruptedException {
// 1、获取服务器字节点信息,并且对父节点进行监控
List<String> children = zk.getChildren(parentNode, true); // 2、存储服务器信息列表
ArrayList<String> servers = new ArrayList<>(); // 3、遍历所有节点,获取节点中的主机名称信息
for (String child : children) {
byte[] data = zk.getData(parentNode + "/" + child, false, null);
servers.add(new String(data));
} // 4、打印服务器列表信息
System.out.println(servers); } // 业务功能
public void business() throws InterruptedException {
System.out.println("Clinet is working ...");
Thread.sleep(Long.MAX_VALUE);
} public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
DistributeClinet clinet = new DistributeClinet();
clinet.getConnect();
clinet.getServerList();
clinet.business();
} }
4.测试
启动服务器端,与客户端
在客户端监看,服务器端的变化。
大数据(7) - zookeeper的安装与使用的更多相关文章
- 2020/4/26 大数据的zookeeper分布式安装
大数据的zookeeper分布式安装 **** 前面的文章已经提到Hadoop的伪分布式安装.现在就在原有的基础上安装zookeeper. 首先启动Hadoop平台 [root@master ~]# ...
- 【大数据之数据仓库】安装部署GreenPlum集群
本篇将向大家介绍如何快捷的安装部署GreenPlum测试集群,大家可以跟着我一块儿实践一把^_^ 1.主机资源 申请2台网易云主机,操作系统必须是RedHat或者CentOS,配置尽量高一点.如果是s ...
- 大数据入门:Hadoop安装、环境配置及检测
目录 1.导包Hadoop包 2.配置环境变量 3.把winutil包拷贝到Hadoop bin目录下 4.把Hadoop.dll放到system32下 5.检测Hadoop是否正常安装 5.1在ma ...
- 大数据之 ZooKeeper原理及其在Hadoop和HBase中的应用
ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是Google Chubby的开源实现.分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知. ...
- 大数据(9) - Flume的安装与使用
Flume简介 --(实时抽取数据的工具) 1) Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集.聚集.移动的服务,Flume只能在Unix环境下运行. 2) Flume基于流式架构 ...
- 大数据~说说ZooKeeper
一些概念 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase和Kafka重要组件.它是一个为分布式应用提供一致性 ...
- 【大数据作业九】安装关系型数据库MySQL 安装大数据处理框架Hadoop
作业要求:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3161 4.简述Hadoop平台的起源.发展历史与应用现状. 列举发展过程中 ...
- 大数据(13) - Spark的安装部署与简单使用
一 .Spark概述 官网:http://spark.apache.org 1. 什么是spark Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校 ...
- 【大数据】Zookeeper学习笔记
第1章 Zookeeper入门 1.1 概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. 1.2 特点 1.3 数据结构 1.4 应用场景 提供的服务包括:统 ...
随机推荐
- 解决SSH窗口关闭,linux上的应用也关闭
最近在应用linux上的服务的时候发现一个问题 使用SSH远程连接启动的应用在SSH关闭的时候也死掉了,网上查了一下原因 大致是说SSH在关闭的时候会发送一个终止的指令给应用,然后就停了 简要的解决办 ...
- EasyUI-子页面增加显示tabs的一个问题
在父页面点个链接能动态看到子页面的情况太简单,请看easyUI官网:http://www.jeasyui.com/tutorial/layout/tabs2.php现在说的是在子页面点个按钮也能触发增 ...
- 使用Material Design 创建App翻译系列---列表和卡片集的创建
上一篇是使用Material Design 创建App翻译系列--材料主题的使用(Using Material Theme),进入正题: 想要在应用里创建Material Design风格的复杂列表和 ...
- 以JPanel为基础实现一个图像框
代码: import java.awt.Graphics; import javax.swing.ImageIcon; import javax.swing.JPanel; public class ...
- maven镜像制作
故事背景: 需要在客户现场部署测试demo,由于部署环境不提供外网环境,应用所需依赖无法通过外网下载. 初步的解决方案,在本地起一个maven的容器,将代码copy到maven的容器内,进行打包操作, ...
- activemq5.14.5单节点安装Demo
什么情况下使用ActiveMQ? 1 多个项目之间集成 (1) 跨平台 (2) 多语言 (3) 多项目 2 降低系统间模块的耦合度,解耦 软件扩展性 3 系统前后端隔离 前后端 ...
- Tomcat从零开始(十七)——StandardWrapper
第十七课:StandardWrapper 课前复习: 不知道大家是否还有印象,就是在6.7节课说的4种container,粗略的从大到小来说就是engine,host,context,和wrapper ...
- iOS NSFileManager对沙盒文件及目录添加删除操作
iOS 使用 NSFileManager对沙盒里面的文件和目录,增加,修改,删除操作: - (void)viewDidLoad { [super viewDidLoad]; self.title = ...
- nodejs之SVG转图片下载方案
本文介绍在nodejs基础上.怎样实现将svg转为png并下载的功能. 所需Webkit和node module简单介绍: phantomjs:一个基于WebKit的server端JavaScript ...
- es6常用数组操作及技巧汇总
定义数组 const array = [1, 2, 3]; // 或者 const array = new Array(); array[0] = '1'; 检测数组 Array.isArray([] ...