Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。这个独特的设计是什么样的呢?

首先让我们看几个基本的消息系统术语:

•Kafka将消息以topic为单位进行归纳。
•将向Kafka topic发布消息的程序成为producers.
•将预订topics并消费消息的程序成为consumer.
•Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker.
producers通过网络将消息发送到Kafka集群,集群向消费者提供消息,如下图所示:

客户端和服务端通过TCP协议通信。Kafka提供了Java客户端,并且对多种语言都提供了支持。

说明:

操作系统:CentOS 6.x 64位

Kafka版本:kafka_2.11-0.8.2.1

实现目的:

单机安装配置kafka

具体操作:

一、关闭SELINUX、开启防火墙9092端口

1、关闭SELINUX

vi /etc/selinux/config

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存退出

setenforce 0 #使配置立即生效

2、配置防火墙,开启9092端口

vi /etc/sysconfig/iptables #编辑防火墙配置文件

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 9092 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

:wq! #保存退出

service iptables restart #最后重启防火墙使配置生效

二、安装JDK

kafka运行需要JDK支持

1、下载JDK

http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm

注意:直接复制到下载工具进行下载,版本请使用JDK7,JDK8有可能不兼容kafka_2.11-0.8.2.1

下载完成之后,上传到/usr/local/src目录下

2、安装JDK

cd /usr/local/src

chmod +x jdk-7u79-linux-x64.rpm # 添加执行权限

rpm -ivh jdk-7u79-linux-x64.rpm #安装

安装完成之后,可以cd /usr/java/ 到安装目录查看

3、添加JDK到系统环境变量

vi /etc/profile #编辑,在最后添加以下代码

JAVA_HOME=/usr/java/jdk1.7.0_79

PATH=$PATH:$JAVA_HOME/bin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin

CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

export JAVA_HOME

export PATH

export CLASSPATH

:wq! #保存退出

source /etc/profile #使配置文件立即生效

java -version #查看JDK版本信息

到此,JDK安装完成。

三、安装kafka

1、下载kafka

cd /usr/local/src

wget http://archive.apache.org/dist/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz

注意,kafka_2.11-0.8.2.1.tgz版本是已经编译好的版本,解压就能使用。

tar -xzvf kafka_2.11-0.8.2.1.tgz #解压

mv kafka_2.11-0.8.2.1 /usr/local/kafka #移动到安装目录

2、配置kafka

mkdir /usr/local/kafka/log/kafka #创建kafka日志目录

cd /usr/local/kafka/config #进入配置目录

vi server.properties #编辑修改相应的参数

broker.id=0

port=9092 #端口号

host.name=192.168.0.11 #服务器IP地址,修改为自己的服务器IP

log.dirs=/usr/local/kafka/log/kafka #日志存放路径,上面创建的目录

zookeeper.connect=localhost:2181 #zookeeper地址和端口,单机配置部署,localhost:2181

:wq! #保存退出

3、配置zookeeper

mkdir /usr/local/kafka/zookeeper #创建zookeeper目录

mkdir /usr/local/kafka/log/zookeeper #创建zookeeper日志目录

cd /usr/local/kafka/config #进入配置目录

vi zookeeper.properties #编辑修改相应的参数

dataDir=/usr/local/kafka/zookeeper #zookeeper数据目录

dataLogDir=/usr/local/kafka/log/zookeeper #zookeeper日志目录

clientPort=2181

maxClientCnxns=100

tickTime=2000

initLimit=10

syncLimit=5

:wq! #保存退出

四、创建启动、关闭kafka脚本

cd /usr/local/kafka

#创建启动脚本

vi kafkastart.sh #编辑,添加以下代码

#!/bin/sh

#启动zookeeper

/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties &

sleep 3 #等3秒后执行

#启动kafka

/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties &

:wq! #保存退出

#创建关闭脚本

vi kafkastop.sh #编辑,添加以下代码

#!/bin/sh

#关闭zookeeper

/usr/local/kafka/bin/zookeeper-server-stop.sh /usr/local/kafka/config/zookeeper.properties &

sleep 3 #等3秒后执行

#关闭kafka

/usr/local/kafka/bin/kafka-server-stop.sh /usr/local/kafka/config/server.properties &

:wq! #保存退出

#添加脚本执行权限

chmod +x kafkastart.sh

chmod +x kafkastop.sh

五、设置脚本开机自动执行

vi /etc/rc.d/rc.local #编辑,在最后添加一行

sh /usr/local/kafka/kafkastart.sh & #设置开机自动在后台运行脚本

:wq! #保存退出

sh /usr/local/kafka/kafkastart.sh #启动kafka

sh /usr/local/kafka/kafkastop.sh #关闭kafka

至此,Linux下Kafka单机安装配置完成。

扩展阅读:

Kafka创建topic

/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

/usr/local/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181 test

/usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test --from-beginning

转自:http://www.jb51.net/article/76397.htm

