1部署zookeeper

ZooKeeper的安装模式分为三种,分别为:单机模式(stand-alone)、集群模式和集群伪分布模式。

1、运行环境:ZooKeeper 要求 JAVA 6 以上的环境才能运行,并对JAVA 环境变量进行设置。

java安装路径最好不要包含空格

2、下载:从Apache官方网站下载一个ZooKeeper 的最近稳定版本(http://hadoop.apache.org/zookeeper/releases.html )。

    作为国内用户来说,选择最近的的源文件服务器所在地,能够节省不少的时间:http://labs.renren.com/apache-mirror//hadoop/zookeeper/

    我下载了zookeeper-3.4.12.tar.gz

3、解压:得到zookeeper-3.4.12

4、配置:

     ZooKeeper 服务器包含在单个 JAR 文件中,安装此服务需要用户创建一个配置文档,并对其进行设置。

  1. zookeeper-3.4.12/conf下有zoo_sample.cfg,复制1份,可重命名为zoo.cfg
  2. 打开zoo.cfg 修改如下:
    #基本事件单元,以毫秒为单位。它用来指示心跳,最小的 session 过期时间为两倍的 tickTime
    tickTime=2000
    #存储内存中数据库快照的位置,如果不设置参数,更新事务日志将被存储到默认位置
    dataDir=E:\zookeeper-3.4.\data\
    #监听客户端连接的端口
    clientPort=

    使用单机模式时用户需要注意:这种配置方式下没有 ZooKeeper 副本,所以如果 ZooKeeper 服务器出现故障, ZooKeeper 服务将会停止。

5、集群模式:

  为了获得可靠的 ZooKeeper 服务,用户应该在一个集群上部署 ZooKeeper 。只要集群上大多数的ZooKeeper 服务启动了,那么总的 ZooKeeper 服务将是可用的。另外,最好使用奇数台机器。 如果 zookeeper拥有 5 台机器,那么它就能处理 2 台机器的故障了。

  每台机器上 conf/zoo.cfg 配置文件的参数设置参考:

tickTime=
dataDir=D:\data\zookeeper\
clientPort=
initLimit=
syncLimit=
server.=zoo1::
server.=zoo2::
server.=zoo3::

  “ server.id=host:port:port. ”指示了不同的 ZooKeeper 服务器的自身标识,作为集群的一部分的机器应该知道 ensemble 中的其它机器。用户可以从“ server.id=host:port:port. ”中读取相关的信息。 在服务器的 data( dataDir 参数所指定的目录)目录下创建一个文件名为 myid 的文件,这个文件中仅含有一行的内容,指定的是自身的 id 值。比如,服务器“ 1 ”应该在 myid 文件中写入“ 1 ”。这个 id 值必须是 ensemble 中唯一的,且大小在 1 到 255 之间。这一行配置中,第一个端口( port )是从( follower )机器连接到主( leader )机器的端口,第二个端口是用来进行 leader 选举的端口。在这个例子中,每台机器使用三个端口,分别是: clientPort ,2181 ; port , 2888 ; port , 3888 。

6、集群伪分布  

在单机下模拟集群的ZooKeeper服务

在 zookeeper 配置文档中, clientPort参数用来设置客户端连接 zookeeper 的端口。

server.1=IP1:2887:3887 中,

IP1 指示的是组成 ZooKeeper 服务的机器 IP 地址,

2887 为用来进行 leader 选举的端口,

3887 为组成 ZooKeeper 服务的机器之间通信的端口。

集群伪分布模式我们使用每个配置文档模拟一台机器,也就是说,需要在单台机器上运行多个 zookeeper 实例。

但是,我们必须要保证各个配置文档的 clientPort 不能冲突。

下面是我们所配置的集群伪分布模式,通过 zoo1.cfg , zoo2.cfg , zoo3.cfg 模拟了三台机器的 ZooKeeper集群。

zoo1.cfg:

tickTime=2000
initLimit=
syncLimit=5
#注意路径格式
dataDir=E:/zookeeper-3.4.12/data/1
clientPort=
server.=localhost::
server.=localhost::
server.=localhost::

zoo2.cfg:

tickTime=
initLimit=
syncLimit=dataDir=E:/zookeeper-3.4.12/data/2
clientPort=
server.=localhost::
server.=localhost::
server.=localhost::

zoo3.cfg:

tickTime=
initLimit=
syncLimit=dataDir=E:/zookeeper-3.4.12/data/3
clientPort=
server.=localhost::
server.=localhost::
server.=localhost::
E:\zookeeper-3.4.12\data\1\myid、2\myid、3\myid中写对应得数字:1、2、3即可

启动配置:zkServer.cmd同样复制三份:zkServer-1.cmd、zkServer-2.cmd、zkServer-3.cmd

在每份配置中增加对应的配置文件:

set ZOOCFG=..\conf\zoo1.cfg

set ZOOCFG=..\conf\zoo2.cfg

set ZOOCFG=..\conf\zoo3.cfg

@echo off
REM Licensed to the Apache Software Foundation (ASF) under one or more
REM contributor license agreements. See the NOTICE file distributed with
REM this work for additional information regarding copyright ownership.
REM The ASF licenses this file to You under the Apache License, Version 2.0
REM (the "License"); you may not use this file except in compliance with
REM the License. You may obtain a copy of the License at
REM
REM http://www.apache.org/licenses/LICENSE-2.0
REM
REM Unless required by applicable law or agreed to in writing, software
REM distributed under the License is distributed on an "AS IS" BASIS,
REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
REM See the License for the specific language governing permissions and
REM limitations under the License. setlocal
call "%~dp0zkEnv.cmd" set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain
set ZOOCFG=..\conf\zoo1.cfg
echo on
call %JAVA% "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%" %* endlocal

7、启动:

运行:E:\zookeeper-3.4.12\bin\zkServer.cmd

伪集群则运行三个:zkServer-1.cmd、zkServer-2.cmd、zkServer-3.cmd

8、可以为zookeeper添加环境变量:

    ZOOKEEPER_HOME: D:\zookeeper-3.4.8 
   Path: 在现有的值后面添加 ;%ZOOKEEPER_HOME%\bin;

9、运行过程遇到的问题:

dataDir路径配置错误,导致启动失败,报文件找不到,
应该是linux路径写法:E:/zookeeper-3.4.12/data/1 而不是
E:\zookeeper-3.4.12\data\1

2 安装运行kafka

 1 下载安装文件: http://kafka.apache.org/downloads.html

2 解压文件(本文解压得到 E:\kafka_2.11-1.1.0) 

3 打开E:\kafka_2.11-1.1.0\config\server.properties 

4 把 log.dirs的值改成 log.dirs=E:\
kafka_2.11-1.1.0\data\logs\kafka 
5 E:\kafka_2.11-1.1.0\bin文件夹下的.sh命令脚本是在shell下运行的,此文件夹下还有个 windows文件夹,里面是windows下运行的.bat命令脚本 

6 在E:\
kafka_2.11-1.1.0文件夹中”Shift+鼠标右键”点击空白处打开命令提示窗口 

7 输入并执行一下命令以打开kafka:
.\bin\windows\kafka-server-start.bat .\config\server.properties

启动报错:

解决方案:E:\kafka_2.11-1.1.0\bin\windows\kafka-run-class.bat,找到:

rem JVM performance options
IF ["%KAFKA_JVM_PERFORMANCE_OPTS%"] EQU [""] (
set KAFKA_JVM_PERFORMANCE_OPTS=-server -XX:+UseG1GC -XX:MaxGCPauseMillis= -XX:InitiatingHeapOccupancyPercent= -XX:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true
)

去掉

-XX:+UseG1GC 

kafka window环境搭建的更多相关文章

  1. kafka单机环境搭建及其基本使用

    最近在搞kettle整合kafka producer插件,于是自己搭建了一套单机的kafka环境,以便用于测试.现整理如下的笔记,发上来和大家分享.后续还会有kafka的研究笔记,依然会与大家分享! ...

  2. window环境搭建zookeeper,kafka集群

    为了演示集群的效果,这里准备一台虚拟机(window 7),在虚拟机中搭建了单IP多节点的zookeeper集群(多IP节点的也是同理的),并且在本机(win 7)和虚拟机中都安装了kafka. 前期 ...

  3. Kafka 分布式环境搭建

    这篇文章将介绍如何搭建kafka环境,我们会从单机版开始,然后逐渐往分布式扩展.单机版的搭建官网上就有,比较容易实现,这里我就简单介绍下即可,而分布式的搭建官网却没有描述,我们最终的目的还是用分布式来 ...

  4. Kafka开发环境搭建(五)

    如果你要利用代码来跑kafka的应用,那你最好先把官网给出的example先在单机环境和分布式环境下跑通,然后再逐步将原有的consumer.producer和broker替换成自己写的代码.所以在阅 ...

  5. Kafka分布式环境搭建 (二)赞

    这篇文章将介绍如何搭建kafka环境,我们会从单机版开始,然后逐渐往分布式扩展.单机版的搭建官网上就有,比较容易实现,这里我就简单介绍下即可,而分布式的搭建官网却没有描述,我们最终的目的还是用分布式来 ...

  6. Kafka单机版环境搭建

    使用版本:kafka_2.10-0.8.1.1 安装: -0.8.1.1.tgz -C ~/app/ 添加环境变量:.bash_profile export KAFKA_HOME=/home/spar ...

  7. kafka的环境搭建

    kafka是一个高吞吐量的消息系统.隔离消息接收和处理过程(可理解为一个缓存) 1.kafka伪分布的部署 1.1.下载并解压 1.2.启动zk bin/zookeeper-server-start. ...

  8. kafka windows环境搭建 测试

    http://www.cnblogs.com/alvingofast/p/kafka_deployment_on_windows.html 照着例子搭建成功

  9. kafka window环境下使用(内置zookeeper)

    下载 kafka 官网下载最新版本(已集成 zookeeper) 解压到 D 盘的 kafka_2.12-2.3.0 运行 zookeeper 执行 zookeeper 运行命令 D:\kafka_2 ...

随机推荐

  1. 第四章 TCP粘包/拆包问题的解决之道---4.2--- 未考虑TCP粘包导致功能异常案例

    4.2 未考虑TCP粘包导致功能异常案例 如果代码没有考虑粘包/拆包问题,往往会出现解码错位或者错误,导致程序不能正常工作. 4.2.1 TimeServer 的改造 Class : TimeServ ...

  2. VIM_manual

    VIM命令---Vi IMproved, a programmers text editor文本编辑 vim不同模式切换 输入模式 末行模式 光标移动 复制-粘贴-删除 可视模式 末行模式下的操作 v ...

  3. mysql 行转列 (case when的使用)

    现有 table1 如下 table2 如下 需要统计:各个部门每个月的绩效总和 实现如下:

  4. 使用dshow捕获摄像头图像

    #include "stdafx.h" #include <DShow.h> #include <Guiddef.h> #include <strmi ...

  5. Selenium 选项卡管理

    什么是选项卡: from selenium import webdriver browser = webdriver.Chrome() browser.get("http://www.bai ...

  6. [Linux] 特殊文件 /dev/zero

    /dev/zero 是类 Unix 系统中一个特殊的文件,当读取该文件时,它会提供无限的空字符 null.它的一个主要用途是提供字符流来初始化数据存储,也就是使用空字符覆盖目标数据.另一个常见的用法是 ...

  7. lua中的字符串操作(模式匹配)

    (一). 模式匹配函数在string库中功能最强大的函数是:string.find(字符串查找)string.gsub(全局字符串替换)string.gfind(全局字符串查找)string.gmat ...

  8. 基于thinkphp和ajax的省市区三级联动

    练习,就当练习. 省市区三级联动,样式如下图所示: 1,导入两个js文件并且导入数据库文件. 两个js文件分别是jquery-2.1.4.min.js和jquery-1.js,数据库文件,见附件. 2 ...

  9. 【Python3】 使用django 2.0 + python3.6.4 创建应用

    python版本:3.6.4 django版本:2.0 1 创建应用 输入命令 python manage.py startapp blog 2 在项目目录创建 templates文件夹 用于存放我们 ...

  10. Sencha Touch 实战开发培训 电子书 基础篇

    本期课程基于Sencha Touch 2.4.1,属于新手实战入门课程,侧重于实用性. 课程目录: 开源Demo:https://bitbucket.org/moLangZaiShi/demo 本课程 ...