[喵咪KafKa(2)]单机模式运行KafKa
[喵咪KafKa(2)]单机模式运行KafKa#
前言##
在上节我们介绍完KafKa之后,今天我们来搭建KafKa三种模式(单机模式,伪集群,集群)中的一种单机模式的搭建,在正常的使用中我们一般吧单机模式作为开发环境的标配,今天就来和喵咪一同搭建一个KafKa的单机环境吧!
附上:
喵了个咪的博客:w-blog.cn
KafKa官网地址:http://kafka.apache.org/
Git地址:https://github.com/apache/kafka
1. 安装配置JDK
首先我们应该要安装配置JDK,应为zookeeper和KafKa都依赖与java环境
tar -zxvf jdk-7u79-linux-x64.tar.gz
mv jdk1.7/ /usr/local/
设定JAVA_HOME环境变量,编辑vim /etc/profile 加入如下内容
export JAVA_HOME=/usr/local/jdk1.7
export JRE_HOME=/usr/local/jdk1.7/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:
export PATH=$JAVA_HOME/bin:$PATH
更改后,执行命令使其生效
source /etc/profile
执行 java -version 会看到如下版本信息证明已经安装成功
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
2. 安装zookeeper##
KafKa依赖zookeeper的配置,调度,偏移,总之就是鱼儿离不开水这个道理,KafKa没有zookeeper也没办法玩起来,所以我们的第一步就是安装zookeeper,KafKa在内部带有一套zookeeper但是还是简单单独安装配置(zookeeper需要集群分布式来保证n-1的高可用)
zookeeper这里使用的时3.4.5版本可在上方百度网盘进行下载
安装配置zookeeper单机模式 :
cd /app/install
tar zxvf zookeeper-3.4.5-cdh4.3.0.tar.gz
mv zookeeper-3.4.5-cdh4.3.0 /tmp/zookeeper
cd /tmp/zookeeper/
mv conf/zoo_sample.cfg conf/zoo.cfg
mkdir data
echo 1 > data/myid #将本节点id设定到data/myid文件中
修改bin/zkEnv.sh脚本:
将ZOO_LOG_DIR="."修改为
ZOO_LOG_DIR="/tmp/zookeeper/data"
将ZOO_LOG4J_PROP=”INFO,CONSOLE”修改为
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
修改bin/zkServer.sh脚本:
将ZOOBIN="${BASH_SOURCE-$0}"修改为
ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`
修改bin/zkCli.sh脚本:
将ZOOBIN="${BASH_SOURCE-$0}"修改为
ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`
建立软连接到PATH:
ln -s /tmp/zookeeper/bin/zkServer.sh /usr/local/bin/zk-server
ln -s /tmp/zookeeper/bin/zkCli.sh /usr/local/bin/zk-cli
使用如下命令即可启动zookeeper
zk-server start
#以下输出为运行成功
JMX enabled by default
Using config: /tmp/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
在后续博文中喵咪会对zookeeper单独开一个系列进行说明
3. 安装KafKa0.8.2.2##
第二步就是安装KafKa了,KafKa目前最新的版本是0.10.0.1,但是此版本基本只有亲儿子语言能够很好地使用,这里采用一个比较稳定大部分kafka拓展能够支持的0.8.2.2
KafKa的安装包同样可以在上方百度网盘中下载到或到http://kafka.apache.org/downloads.html下载相应的版本
tar -zxvf kafka_2.9.1-0.8.2.2.tgz
mv kafka_2.9.1-0.8.2.2 /usr/local/
到这里KafKa就已经安装完成(心里暗念太简单了),我们进入大KafKa得更目录/usr/local/kafka_2.9.1-0.8.2.2来运行起来,这里是需要制定KafKa连接的zookeeper才能启动成功默认是localhost:2181,可以自行修改config/server.properties
// 运行KafKa
sh bin/kafka-server-start.sh config/server.properties &
这个时候会看到很多INFO语句如之中没有包含的ERROR的报错并且停留到如下输出证明你的KafKa已经启动成功了
INFO [Kafka Server 0], started (kafka.server.KafkaServer)
4. 使用命令行测试KafKa##
最后就是对KafKa进行一下简单的测试,创建一个生产者和一个消费者之间互相通讯消息
运行生产者producer
sh bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
运行消费者consumer
sh bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
此时在生产者输入内容,消费者这里也能显示出来
注意:当有跨机的producer或consumer连接时需要配置config/server.properties的host.name
5.总结
本节讲解了KafKa在单机模式下如何安装运行,近期的内容个将介绍使用PHP如何来操作KafKa,以及KafKa的配置文件要如何配置讲解,那么今天的内容就到这里了,多谢大家的支持别忘了关注喵咪的博客哦!
注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解Android studio 动态fragment的用法
- Java fastjson解析json字符串实现过程解析
- SpringMVC系列 MVC设计模式介绍+ SpringMVC的作用及其基本使用+组件解析+注解解析
- Spring系列之事务的控制 注解实现+xml实现+事务的隔离等级
- Greenplum集群扩容总结
- Leetcode刷题 237. 删除链表中的节点 两行代码实现
- Leetcode刷题 206. 反转链表 递归迭代两种方法实现
- MySQL索引和查询优化
- Elasticsearch:Index 生命周期管理入门
- springboot面试杀手锏-自动配置原理
- flink 1.11.2 学习笔记(1)-wordCount
- 我是如何开发维护8千多行代码组件的
- 我对JS延迟异步脚本的思考
- 大数据表查询优化 - 表分区
- 日志系统rsync和日志切割logrotate-Linux每日一练(9)