kafak集群安装-转
前言
最近在利用Spark streaming
和Kafka
构建一个实时的数据分析系统,对图书阅读数据进行分析,做实时推荐。Spark Streaming 模块是对于 Spark Core 的一个扩展,目的是为了以高吞吐量,并且容错的方式处理持续性的数据流。目前 Spark Streaming 支持的外部数据源有 Flume、 Kafka、Twitter、ZeroMQ、TCP Socket 等。Apache Kafka
是一个分布式的消息发布-订阅系统,Kafka可以作为流计算系统的数据源,本例中Spark Streaming
将从Kafka
中消费数据。
系统环境
软件版本
1 2 3 |
Spark: 1.4.1 Kafka: 0.8.1.1 zookeeper: 3.4.6 |
集群节点
一共有四台主机,主机名分别为nn0001, dn0001, dn0002, dn0003。
1 2 3 4 |
192.168.186.12 nn0001 192.168.186.13 dn0001 192.168.186.14 dn0002 192.168.186.15 dn0003 |
zookeeper安装
kafka使用zookeeper来管理,存储一些meta信息,并使用了zookeeper watch机制来发现meta信息的变更并作出相应的动作(比如consumer失效,触发负载均衡等)。 Zookeeper的配置在机器1上完成后分发到其他三台机器即可。
1 2 3 4 5 6 |
[bigdata@nn0001 ~]$ wget http://archive.apache.org/dist/zookeeper/stable/zookeeper-3.4.6.tar.gz [bigdata@nn0001 ~]$ tar -zxvf zookeeper-3.4.6.tar.gz [bigdata@nn0001 ~]$cd zookeeper-3.4.6/conf [bigdata@nn0001 conf]$ pwd /home/bigdata/bigprosoft/zookeeper-3.4.6/conf [bigdata@nn0001 conf]$ cp zoo_sample.cfg zoo.cfg |
修改配置文件
1 2 3 4 5 6 7 8 9 10 |
[bigdata@nn0001 conf]$ vi zoo.cfg tickTime=2000 dataDir=/home/bigdata/bigprosoft/zookeeper/data clientPort=2181 initLimit=10 syncLimit=5 server.1=nn0001:2888:3888 server.2=dn0001:2888:3888 server.3=dn0002:2888:3888 server.4=dn0003:2888:3888 |
在dataDir目录下创建myid文件,nn0001机器的内容为1,dn0001机器的内容为2,更多依此类推。
1 2 3 |
[bigdata@nn0001 data]$ echo 1 > myid [bigdata@nn0001 data]$ cat myid 1 |
启动测试
1 2 3 4 5 6 7 8 9 10 |
[bigdata@nn0001 bin]$ ./zkServer.sh start [bigdata@nn0001 bin]$ jps 10805 QuorumPeerMain #已经启动成功了 15494 Master 11816 NameNode 20958 Jps 17539 Worker 12084 ResourceManager 12945 RunJar 12944 RunJar |
停止
1 |
[bigdata@nn0001 bin]$ ./zkServer.sh stop |
其它机器相同操作,scp过去即可。
kafka安装
Kafka的broker、producer、consumer、topic等概念以及原理可以查阅官方文档 本次实验采用的多节点多broker集群模式,为每一台机器分配一个broker id
。
1 2 3 4 5 6 7 8 9 10 |
[bigdata@nn0001 ~]$ wget http://mirror.bit.edu.cn/apache/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz [bigdata@nn0001 ~]$ tar zxf kafka_2.10-0.8.1.1.tgz [bigdata@nn0001 ~]$ cd kafka_2.10-0.8.1.1 [bigdata@nn0001 kafka_2.10-0.8.1.1]$ cd conf [bigdata@nn0001 conf]$ vi server.properties broker.id=1 #其它机器的id依次递增即可 port=9092 host.name=192.168.186.12 advertised.host.name=192.168.186.12 zookeeper.connect=192.168.186.12:2181,192.168.186.13:2181,192.168.186.14:2181,192.168.186.15:2181 |
修改完成后分发到另外三台机器上。
启动测试
1 2 3 4 5 6 7 8 9 10 11 |
[bigdata@nn0001 bin]$ nohup ./kafka-server-start.sh ../config/server.properties & [bigdata@nn0001 conf]$ jps 10805 QuorumPeerMain 21282 Jps 15494 Master 21209 Kafka 11816 NameNode 17539 Worker 12084 ResourceManager 12945 RunJar 12944 RunJar |
依次启动机器
kafka使用测试
创建topic
1 |
[bigdata@nn0001 bin]$ ./kafka-topics.sh --create --zookeeper nn0001:2181 --replication-factor 3 --partitions 1 --topic test |
查看topic
1 2 3 4 5 6 |
[bigdata@nn0001 bin]$ ./kafka-topics.sh --describe --zookeeper nn0001:2181 Topic:mytest PartitionCount:2 ReplicationFactor:2 Configs: Topic: mytest Partition: 0 Leader: 2 Replicas: 3,2 Isr: 2 Topic: mytest Partition: 1 Leader: -1 Replicas: 4,3 Isr: Topic:test PartitionCount:1 ReplicationFactor:3 Configs: Topic: test Partition: 0 Leader: 2 Replicas: 2,3,4 Isr: 2 |
producer测试
1 2 3 |
[bigdata@nn0001 bin]$ ./kafka-console-producer.sh --broker-list 192.168.186.12:9092 --topic test gsdggfgfgfd gdfgdfgdf |
conumer测试
1 2 3 4 5 6 7 8 9 10 |
[bigdata@nn0001 bin]$ ./kafka-console-consumer.sh --zookeeper 192.168.186.12:2181 --from-beginning --topic test |
测试高可用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
[bigdata@nn0001 bin]$ ./kafka-topics.sh --describe --zookeeper 192.168.186.12:2181,192.168.186.13:2181,192.168.186.14:2181,192.168.186.15:2181 --from-beginning --topic test Topic:test PartitionCount:1 ReplicationFactor:3 Configs: Topic: test Partition: 0 Leader: 2 Replicas: 2,3,4 Isr: 2,4 #可以看到leader是2,是dn0001机器,把此机器上的kafka进程杀掉,再查看topic的leader |
ok,搭建过程就完成,下面用python/java/scala进行开发实例即可。
排错
问题1描述
1 2 3 |
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. |
解决方法
1 2 3 |
[bigdata@nn0001 ~]$ wget http://www.slf4j.org/dist/slf4j-1.7.12.tar.gz [bigdata@nn0001 ~]$ cd slf4j-1.7.12 [bigdata@nn0001 ~]$ cp slf4j-nop-1.7.12.jar ~/bigprosoft/kafka/libs/ |
问题2描述
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[bigdata@nn0001 bin]$ ./kafka-console-producer.sh --broker-list nn0001:9092 --topic test fsfsdfsdf …… [2015-08-28 17:24:18,417] ERROR Failed to send requests for topics test with correlation ids in [0,8] (kafka.producer.async.DefaultEventHandler) [2015-08-28 17:24:18,419] ERROR Error in handling batch of 1 events (kafka.producer.async.ProducerSendThread) kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries. at kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:90) at kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:104) at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:87) at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:67) at scala.collection.immutable.Stream.foreach(Stream.scala:547) at kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:66) at kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:44) …… |
解决方法,把server.properties中主机名改为IP地址即可。
1 2 3 |
host.name=10.171.59.221 advertised.host.name=10.171.59.221 zookeeper.connect=192.168.186.12:2181,192.168.186.13:2181,192.168.186.14:2181,192.168.186.15:2181 |
kafak集群安装-转的更多相关文章
- kafka2.9.2的伪分布式集群安装和demo(java api)测试
目录: 一.什么是kafka? 二.kafka的官方网站在哪里? 三.在哪里下载?需要哪些组件的支持? 四.如何安装? 五.FAQ 六.扩展阅读 一.什么是kafka? kafka是LinkedI ...
- ubuntu12.04+kafka2.9.2+zookeeper3.4.5的伪分布式集群安装和demo(java api)测试
博文作者:迦壹 博客地址:http://idoall.org/home.php?mod=space&uid=1&do=blog&id=547 转载声明:可以转载, 但必须以超链 ...
- 【Oracle 集群】Oracle 11G RAC教程之集群安装(七)
Oracle 11G RAC集群安装(七) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总. ...
- kafka集群安装部署
kafka集群安装 使用的版本 系统:centos6.5 centos6.7 jdk:1.7.0_79 zookeeper:3.4.9 kafka:2.10-0.10.1.0 一.环境准备[只列,不具 ...
- CentOS下Hadoop-2.2.0集群安装配置
对于一个刚开始学习Spark的人来说,当然首先需要把环境搭建好,再跑几个例子,目前比较流行的部署是Spark On Yarn,作为新手,我觉得有必要走一遍Hadoop的集群安装配置,而不仅仅停留在本地 ...
- Hadoop多节点集群安装配置
目录: 1.集群部署介绍 1.1 Hadoop简介 1.2 环境说明 1.3 环境配置 1.4 所需软件 2.SSH无密码验证配置 2.1 SSH基本原理和用法 2.2 配置Master无密码登录所有 ...
- codis集群安装
在网上找了很多codis的集群安装方法,看起来都是大同小异,本人结合了大多种方法完成了一套自己使用的codis的集群安装,可以供大家学习使用,如果有什么问题或者不懂的地方欢迎指正 1.集群规划: 三台 ...
- [bigdata] spark集群安装及测试
在spark安装之前,应该已经安装了hadoop原生版或者cdh,因为spark基本要基于hdfs来进行计算. 1. 下载 spark: http://mirrors.cnnic.cn/apache ...
- (原) 1.2 Zookeeper伪集群安装
本文为原创文章,转载请注明出处,谢谢 Zookeeper伪集群安装 zookeeper单机安装配置可以查看 1.1 zookeeper单机安装 1.复制三份zookeeper,分别为zookeeper ...
随机推荐
- MapReduce简单分析
在Map端 数据从Map中写入环形缓冲区,进行分区,分区时达到80%后溢出写入到磁盘,这几步同步进行 中间有个Shuffle过程 Reduce端 执行完Map 后到Reduce内存中,进行sort和m ...
- 利用JavaScript实现动态显示表格且对应改变按键的value值
插入的代码并没有符合HTML5样式,只是为了实现利用JS动态显示表格,并且按键的value值会同时发生变化的功能. <!DOCTYPE > <html > <head&g ...
- 5.volatile的应用
volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的"可见性".可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值.如果v ...
- struts2运行过程(图解)
.................................................................................................... ...
- Cache 和 Buffer 都是缓存,主要区别是什么?
存储器的高速缓冲存储器存储了频繁访问的RAM位置的内容及这些数据项的存储地址.当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址.如果存有该地址,则将数据返回处理器;如果没有保存该地址 ...
- IE下 GIF不动失效的奇葩问题
IE下(IE6~IE9都有该问题),对页面进行了某些操作之后,页面上的GIF动画就停留在某一帧不动了~~~ !! 我大IE 就是这么奇葩. 搜索了一下,搞了好久总算搞定. 下面说下目前了解的所有的可能 ...
- PHP小技巧
1.js获取服务器年月日 var date= '<?php echo date("Y-m-d",time())?>';//获取服务器年月
- js实现小球的弹性碰撞。
前 言 MYBG 小编最近在做自己的个人网站,其中就用到了一个小球碰撞检测的功能,想自己写,无奈本人能力不足啊(毕竟还是一个菜鸟)!!就想着找个插件用一下也好,可是找了好久也没有找到一个比较好用 ...
- C/C++程序在main之前执行代码
来源:<周哥教IT.C语言深学活用>https://ke.qq.com/course/242707#tuin=a71606 我们在学习C/C++语言的时候,通常认为main函数是整个程序执 ...
- eclipse导出jar(含依赖)三步走
之前用eclipse导出jar运行结果一直不尽人意,排查问题排查很久,最终确定到导出jar时,如果依赖jdk以外的jar时,就要通知eclipse 看了很多帖子,感觉操作起来都比较麻烦,注意点也比较多 ...