1. Kafka简介

  Kafka is a distributed,partitioned,replicated commit logservice。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者

为Consumer,此外kafka集群有多个kafka实例组成,每个实例成为broker。无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息。

  

2. ubuntu下安装Kafka

  环境说明: 

  1. os:Ubuntu 16.04

  2. zookeeper:zookeeper 3.4.13

  3. kafka:kafka_2.11-2.0.1

  4. jdk:jdk 8(kafka启动需要使用到jdk)

2.1 jdk安装

  jdk在安装是较为常见的,所以这里就不再详细介绍了。

2.2 zookeeper安装

  首先下载zookeeper,下载地址为:http://mirror.bit.edu.cn/apache/zookeeper/,如当前源不能访问,请自行更换其他源。如图:

  

  根据自己的需要的版本下载相应的.tar.gz文件,将下载的文件上传到服务器上。通过Xshell 6端,使用命令rz。

  解压文件:

  

  解压后进入conf文件夹,

  将zoo_sample.cfg拷贝一份为zoo.cfg

  如下:

  

  修改zoo.cfg文件:

  

  为zookeeper配置环境变量:

vim /etc/profile
export ZOOKEEPER_HOME=/usr/local/middle/zookeeper-3.4.
export PATH=.:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH

  

保存退出

  使用zkServer.sh start启动zookeeper服务:

  

启动成功,配置正确,然后关闭服务zkServer.sh stop

2.3 安装配置Kafka单机模式

  下载Kafka,下载地址为:http://mirror.bit.edu.cn/apache/kafka/2.0.1/,如果源不可用,自行更换其他源。如图:

  

  下载自己需要的版本

  将下载的Kafka上传到服务器,使用如下命令解压:

tar -zxvf kafka_2.-2.0..tgz 

  解压后进入到config文件夹,如下:

  

  分别配置三个文件:

  server.properties:

  主要配置以下几项,其他的都按默认配置即可

broker.id=
#指定端口
port=
#指定主机
host.name=localhost
#数据存储位置
log.dirs=/usr/local/middle/kafka_2.-2.0./kafka-logs
#连接zookeeper配置项,这里指定的是单机,所以只需要配置localhost,若是实际生产环境,需要在这里添加其他ip地址和端口号
zookeeper.connect=localhost:

  如图:

·

  zookeeper.properties配置:

  

  producer.properties配置:

  

  consumer.properties配置:

  

  启动kafka:

  1. 启动zookeeper服务

  进入kafka根目录,使用如下命令启动zookeeper。

bin/zookeeper-server-start.sh config/zookeeper.properties

  如图:

  会执行环境变量配置的zk,出现如上图所示表示启动成功。

  新开一个会话启动kafka,使用如下命令:

bin/kafka-server-start.sh config/server.properties

  如下图: 

 

  出现如上图则表示kafka启动成功。

  至此,单机的Kafka安装完成了。

Kafka学习笔记(1)----Kafka的简介和Linux下单机安装的更多相关文章

  1. Kafka学习笔记之Kafka背景及架构介绍

    0x00 概述 本文介绍了Kafka的创建背景,设计目标,使用消息系统的优势以及目前流行的消息系统对比.并介绍了Kafka的架构,Producer消息路由,Consumer Group以及由其实现的不 ...

  2. Kafka学习笔记之Kafka三款监控工具

    0x00 概述 在之前的博客中,介绍了Kafka Web Console这 个监控工具,在生产环境中使用,运行一段时间后,发现该工具会和Kafka生产者.消费者.ZooKeeper建立大量连接,从而导 ...

  3. Kafka学习笔记之Kafka性能测试方法及Benchmark报告

    0x00 概述 本文主要介绍了如何利用Kafka自带的性能测试脚本及Kafka Manager测试Kafka的性能,以及如何使用Kafka Manager监控Kafka的工作状态,最后给出了Kafka ...

  4. Kafka学习笔记之Kafka Consumer设计解析

    0x00 摘要 本文主要介绍了Kafka High Level Consumer,Consumer Group,Consumer Rebalance,Low Level Consumer实现的语义,以 ...

  5. Kafka学习笔记1——Kafka的安装和启动

    一.准备工作 1. 安装JDK 可以用命令 java -version 查看版本

  6. 分布式缓存技术redis学习(一)——redis简介以及linux上的安装

    redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...

  7. Linux下单机安装部署kafka及代码实现

    技术交流群:233513714 这几天研究了kafka的安装及使用,在网上找了很多教程但是均以失败告终,直到最后想起网络方面的问题最终才安装部署成功,下面就介绍一下kafka的安装部署及代码实现 一. ...

  8. Kafka学习笔记之Kafka High Availability(上)

    0x00 摘要 Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务.若该Broker永 ...

  9. Kafka学习笔记之Kafka High Availability(下)

    0x00 摘要 本文在上篇文章基础上,更加深入讲解了Kafka的HA机制,主要阐述了HA相关各种场景,如Broker failover,Controller failover,Topic创建/删除,B ...

随机推荐

  1. linux vi面板如何复制一行

    linux vi面板如何复制一行 1)把光标移动到要复制的行上 2)按yy 3)把光标移动到要复制的位置 4)按p

  2. (转载)关于初学者上传文件到github的方法

    说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午.终于可以上传了,所以今天写点,一来分享是自己的一些经验,二来也是做个记录,万一哪天又不记得了:) 废话不多说,直接来,这次主要介绍 ...

  3. FreeMarker基本使用

    FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 l         FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序 ...

  4. java反射并不是什么高深技术,面向对象语言都有这个功能,而且功能也很简单,就是利用jvm动态加载时生成的class对象

    java反射并不是什么高深技术,面向对象语言都有这个功能. 面向对象语言都有这个功能,而且功能也很简单,就是利用jvm动态加载时生成的class对象,去获取类相关的信息 2.利用java反射可以调用类 ...

  5. android中常见的内存泄漏和解决的方法

    android中的内存溢出预计大多数人在写代码的时候都出现过,事实上突然认为工作一年和工作三年的差别是什么呢.事实上干的工作或许都一样,产品汪看到的结果也都一样,那差别就是速度和质量了. 写在前面的一 ...

  6. 一个使用命令行编译Android项目的工具类

    一个使用命令行编译Android项目的工具类 简单介绍 编译apk项目须要使用的几个工具,基本都在sdk中,它们各自是(Windows系统): 1.aapt.exe 资源打包工具 2.android. ...

  7. 随机获取一个集合(List, Set)中的元素,随机获取一个Map中的key或value

    利用Java提供的Random类.从List或Set中随机取出一个元素,从Map中随机获取一个key或value. 因为Set没有提供get(int index)方法,仅仅能先获取一个随机数后.利用一 ...

  8. jquery非文本框复制

    function selectText(x) { if (document.selection) { var range = document.body.createTextRange();//ie ...

  9. Window上python 开发--1.搭建开发环境

    事实上在开发python最好在ubuntu环境下,简单也便于扩展各个package.可是我的linux的电脑临时不在身边.还的我老婆的电脑win7没办法啊. 因为python的跨平台性.在window ...

  10. LeetCode总结 -- 树的遍历篇

    遍历树的数据结构中最常见的操作. 能够说大部分关于树的题目都是环绕遍历进行变体来解决的. 一般来说面试中遇到树的题目是用递归来解决的, 只是假设直接考察遍历. 那么一般递归的解法就过于简单了. 面试官 ...