Linux下Kafka单机安装配置方法的更多相关文章

  1. Linux下Kafka单机安装配置方法(图文)

    Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了 ...

  2. Linux下Kafka单机安装配置

    安装jdkJDK版本大于1.8 安装kafkatar -zxvf kafka_2.11-0.10.2.1.tgz mv kafka_2.11-0.10.2.1 /usr/local/kafka 配置k ...

  3. ArcGIS 10.1 for Server安装教程系列—— Linux下的单机安装

    http://www.oschina.net/question/565065_81231      因为Linux具有稳定,功能强大等特性,因此常常被用来做为企业内部的服务器,我们的很多用户也是将Ar ...

  4. windows Sever 2012下Oracle 12c安装配置方法图文教程

    windows Sever 2012下Oracle 12c安装配置方法图文教程 Oracle 12c安装配置方法图文教程,具体内容如下 1.我们开启虚拟机 2.Windows Sever 2012启动 ...

  5. Linux 下编译并安装配置 Qt 4.53全过程

    最近准备做 Nokia 的 Symbian,Maemo 下触摸屏开发.考虑到程序的跨平台可移植性,最终选择使用 Qt 开发.相对来说,国内关于 Qt 相关文档并不算很多.作者将 Linux 下编译并安 ...

  6. Linux下PHP+MYSQL+APACHE配置方法

    apache: http://www.apache.org  mysql: http://www.mysql.com  php: http://www.php.net/downloads.php  g ...

  7. linux 下ftp的安装配置 图文教程

    0.安装ftp的前置条件是关掉SElinux # vi /etc/selinux/config 修改 SELINUX=” disabled ” ,重启服务器.若相同,则跳过此步骤. 1. 可先查看是否 ...

  8. Linux下DHCP服务安装配置

    简介 安装配置 一.简介 DHCP (Dynamic Host Configuration Protocol,动态主机管理协议)是一种基于UDP协议且仅限用于局域网的网络协议,主要用途是为局域网内部设 ...

  9. Linux下的Mysql安装 & 配置

    Hive的数据,是存在HDFS里的.此外,hive有哪些数据库,每个数据库有哪些表,这样的信息称之为hive的元数据信息. 元数据信息不存在HDFS里.而是存在关系型数据库里,hive默认用的是der ...

随机推荐

  1. js禁用"Backspace"键(即禁止网页倒退)

    项目遇到的一个问题一个普通网页,如果这个网页上没有焦点的话,那么点击"Backspace"键的时候,网页会回退(倒退到上一个网页),这样就会就有一个问题,当我在一个输入框进行输入的 ...

  2. 老郭带你学数据结构(C语言系列)2-线性表之动态顺序表

    一.基本概念: 线性表:由n个类型相同的数据元素组成的有限序列,记为(a1,a2,--an). 线性表的特征:其中的元素存在这序偶关系,元素之间存在着严格的次序关系. 顺序存储表:线性表中的元素依次存 ...

  3. Java发送邮件--web.xml配置,Java代码配置

    前言:我目前总结的使用java发送邮件的方式有两种,分别是在spring框架xml配置文件使用bean标签,另一种方法是把发送功能封装成一个对象,废话不多说上代码, 边看代码边讲解,希望对需要的人能有 ...

  4. 2017 ACM-ICPC EC-Final 记录

    北京赛区结束后就以为自己的赛季结束了……但是还是保持着做题量 那天突然接到通知,去打EC-Final 但是这是一个临时组起来的队伍,另外两位队友原来一起组的比较熟,我就需要适应一下. 于是我们临时训练 ...

  5. ByteBuffer的介绍

    转摘 有一个问题需要明确:为什么要使用bytebuffer,它比byte比起来有什么优点? 很简单:为了提高IO的效率.怎样提高的,这个还得google一下. 记住几个标志的含义:position[0 ...

  6. GCJ——Crazy Rows (2009 Round 2 A)

    题意: 给定一个N*N的矩阵,由0,1组成,只允许交换相邻的两行,把矩阵转化为下三角矩阵(对角线上方全是0),最少需要多少次交换?(保证可以转化为下三角矩阵) Large: N<=40 解析: ...

  7. 各语言最原始数据库访问组件封装DBHelper

    源码:https://github.com/easonjim/DBHelper bug提交:https://github.com/easonjim/DBHelper/issues 每个语言放在不同的分 ...

  8. JSONModel解析Dictionary To Model /JSON To Model

    你在把字典转成object的时候还在按下面这样: self.id = [jsonDict objectForKey:@"id"]; self.name = [jsonDict ob ...

  9. 单页js文件访问数据库

    最原始的编程方式,业务逻辑混杂在html中 <%@ page language="java" import="java.util.*" pageEncod ...

  10. goreplay使用

    最新版的发布公告:https://leonsbox.com/goreplay-v0-16-and-4th-anniversary-5408b1fd72e0 主要提到:中间件.报文解压.从kafka读取 ...