E.1   安装Kafka

E.1.1    下载Kafka

Kafka是由LinkedIn设计的一个高吞吐量、分布式、基于发布订阅模式的消息系统,使用Scala编写,它以可水平扩展、可靠性、异步通信和高吞吐率等特性而被广泛使用。目前越来越多的开源分布式处理系统都支持与Kafka集成,其中Spark Streaming作为后端流引擎配合Kafka作为前端消息系统正成为当前流处理系统的主流架构之一。

Kafka安装包可以在其官网下载页面下载,下载地址如下,为加快下载速度可以选择中国境内的镜像,选择稳定版本kafka_2.11-0.9.0.1.tgz安装包。

http://kafka.apache.org/downloads.html

E.1.2    解压并配置环境变量

下载后把安装包方放在目录/home/spark/work目录下,用下面命令解压缩Kafka安装包,并把解压后的目录移动到/app/soft目录下:

$cd /home/spark/work/

$tar -zxf kafka_2.11-0.9.0.1.tgz

$mv kafka-0.9.0.1 /app/soft

$ll /app/soft

为了方便运行Kafka相关脚本,将Kafka的bin路径加入到/etc/profile中,设置如下内容(分发到各节点后,在各节点上做同样设置):

export KAFKA_HOME=/app/soft/kafka-0.9.0.1

export PATH=$PATH:$KAFKA_HOME/bin

设置完毕后使用如下命令使配置生效:

$source /etc/profile

E.1.3    修改Kafka的配置文件

在Kafka的根目录下建立log目录用于存放日志文件:

$mkdir /app/soft/kafka-0.9.0.1/logs/

修改$KAFKA_HOME/config/server.properties配置文件内容(仅列出重要配置):

################ Server Basics ################

,slave1节点设置为1,slave2节点设置为2

broker.id=1

################ Socket Server Settings ################

#broker用于接收producer消息的端口

port=9092

#broker的hostname

host.name=master

#配置PRODUCER/CONSUMER连上来的时候使用的地址

advertised.host.name=master

################ Log Basics ################

#kafka存放消息文件的路径

log.dirs=/app/soft/kafka-0.9.0.1/logs/

#topic的默认分区数

num.partitions=2

################ ZooKeeper ################

#ZooKeeper集群连接地址信息

zookeeper.connect=master:2181,slave1:2181,slave2:2181

#连接ZooKeeper超时时间,单位为毫秒

zookeeper.connection.timeout.ms=6000

E.1.4    分发Kafka到各节点

使用scp命令到Kafka分发到slave1和slave2节点上:

$cd /app/soft/kafka-0.9.0.1

$scp -r kafka-0.9.0.1 spark@slave1:/app/soft

$scp -r kafka-0.9.0.1 spark@slave2:/app/soft

分发完毕后,修改server.properties配置文件中broker.id、host.name、advertised.host. name和zookeeper.connect等配置项。

E.2   启动并验证

1.  启动ZooKeeper

分别在master、slave1和slave2节点上启动ZooKeeper服务:

$zkServer.sh start

2.  启动Kafka

分别在master、slave1和slave2节点上启动Kafka服务:

$kafka-server-start.sh $KAFKA_HOME/config/server.properties

图 附录E‑1 启动Kafka

3.  在master节点上新建主题Topic

$kafka-topics.sh --create --topic kafkaTopic --replication-factor 3 --partitions 2 --zookeeper master:2181

图 附录E‑2 在Kafka中创建主题

4.  在slave1模拟消息生产者,发送消息至Kafka

$kafka-console-producer.sh --broker-list master:9092 --sync --topic kafkaTopic

当消费者连接后,在发送消息的终端输入:hello kafka/who are you?

图 附录E‑3 slave1模拟消息生产者发送消息

5.  在slave2模拟消息消费者,显示消息的消费

$kafka-console-consumer.sh --zookeeper master:2181 --topic kafkaTopic --from-beginning

由于设置接收从开始到现在的消息,以前发送的消息也显示在slave2终端上。

图 附录E‑4 slave2模拟消息消费者收到消息

