操作系统选择

  CentOS7.4x86-64(操作系统的x86_64是跟CPU有关的,最早AMD公司开发出了一款向下兼容x86CPU,向上又扩充了指令集,具有了64位CPU的特性,这款CPU后来改名为AMD64,Intel在AMD之后也开发了这样一款CPU,取名叫做x86_64),所以操作系统的x86_64就是指这款操作系统是64位的。使用uname -a查看操作系统版本。

安装Java环境

  首先找到jdk下载的官网网址,然后在你要下载的jdk版本上右键单击,在弹出的选择框选择复制链接,得到jdk11的下载链接为:http://download.oracle.com/otn-pub/java/jdk/11+28/55eed80b163941c8885ad9298e6d786a/jdk-11_linux-x64_bin.tar.gz

  在/usr/目录下创建java目录,使用wget命令下载jdk安装包到当前目录,命令为:(因为jdk下载时需要接收协议,所以wget命令比较特别)

wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie;"  http://download.oracle.com/otn-pub/java/jdk/11+28/55eed80b163941c8885ad9298e6d786a/jdk-11_linux-x64_bin.tar.gz

  下载好了以后可以使用ls命令查看这个安装包是否下载成功了。接下来使用tar命令解包

tar -zxvf jdk-11_linux-x64_bin.tar.gz

  然后,配置java环境,就是windows下的环境变量的配置,打开/etc/profile文件,在最下方插入下面两行:

export JAVA_HOME=/usr/java/jdk-10.0.   //这个就是你的包解压后的结果
export PATH=$JAVA_HOME/bin/:$PATH

  最后,输入source /etc/profile,强制刷新配置文件。然后输入java -version即可查看你所安装的jdk的版本号,在本次试验中我的java版本是jdk10。

安装Zookeeper

  Kafka使用Zookeeper保存集群的元数据信息和消费者信息。Kafka发行版本自带了Zookeeper,可以直接从脚本启动。本例安装一个完整的Zookeeper。

  元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。

  元数据是关于数据的组织、数据域及其关系的信息,简言之,元数据就是关于数据的数据

  从apache.org下载Zookeeper的稳定版,下载地址为:http://mirrors.hust.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz。版本为3.4.12。

1.单机Zookeeper的安装

  Zookeeper的安装目录为/usr/local/zookeeper。数据目录为/var/lib/zookeeper。

  下载Zookeeper的安装包:

wget http://mirrors.hust.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz

  解压安装包

tar -zxf zookeeper-3.4..tar.gz 

  创建数据目录

mkdir -p /var/lib/zookeeper

  创建Zookeeper的配置文件,并填写内容

[root@CentOs64- zookeeper]# mkdir -p /var/lib/zookeeper
[root@CentOs64- zookeeper]# cat > /usr/local/zookeeper/zookeeper-3.4./conf/zoo.cfg << EOF
> tickTime =
> dataDir=/var/lib/zookeeper
> clientPort=
> EOF

  最后zookeeper完整的配置文件内容为

#Zookeeper定义的基准时间间隔,单位:毫秒。服务器与客户端之间交互的基本时间单元,也就是Zookeeper服务器之间或服务器与客户端之间每隔一个tickTime就发送一次心跳
tickTime=
#数据目录,zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录下
dataDir=/var/lib/zookeeper
#客户端访问zookeeper的端口号,Zookeeper会监听这个端口,接收客户端的访问请求
clientPort=
#集群中的Follower(F)服务器和Leader(L)服务器之间初始连接时能容忍的最多心跳数(即tickTime的数目)
initLimit=
#syncLimit:Leader-Follower同步通信时限,集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(即tickTime的数量)
syncLimit=

  启动通过脚本启动zookeeper,命令为:

 /usr/local/zookeeper/zookeeper-3.4./bin/zkServer.sh start
// start 前的目录路径为脚本的保存路径,它在你的zookeeeper的安装目录下

  执行结果如下:

  如上所示:说明单机版的zookeeper就已经启动了。其它一些ookeeper的命令:

.查询 zookeeper 状态:
zkServer.sh status
.关闭 zookeeper 服务:
zkServer.sh stop
如打印如下信息则表明成功关闭:
ZooKeeper JMX enabled by default
Using config: /usr/local/services/zookeeper/zookeeper-3.4./bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED .重启 zookeeper 服务:
zkServer.sh restart
如打印如下信息则表明重启成功:
ZooKeeper JMX enabled by default
Using config: /usr/local/services/zookeeper/zookeeper-3.4./bin/../conf/zoo.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/services/zookeeper/zookeeper-3.4./bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
ZooKeeper JMX enabled by default
Using config: /usr/local/services/zookeeper/zookeeper-3.4./bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
.查询 zookeeper 状态:
zkServer.sh status
.关闭 zookeeper 服务:
zkServer.sh stop
如打印如下信息则表明成功关闭:
ZooKeeper JMX enabled by default
Using config: /usr/local/services/zookeeper/zookeeper-3.4./bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED .重启 zookeeper 服务:
zkServer.sh restart
如打印如下信息则表明重启成功:
ZooKeeper JMX enabled by default
Using config: /usr/local/services/zookeeper/zookeeper-3.4./bin/../conf/zoo.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/services/zookeeper/zookeeper-3.4./bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
ZooKeeper JMX enabled by default
Using config: /usr/local/services/zookeeper/zookeeper-3.4./bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

现在可以连接到Zookeeper端口上,通过发送四字命令srvr是否安装正确。使用命令:

  此时终端会停在这里,它是在等待你的输入。我们发送srvr,得运行结果如下:

[root@CentOs64- ~]# telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
srvr
Zookeeper version: 3.4.-e5259e437540f349646870ea94dc2658c4e44b3b, built on // : GMT
Latency min/avg/max: //
Received:
Sent:
Connections:
Outstanding:
Zxid: 0x0
Mode: standalone
Node count:
Connection closed by foreign host.

  这说明,单击的zookeeper已经安装成功而了。

最后为zookeeper配置环境变量

添加export ZOOKEEPER_HOME=/usr/local/zookeeper
在path中添加$ZOOKEEPER_HOME/bin
然后使用source /etc/profile 立即刷新配置文件

2.Zookeeper集群的搭建

先在结点下试验(这个先欠着),还欠缺一个zookeeper是什么的博客。

单节点 Kafka Broker 的安装

  Kafkade 最新版本可以从http://kafka.apache.org/downloads.html下载最新的版本。截止本试验日期为止,最新的稳定版是2.0.0。官网提供源码包下载和两个不同Scala版本编译好的Kafka,可以直接下载安装运行。

  本次试验下载编译好的版本:http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz

  使用wget命令,将这个安装包下载到/usr/local/kafka目录下

[root@CentOs64- kafka]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz
---- ::-- http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz
Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.8.193, :f000:::::
Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:... connected.
HTTP request sent, awaiting response... OK
Length: (53M) [application/octet-stream]
Saving to: ‘kafka_2.-2.0..tgz’ %[=====================================================================================================================================================>] ,, .5MB/s in .6s -- :: (14.8 MB/s) - ‘kafka_2.-2.0..tgz’ saved [/]

  解压(其实就是安装了)

tar -zxf kafka_2.-2.0..tgz

Kafka目录介绍

  • /bin 操作kafka的可执行脚本,还包含windows下脚本

  • /config 配置文件所在目录

  • /libs 依赖库目录

  • /logs 日志数据目录,目录kafka把server端日志分为5种类型,分为:server,request,state,log-cleaner,controller

创建保存kafka日志的目录

mkdir /tmp/kafka-logs

启动kafka

/usr/local/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh -daemon /usr/local/kafka/kafka_2.11-2.0.0/config/server.properties

检查9092端口和2181端口,9092是kafka的默认端口,2181是zookeeper的默认端口

[root@CentOs64-7 site-docs]# netstat -tunlp|egrep "(2181|9092)"
tcp 0 0 0.0.0.0:9092 0.0.0.0:* LISTEN 28688/java
tcp 0 0 0.0.0.0:2181 0.0.0.0:* LISTEN 27193/java

  如上,说明kafka已经启动。

