CentOS7.4x86-64(操做系统的x86_64是跟CPU有关的,最先AMD公司开发出了一款向下兼容x86CPU,向上又扩充了指令集,具备了64位CPU的特性,这款CPU后来更名为AMD64,Intel在AMD以后也开发了这样一款CPU,取名叫作x86_64),因此操做系统的x86_64就是指这款操做系统是64位的。使用uname -a查看操做系统版本。html
首先找到jdk下载的官网网址,而后在你要下载的jdk版本上右键单击,在弹出的选择框选择复制连接,获得jdk11的下载连接为:http://download.oracle.com/otn-pub/java/jdk/11+28/55eed80b163941c8885ad9298e6d786a/jdk-11_linux-x64_bin.tar.gzjava
在/usr/目录下建立java目录,使用wget命令下载jdk安装包到当前目录,命令为:(由于jdk下载时须要接收协议,因此wget命令比较特别)node
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命令解包linux
tar -zxvf jdk-11_linux-x64_bin.tar.gz
而后,配置java环境,就是windows下的环境变量的配置,打开/etc/profile文件,在最下方插入下面两行:apache
export JAVA_HOME=/usr/java/jdk-10.0.2 //这个就是你的包解压后的结果 export PATH=$JAVA_HOME/bin/:$PATH
最后,输入source /etc/profile,强制刷新配置文件。而后输入java -version便可查看你所安装的jdk的版本号,在本次试验中个人java版本是jdk10。bootstrap
Kafka使用Zookeeper保存集群的元数据信息和消费者信息。Kafka发行版本自带了Zookeeper,能够直接从脚本启动。本例安装一个完整的Zookeeper。windows
元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特点,进而达成协助数据检索的目的。服务器
元数据是关于数据的组织、数据域及其关系的信息,简言之,元数据就是关于数据的数据。cookie
从apache.org下载Zookeeper的稳定版,下载地址为:http://mirrors.hust.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz。版本为3.4.12。oracle
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.12.tar.gz
建立数据目录
mkdir -p /var/lib/zookeeper
建立Zookeeper的配置文件,并填写内容
[root@CentOs64-7 zookeeper]# mkdir -p /var/lib/zookeeper [root@CentOs64-7 zookeeper]# cat > /usr/local/zookeeper/zookeeper-3.4.12/conf/zoo.cfg << EOF > tickTime = 2000 > dataDir=/var/lib/zookeeper > clientPort=2181 > EOF
最后zookeeper完整的配置文件内容为
#Zookeeper定义的基准时间间隔,单位:毫秒。服务器与客户端之间交互的基本时间单元,也就是Zookeeper服务器之间或服务器与客户端之间每隔一个tickTime就发送一次心跳 tickTime=2000 #数据目录,zookeeper保存数据的目录,默认状况下,Zookeeper将写数据的日志文件也保存在这个目录下 dataDir=/var/lib/zookeeper #客户端访问zookeeper的端口号,Zookeeper会监听这个端口,接收客户端的访问请求 clientPort=2181 #集群中的Follower(F)服务器和Leader(L)服务器之间初始链接时能容忍的最多心跳数(即tickTime的数目) initLimit=5 #syncLimit:Leader-Follower同步通讯时限,集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(即tickTime的数量) syncLimit=2
启动经过脚本启动zookeeper,命令为:
/usr/local/zookeeper/zookeeper-3.4.12/bin/zkServer.sh start // start 前的目录路径为脚本的保存路径,它在你的zookeeeper的安装目录下
执行结果以下:
如上所示:说明单机版的zookeeper就已经启动了。其它一些ookeeper的命令:
1.查询 zookeeper 状态: zkServer.sh status 2.关闭 zookeeper 服务: zkServer.sh stop 如打印以下信息则代表成功关闭: ZooKeeper JMX enabled by default Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg Stopping zookeeper ... STOPPED 3.重启 zookeeper 服务: zkServer.sh restart 如打印以下信息则代表重启成功: ZooKeeper JMX enabled by default Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg ZooKeeper JMX enabled by default Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg Stopping zookeeper ... STOPPED ZooKeeper JMX enabled by default Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
1.查询 zookeeper 状态: zkServer.sh status 2.关闭 zookeeper 服务: zkServer.sh stop 如打印以下信息则代表成功关闭: ZooKeeper JMX enabled by default Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg Stopping zookeeper ... STOPPED 3.重启 zookeeper 服务: zkServer.sh restart 如打印以下信息则代表重启成功: ZooKeeper JMX enabled by default Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg ZooKeeper JMX enabled by default Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg Stopping zookeeper ... STOPPED ZooKeeper JMX enabled by default Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
如今能够链接到Zookeeper端口上,经过发送四字命令srvr是否安装正确。使用命令:
此时终端会停在这里,它是在等待你的输入。咱们发送srvr,得运行结果以下:
[root@CentOs64-7 ~]# telnet localhost 2181 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. srvr Zookeeper version: 3.4.12-e5259e437540f349646870ea94dc2658c4e44b3b, built on 03/27/2018 03:55 GMT Latency min/avg/max: 0/0/0 Received: 1 Sent: 0 Connections: 1 Outstanding: 0 Zxid: 0x0 Mode: standalone Node count: 4 Connection closed by foreign host.
这说明,单击的zookeeper已经安装成功而了。
最后为zookeeper配置环境变量
添加export ZOOKEEPER_HOME=/usr/local/zookeeper 在path中添加$ZOOKEEPER_HOME/bin 而后使用source /etc/profile 当即刷新配置文件
先在结点下试验(这个先欠着),还欠缺一个zookeeper是什么的博客。
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-7 kafka]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz --2018-10-18 10:44:31-- 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, 2402:f000:1:408:8100::1 Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 55751827 (53M) [application/octet-stream] Saving to: ‘kafka_2.11-2.0.0.tgz’ 100%[=====================================================================================================================================================>] 55,751,827 13.5MB/s in 3.6s 2018-10-18 10:44:35 (14.8 MB/s) - ‘kafka_2.11-2.0.0.tgz’ saved [55751827/55751827]
解压(其实就是安装了)
tar -zxf kafka_2.11-2.0.0.tgz
/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-7 site-docs]# /usr/local/kafka/kafka_2.11-2.0.0/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test Created topic "test". //说明主题建立成功
2.查看你建立的主题的详细信息,若是不指定主题(添加--topic参数),那么查看全部的主题信息
[root@CentOs64-7 site-docs]# /usr/local/kafka/kafka_2.11-2.0.0/bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic test Topic:test PartitionCount:1 ReplicationFactor:1 Configs: Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0
3.向测试主题上发布消息
[root@CentOs64-7 site-docs]# /usr/local/kafka/kafka_2.11-2.0.0/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test >Test Mese ^H >Test Message 1^H^[[3~ >q
输入后按Ctrl+D退出输入。
4.从测试主题上读取消息
/usr/local/kafka/kafka_2.11-2.0.0/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test -- from-beginning //上面这个命令用于kafka0.9以及0.9如下版本使用这个命令 /usr/local/kafka/kafka_2.11-2.0.0/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning //上面命令用于kafka0.9用这个命令
输入Ctrl+C退出消费。
5.查看topic列表
/usr/local/kafka/kafka_2.11-2.0.0/bin/kafka-topics.sh --list --zookeeper localhost:2181
6.删除topic
kafka-topics.sh --delete --zookeeper node1:2181 --topic my-kafka-topic
producer,指定的Socket(192.168.1.181+9092),说明生产者的消息要发往kafka,也便是broker
consumer, 指定的Socket(192.168.1.181+2181),说明消费者的消息来自zookeeper(协调转发)
本小节参考:https://blog.csdn.net/caoshangpa/article/details/79743830
会编译,有备无患。下载源码kafka-1.1.0-src.tgz
解压,这里也解压到/home目录下
> tar -xzf kafka-1.1.0-src.tgz > cd kafka-1.1.0-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的二进制包,这个包和从官网下载的二进制包是同样的