附录E 安装Kafka的更多相关文章

  1. PHP安装kafka插件

    在工作中我们经常遇到需要给php安装插件,今天把php安装kafka的插件的步骤整理下,仅供大家参考 1:需要先安装librdkafka git clone https://github.com/ed ...

  2. Windows 安装Kafka

    Windows 7 安装Apache kafka_2.11-0.9.0.1     下载所需文件 Zookeeper: http://www.apache.org/dyn/closer.cgi/zoo ...

  3. Redis安装,mongodb安装,hbase安装,cassandra安装,mysql安装,zookeeper安装,kafka安装,storm安装大数据软件安装部署百科全书

    伟大的程序员版权所有,转载请注明:http://www.lenggirl.com/bigdata/server-sofeware-install.html 一.安装mongodb 官网下载包mongo ...

  4. ambari安装集群下安装kafka manager

    简介: 不想通过kafka shell来管理kafka已创建的topic信息,想通过管理页面来统一管理和查看kafka集群.所以选择了大部分人使用的kafka manager,我一共有一台主机mast ...

  5. 安装kafka过程及出现的问题解决

    第一步:下载kafka安装包 下载地址:http://kafka.apache.org/downloads 解压 到/usr/local 目录 tar -zxvf kafka_2.12-2.2.0 第 ...

  6. [转]Windows 安装Kafka

    来源:https://www.cnblogs.com/liuyuhua/p/5329926.html https://www.cnblogs.com/xinlingyoulan/p/6054361.h ...

  7. kubernetes(k8s) helm安装kafka、zookeeper

    通过helm在k8s上部署kafka.zookeeper 通过helm方法安装 k8s上安装kafka,可以使用helm,将kafka作为一个应用安装.当然这首先要你的k8s支持使用helm安装.he ...

  8. window上安装kafka(单机)

    1.第一步骤,先安装JDK,请参考:https://www.cnblogs.com/xubao/p/10692861.html 2.第二步骤,安装zookeeper,请参考:https://www.c ...

  9. linux 安装 kafka&zookeeper

    安装kafka 1,下载kafka. #cd /usr/local #wget wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.1.1 ...

随机推荐

  1. 为什么我如此热爱这样一个比赛(转自vici)

    为什么我如此的热爱这样一个比赛呢?因为它总能带给我一个目标,让我去努力实现它.因为可以看到胜利的希望,于是不断的去追逐.虽然其中的过程可能是比较艰辛的.   对于天才选手,作为天生的冠军,大概凭借天赋 ...

  2. [LintCode] Merge Two Sorted Lists 混合插入有序链表

    Merge two sorted (ascending) linked lists and return it as a new sorted list. The new sorted list sh ...

  3. easyui-conbotree树形下拉框。。。转

    最近一直在研究这个树形的下拉选择框,感觉非常的有用,现在整理下来供大家使用: 首先数据库的表架构设计和三级菜单联动的表结构是一样,(父子关系) 1.下面我们用hibernate建一下对应的额实体类: ...

  4. Python实战 :2017国考职业表excel转数据库,再查询生成excel

    最近看2017年国考的职业表,多而杂,不好过滤我想要的信息,特此把它转成Sqlite3数据库,再从数据库里把查询结果导出成excel,方便找职业. (后附上整套代码) 环境:python2.7   x ...

  5. (翻译)开始iOS 7中自动布局教程(二)

    这篇教程的前半部分被翻译出来很久了,我也是通过这个教程学会的IOS自动布局.但是后半部分(即本篇)一直未有翻译,正好最近跳坑翻译,就寻来这篇教程,进行翻译.前半部分已经转载至本博客,后半部分即本篇.学 ...

  6. linux查看发行版本

    redhat系 cat /etc/redhat-release 其他 lsb_release -a

  7. 最近碰到的一些 SSL 问题记录

    最近碰到一些 SSL 的小问题,特记录下. 我们有个 Java 实现的 SSL TCP 服务端,为客户端(PC.Android 和 iOS)提供 SSL 接入连接服务.最近有用户反馈其手机上 App ...

  8. 免费图片存储和图话【提供demo下载】

    我们不管是做博客系统还是其他网站,图片是免不了要使用到的.但是,我们都知道图片的访问是很耗资源的,同时也是很占磁盘空间的,且还特别占带宽. 所以,我们一般都会用到特定的图片服务器.不过,像我等屌丝平时 ...

  9. GIT常用命令笔记

    最近在做了一个自己的项目.两个人合作的,所以需要用到版本管理工具.本来打算学一下自己搭建svn的,后来朋友推荐我用git,免费,流行,好用,逼格.所以就学习了一下.发现这个git与已经使用惯了的svn ...

  10. 你所不知道的JavaScript数组

    相信每一个 javascript 学习者,都会去了解 JS 的各种基本数据类型,数组就是数据的组合,这是一个很基本也十分简单的概念,他的内容没多少,学好它也不是件难事情.但是本文着重要介绍的并不是我们 ...