接下来,验证这个kafka是否安装正确

1.创建并验证主题

[root@CentOs64- site-docs]# /usr/local/kafka/kafka_2.-2.0./bin/kafka-topics.sh --create --zookeeper localhost: --replication-factor  --partitions  --topic test
Created topic "test". //说明主题创建成功

2.查看你创建的主题的详细信息,如果不指定主题(添加--topic参数),那么查看所有的主题信息

[root@CentOs64- site-docs]# /usr/local/kafka/kafka_2.-2.0./bin/kafka-topics.sh --zookeeper localhost: --describe --topic test
Topic:test PartitionCount: ReplicationFactor: Configs:
Topic: test Partition: Leader: Replicas: Isr:

3.向测试主题上发布消息

[root@CentOs64- site-docs]# /usr/local/kafka/kafka_2.-2.0./bin/kafka-console-producer.sh --broker-list localhost: --topic test
>Test Mese ^H
>Test Message ^H^[[~
>q

  输入后按Ctrl+D退出输入。

4.从测试主题上读取消息

/usr/local/kafka/kafka_2.-2.0./bin/kafka-console-consumer.sh --zookeeper localhost: --topic test -- from-beginning
//上面这个命令用于kafka0.9以及0.9以下版本使用这个命令 /usr/local/kafka/kafka_2.-2.0./bin/kafka-console-consumer.sh --bootstrap-server localhost: --topic test --from-beginning
//上面命令用于kafka0.9用这个命令

  输入Ctrl+C退出消费。

5.查看topic列表

/usr/local/kafka/kafka_2.-2.0./bin/kafka-topics.sh --list --zookeeper localhost:

6.删除topic

kafka-topics.sh --delete --zookeeper node1: --topic my-kafka-topic

producer,指定的Socket(192.168.1.181+9092),说明生产者的消息要发往kafka,也即是broker

consumer, 指定的Socket(192.168.1.181+2181),说明消费者的消息来自zookeeper(协调转发)

kafka的编译

本小节参考:https://blog.csdn.net/caoshangpa/article/details/79743830

会编译,有备无患。下载源码kafka-1.1.0-src.tgz

解压,这里也解压到/home目录下

> tar -xzf kafka-1.1.-src.tgz
> cd kafka-1.1.-src

查看里面的README.md文档,编译依赖1.Gradle 3.0或更高版本;2.Java 7。jdk前面已经安装过了,现在安装Gradle。

Gradle下载https://gradle.org/install/,该页面指出Gradle依赖Java 7或更高版本。最新的Gradle版本是4.6,下载其编译好的二进制包gradle-4.6-bin.zip。

解压,这里也解压到/home目录下

$ unzip -d gradle-4.6-bin.zip
$ ls radle-4.6
LICENSE NOTICE bin getting-started.html init.d lib media

将bin添加到环境变量,编辑/etc/profile文件,在其末尾添加

export PATH=$PATH:/home/zhangcan/gradle-4.6/bin

使修改的profile立即生效

$ source /etc/profile

测试一下

$ gradle -v

CD到kafka源码目录,开始编译

1.输入gradle指令,开始下载环境

$ gradle

下载了一堆东西,如果提示有文件下载失败,多执行几次该指令即可

2.编译

$ ./gradlew releaseTarGz -x signArchives

还是下载了一堆东西,如果提示有文件下载失败,多执行几次该指令即可。编译成功后会提示。

此时,会在kafka-1.1.0-src/core/build/distributions目录下生成一个名为kafka_2.11-1.1.0.tgz的二进制包,这个包和从官网下载的二进制包是一样的

参考链接:http://kafka.apache.org/quickstart

CentOS7.4搭建kafka单结点和集群的更多相关文章

  1. (转)CentOs7.3 搭建 RabbitMQ 3.6 Cluster 集群服务与使用

    RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby..NET.Java.JMS.C.PHP.ActionScript.XMPP.STO ...

  2. Kafka(二)CentOS7.5搭建Kafka2.11-1.1.0集群与简单测试

    一.下载 下载地址: http://kafka.apache.org/downloads.html    我这里下载的是Scala 2.11对应的 kafka_2.11-1.1.0.tgz 二.kaf ...

  3. CentOS7.5搭建Kafka2.11-1.1.0集群与简单测试

    一.下载 下载地址: http://kafka.apache.org/downloads.html    我这里下载的是Scala 2.11对应的 kafka_2.11-1.1.0.tgz 二.集群规 ...

  4. Spark(二)CentOS7.5搭建Spark2.3.1分布式集群

    一 下载安装包 1 官方下载 官方下载地址:http://spark.apache.org/downloads.html 2  安装前提 Java8         安装成功 zookeeper  安 ...

  5. CentOs7.3 搭建 Redis-4.0.1 Cluster 集群服务

    环境 VMware版本号:12.0.0 CentOS版本:CentOS 7.3.1611 三台虚拟机(IP):192.168.252.101,192.168.102..102,192.168.252. ...

  6. Linux Centos7 环境搭建Docker部署Zookeeper分布式集群服务实战

    Zookeeper完全分布式集群服务 准备好3台服务器: [x]A-> centos-helios:192.168.19.1 [x]B-> centos-hestia:192.168.19 ...

  7. CentOS7.6搭建redis4.0.1 cluster集群

    1. 操作系统信息: $ uname -a Linux iZbp11d57wmumnwuihb2czZ -.el7.x86_64 # SMP Fri Feb :: UTC x86_64 x86_64 ...

  8. Flink(二)CentOS7.5搭建Flink1.6.1分布式集群

    一. Flink的下载 安装包下载地址:http://flink.apache.org/downloads.html  ,选择对应Hadoop的Flink版本下载 [admin@node21 soft ...

  9. ELK+Kafka学习笔记之搭建ELK+Kafka日志收集系统集群

    0x00 概述 关于如何搭建ELK部分,请参考这篇文章,https://www.cnblogs.com/JetpropelledSnake/p/9893566.html. 该篇用户为非root,使用用 ...

随机推荐

  1. iOS 将WKWebView内的HTML打印为PDF

    使用的webview为WKWebView,核心部分代码(Swift 4): // 创建打印渲染 let printPageRenderer:PDFRender = PDFRender() // 获取渲 ...

  2. Centos 6.8安装 SVN

    SVN SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subver ...

  3. python实现基数排序

    # 基数排序有着局限性,只能是整数,# 排序的时候要先排后面一个条件的(多条件排序)#如本例中,先从个位开始排起# 多关键字排序# 从低关键字开始排序 # @File: radix_sort #### ...

  4. 16G 手机清理

    1.16G 手机清理 清理top 5 的应用的缓存即可 2,hw wife 连接模块 低于 app wifi 的连接模块. 在同样的电脑热点面前,hw 连补上电脑热点,apple 可以连上电脑热点. ...

  5. AWK整理

    处理模式: awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作.如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如 ...

  6. android开发学习 ------- 【转】Genymotion 小白安装

    参考 https://www.cnblogs.com/whycxb/p/6850454.html 很详细,全面

  7. phpcms v9模板制作教程

    phpcms v9模板制作教程(转载) 第一节 1.首先下载phpcms v9的集成安装包并安装,这里就不详细说明了. 2.本地调试建议大家使用APMserver,或者wampserver等,可以到P ...

  8. vs 2017 下 千万不要装force utf8 这个插件

    千万不要装!!! 装了之后,传文件到linux系统下,各种xml和makefile报错(如下) Makefile:1: *** 遗漏分隔符 . 停止

  9. ARM 环境下使用azure powershell 从远程blob中拉去vhd 并创建虚拟机

    最近需要从指定公共访问的blob中复制vhd到自己的订阅存储账户,并使用vhd创建AZURE ARM虚拟机(非经典版),而且在portal.azure.cn中无法实现虚拟机映像创建等功能,于是自己使用 ...

  10. 【HEVC简介】CTU、CU、PU、TU结构

     参考文献:见<High Efficiency Video Coding (HEVC)>Block Structures and Parallelism Features in HEVC章 ...