大数据(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 应用场景 提供的服务包括:统 ...
随机推荐
- Java笔记17:导出可执行jar包
这里介绍Java程序的两种导出可执行jar包的方式,一种是图形界面打包,另一种是命令行打包. 一.图形界面打包 1 建立名为JarDemo的JavaProject,在src目录下建立com.abc的P ...
- Appium九宫格滑动解锁
1.适配各种机型,首先获取整个解锁元素的坐标 2.代码实现 WebElement lockPattern = driver.findElement(By.id("com.android.se ...
- 转:ios的图片文件上传代码
转自: https://gist.github.com/igaiga/1354221 @interface ImageUploader : NSObject { NSData *theImage; } ...
- minic 动作句型处理
#include "lex_define.h" enum keywords_type//代表一些关键字 { loop_for=,//代表for关键字 loop_while,//代表 ...
- Android 解决qq分享后返回程序出现的Bug
问题:当我们使用qq分享时,分享成功后选择留在qq,这个时候按home键,回到手机主界面,在点击回到我的app,这个时候会出现界面显示出来了,但是任何事件都不响应,即按钮没反应. 分析:这个时候回到我 ...
- 保存登陆username和password
在一些软件中登陆时保存username和password是常见的功能,它实现起来也特别简单,其原理就是在点击登陆button时推断是否勾选保存password选项,假设勾选,则在内存中保存一份包括us ...
- win7 linux双系统删除linux
本文内容收集自互联网,共两篇,中间以“分界线”进行分割. linux的卸载 一.win7与linux都使用grub来引导 卸载:不能直接删除ubuntu分区,这样会造成win7也启动不了 正确方法: ...
- (一)Solr——简介和安装配置
1. solr简介 1.1 Solr是什么 Solr是apache的顶级开源项目,它是使用java开发 ,基于lucene的全文检索服务器. Solr和lucene的版本是同步更新的,最新的版本是7. ...
- 通过设置标签class值控制标签的显示与隐藏
需求背景如下: 原项目居民.单位.计量三模块共用一个jsp文件,显示的页面也顺理成章的统一了,幸亏没有调用同一个js,在此基础上要求居民和单位计量的分离,即居民的显示居民的相关信息,单位和计量的显示相 ...
- Bootstrap学习 进度条
本文将介绍Bootstrap进度条,在本文中你将看到如何使用Bootstrap创建加载,重定向或动作状态的进度条 bootstrap进度条使用CSS3过渡和动画来获得该效果.Internet Expl ...