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. [转] NGUI自适应

    很多做移动终端开发的童鞋都可能遇到一个问题,就是如何自适应其实NGUI已经能帮我们实现,下面就告诉大家怎么整这个自适应.1,create a new ui 2,uiroot下添加uipanel(scr ...

  2. Android的WebView控件载入网页显示速度慢的究极解决方案

    Android的WebView控件载入网页显示速度慢的究极解决方案 [转载来源自http://hi.baidu.com/goldchocobo/] 秒(甚至更多)时间才会显示出来.研究了很久,搜遍了国 ...

  3. phonegap入门–2 Android phonegap工程建立

    一.环境要求: 需要安装Android ADT 二.支持Android相关设备列表: a)Android 2.1 (Deprecated May 2013) b)Android 2.2 c)Andro ...

  4. Spring boot配置log4j输出日志

    1. pom.xml文件中配置parent,版本选定[1.2.5.RELEASE] 关于为什么要选这个版本:我尝试使用[1.4.1.RELEASE],但该版本库里没有[spring-boot-star ...

  5. [C/E] 等差数列求和

    题目:要求给定一个整数 N,求从 0 到 N 之间所有整数相加之和. 解1:使用 for 循环依次递加. #include <stdio.h> int main(void){ int x; ...

  6. 微信小程序连续动画

    <view animation="{{animationData}}" style="background:red;height:100rpx;width:100r ...

  7. html中属于布尔类型的属性

    1.noshade,用来表示有无阴影,多用于在<hr />标签当中 2.ckecked,用来表示是否默认选中,多用于单选按钮<input type="radio" ...

  8. IOS 视频直播/智能家居(一行行敲代码,从零开始)lesson:1整体架构

    本文转载至 http://blog.csdn.net/u014011807/article/details/47144027 前段时间由于工作需要做了一个视频直播/智能家居类的应用.算是对iOS音视频 ...

  9. iOS - 实现语言本地化/国际化

      实现iOS语言本地化/国际化(图文详解) 前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往一些应用程序需要提供给多个 ...

  10. <转>python字典排序 关于sort()、reversed()、sorted()

    一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...