java系列之zokeeper与kafka安装使用
2017-01-11 10:01
369 查看
最近正在搞元数据架构,学了一下zookeeper和kafka,在这里把它们的搭建方法记录一下,以便供大家和自己以后参考。 zookeeper:顾名思义,动物园管理者,国外程序猿爱把各种软件起一个动物的名字,诸如tomcat之类的;因此可以把zookeeper当做 是一个管理各种软件的工具,在这里只介绍一下zookeeper管理kafka的示例,其他的大家可以自行研究。 下载zookeeper后可以直接运行zkserver(需要先建一个配置文件zoo.cfg[可直接复制备份文件]);
启动client(默认启动本地和接口)后可通过ls /来查看当前目录下的结构;
(说白了,各个node上其实存放的就是一个目录结构而已)(所以是可以创建结构的应该)
http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.5.2-alpha/zookeeper-3.5.2-alpha.tar.gz
kafka:消息队列,简单点说,就是发送消息,一方发送,乙方接收; 至于kafka的原理可参考: http://www.infoq.com/cn/articles/apache-kafka http://cailin.iteye.com/blog/2014486/
安装方法可参考:http://blog.csdn.net/evankaka/article/details/52421314(windows)
http://czj4451.iteye.com/blog/2041096(linux)
以上网址中的博客已经把操作步骤写的很清楚了,我也就不再赘述了,大家可以参照博客中的方法进行安装和运行;
当然了,安装并运行软件永远都不是最终目的,程序猿的最终目的是要在代码上自动运行才是关键;
该项目主要是添加节点,监听节点以及删除节点;
首先将zookeeper的server服务端启动,即可运行下面的项目
然后可以启动zookeeper的client端来查看当前的服务节点,其实就是目录结构;
只需要在pop.xml中加入
<dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> </dependency> </dependencies>
package com.zoo; import java.util.Arrays; import java.util.List; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooDefs; import org.apache.zookeeper.ZooKeeper; //启动客户端之后输入ls+空格+/ public class ZookeeperTest { // 根节点 public static final String ROOT = "/root-ktv1"; public static void main(String[] args) throws Exception { // 创建一个与服务器的连接 Watcher watcher = new Watcher(){ public void process(WatchedEvent event) { System.out.println("状态:" + event.getState()+":"+event.getType()+":"+event.getWrapper()+":"+event.getPath()); } }; ZooKeeper zk = new ZooKeeper("localhost:2181", 300, watcher); // 创建一个总的目录ktv,并不控制权限,这里需要用持久化节点,不然下面的节点创建容易出错 zk.create(ROOT, "root-ktv1".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); // 然后杭州开一个快递 , PERSISTENT_SEQUENTIAL 类型会自动加上 0000000000 自增的后缀 zk.create(ROOT+"/杭州快递", "杭州快递".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL); // 也可以在北京开一个, EPHEMERAL session 过期了就会自动删除 zk.create(ROOT+"/北京快递", "北京快递".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL); // 同理,我可以在北京开多个,EPHEMERAL_SEQUENTIAL session 过期自动删除,也会加数字的后缀 zk.create(ROOT+"/北京快递-分店", "北京快递-分店".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL); // 我们也可以 来看看 一共监视了多少家的ktv List<String> ktvs = zk.getChildren(ROOT, true); System.out.println(Arrays.toString(ktvs.toArray())); for(String node : ktvs){ // 删除节点 zk.delete(ROOT+"/"+node,-1); } // 根目录得最后删除的 zk.delete(ROOT, -1); zk.close(); } }
以后再加几个java以及与springmvc合成的例子,今天先写到这儿
下面写一个kafka的例子:
http://blog.csdn.net/evankaka/article/details/52494412
不知道为什么我的消费者老是接收不到信息,大伙儿有跑起来的可以给我留个言啊
正好需要(查看zokeeper和kafka的进程是否启动),先记录一下windows和linux简单查看进行的方法
windows:(通过搜索端口)
1)查看占用8080端口的进程号
netstat –aon | findstr “8080”
结果:TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 3500
可知,进程号为3500的进程占用了8080端口
可以使用命令 tasklist | findstr “3500”进一步查看3500进程的具体信息。
tasklist | findstr “3500”
结果:javaw.exe 3500 Console 0 28,792 K
可知3500进程为javaw.exe。
2)杀掉进程
tskill 3500
linux:ps aux | grep ‘zookeeper’
相关文章推荐
- 燃烧的远征java(二)-开发环境:Eclipse插件系列——SQLExplorer插件的安装和使用
- java9学习系列之安装与jshell使用
- java环境搭建系列:JDK从下载安装到简单使用
- kafka系列之安装及初步使用,单节点部署使用(一)
- java环境搭建系列:JDK从下载安装到简单使用
- java环境搭建系列:JDK从下载安装到简单使用
- Java工具包的安装配置和使用
- jsp使用自定义标签taglib分页系列——TRTag.java
- Java中使用MySQL从安装、配置到实际程序测试详解
- jsp使用自定义标签taglib分页系列——TableTag.java
- jsp使用自定义标签taglib分页系列——TableBase.java
- JAVA/JSP学习系列之二(Tomcat安装)
- jsp使用自定义标签taglib分页系列——ListTag.java
- JAVA/JSP学习系列之三(Resin+Apache的安装)
- JAVA/JSP学习系列之四(Orion App Server的安装)
- jsp使用自定义标签taglib分页系列——TDTag.java
- Java工具包的安装配置和使用
- JAVA程序模拟器安装及使用详细教程
- JAVA/JSP学习系列之一(JDK安装)-
- Java中使用MySQL从安装、配置到实际程序测试详解