Hadoop生态圈-Kafka的本地模式部署

                                          作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.Kafka简介

1>.什么是JMS

  答:在Java中有一个角消息系统的东西,我们叫他Java Message Service,简称JMS。比如各种MQ。

2>.JMS的两种工作模式

  第一种模式:点到点(point to point,简称P2P),典型的一对一模式(一个人发送数据的同时只有一个人接收数据),也有人称之为端到端(peer to peer)。

  第二种模式:发布订阅模式(publish subscribe,简称P-S),典型的一对多模式(一个人发送数据的同时可以有多个人接收数据)。

3>.Kafka的工作模式

  答:Kafka的工作模式可以把JMS的两种模式结合在一起,我们称之为消费者组模式

4>.什么是Kafka

  答:Kafka和flume以及Sqoop一样,他们都是中间件(不含有业务的技术组件)。Kafka在官方定义是分布式消息系统。当然Kafka还可以用在做分布式数据库,除此之外,它还可以当做分布式缓存。

5>.ApacheKafka是一个分布式流媒体平台

  ApacheKafka是一个分布式流媒体平台,这到底是什么意思呢?接下来我们看一下流媒体平台有三个关键功能如下:

    第一:发布和订阅记录流,类似于消息队列或企业消息传递系统。

    第二:以容错持久的方式存储记录流。

    第三:处理记录发生的流。

6>.Kafka通常用于两大类应用

  第一:构建可在系统或应用程序之间可靠获取数据的实时流数据管道。

  第二:构建实时流应用程序,用于转换或响应数据流。

7>.kafka版本介绍

  kafka起先由领英(linkedin创建)公司,开源后被Apache基金会纳入子项目。我们在下载Kafka时,你是如何区分它的版本呢?比如本篇博客下载kafka的版本是“kafka_2.11-1.1.0”,这个“2.11”是scala(java语言脚本化)版本而“1.1.0”是kafka版本。

二.Kafka本地模式部署

1>.下载Kafaka

  下载地址:http://kafka.apache.org/downloads。

2>.解压并创建软连接

[yinzhengjie@s101 data]$ tar xzf kafka_2.11-1.1.0.tgz -C /soft/
[yinzhengjie@s101 data]$ ln -s /soft/kafka_2.11-1.1.0/ /soft/kafka
[yinzhengjie@s101 data]$

4>.配置环境变量并使之生效

[yinzhengjie@s101 data]$ sudo vi /etc/profile
[sudo] password for yinzhengjie:
[yinzhengjie@s101 data]$
[yinzhengjie@s101 data]$ tail -3 /etc/profile
#ADD KafKa PATH
export KAFKA_HOME=/soft/kafka
PATH=$PATH:$KAFKA_HOME/bin
[yinzhengjie@s101 data]$
[yinzhengjie@s101 data]$ source /etc/profile
[yinzhengjie@s101 data]$

5>.修改配置文件

[yinzhengjie@s101 data]$ sed -i 's@#listeners=PLAINTEXT://:9092@listeners=PLAINTEXT://s101:9092@g' /soft/kafka/config/server.properties
[yinzhengjie@s101 data]$ sed -i 's@log.dirs=/tmp/kafka-logs@log.dirs=/home/yinzhengjie/kafka/logs@g' /soft/kafka/config/server.properties
[yinzhengjie@s101 data]$ sed -i 's@zookeeper.connect=localhost:2181@zookeeper.connect=s102:2181,s103:2181,s104:2181@g' /soft/kafka/config/server.properties
[yinzhengjie@s101 data]$

6>.启动kafka

[yinzhengjie@s101 data]$ kafka-server-start.sh -daemon /soft/kafka/config/server.properties
[yinzhengjie@s101 data]$ echo $? [yinzhengjie@s101 data]$ jps | grep Kafka
Kafka
[yinzhengjie@s101 data]$ netstat -untalp | grep
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 172.30.100.101: :::* LISTEN /java
tcp6 172.30.100.101: 172.30.100.101: ESTABLISHED /java
tcp6 172.30.100.101: 172.30.100.101: TIME_WAIT -
tcp6 172.30.100.101: 172.30.100.101: TIME_WAIT -
tcp6 172.30.100.101: 172.30.100.101: ESTABLISHED /java
[yinzhengjie@s101 data]$
[yinzhengjie@s101 data]$

7>.停止kafka

[yinzhengjie@s101 data]$ jps | grep Kafka
Kafka
[yinzhengjie@s101 data]$ netstat -untalp | grep
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 172.30.100.101: :::* LISTEN /java
tcp6 172.30.100.101: 172.30.100.101: ESTABLISHED /java
tcp6 172.30.100.101: 172.30.100.101: TIME_WAIT -
tcp6 172.30.100.101: 172.30.100.101: TIME_WAIT -
tcp6 172.30.100.101: 172.30.100.101: ESTABLISHED /java
[yinzhengjie@s101 data]$
[yinzhengjie@s101 data]$
[yinzhengjie@s101 data]$
[yinzhengjie@s101 data]$ kafka-server-stop.sh
[yinzhengjie@s101 data]$ jps | grep Kafka
[yinzhengjie@s101 data]$ netstat -untalp | grep
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 172.30.100.101: 172.30.100.101: TIME_WAIT -
tcp6 172.30.100.101: 172.30.100.101: TIME_WAIT -
[yinzhengjie@s101 data]$
[yinzhengjie@s101 data]$

三.kafka初体验

1>.启动kafka(提供服务)

[yinzhengjie@s101 data]$ kafka-server-start.sh -daemon /soft/kafka/config/server.properties
[yinzhengjie@s101 data]$ netstat -untalp | grep
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 172.30.100.101: :::* LISTEN /java
tcp6 172.30.100.101: 172.30.100.101: ESTABLISHED /java
tcp6 172.30.100.101: 172.30.100.101: ESTABLISHED /java
[yinzhengjie@s101 data]$ jps | grep Kafka
Kafka
[yinzhengjie@s101 data]$

[yinzhengjie@s101 data]$ kafka-server-start.sh -daemon /soft/kafka/config/server.properties

2>.创建主题(消息保管者

[yinzhengjie@s101 data]$ kafka-topics.sh --zookeeper s102: --create  --partitions  --replication-factor   --topic yinzhengjie
Created topic "yinzhengjie".
[yinzhengjie@s101 data]$

[yinzhengjie@s101 data]$ kafka-topics.sh --zookeeper s102:2181 --create --partitions 2 --replication-factor 1 --topic yinzhengjie

3>.启动生产者(消息发送方

[yinzhengjie@s101 data]$ kafka-console-producer.sh --broker-list s101: --topic yinzhengjie
>My name is yinzhengjie , I love Beijing!
>

[yinzhengjie@s101 data]$ kafka-console-producer.sh --broker-list s101:9092 --topic yinzhengjie

4>.启动消费者(消息接收方

[yinzhengjie@s101 lib]$ kafka-console-consumer.sh --zookeeper s102: --topic yinzhengjie --from-beginning
Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
My name is yinzhengjie , I love Beijing!

[yinzhengjie@s101 lib]$ kafka-console-consumer.sh --zookeeper s102:2181 --topic yinzhengjie --from-beginning

Hadoop生态圈-Kafka的本地模式部署的更多相关文章

  1. Hadoop生态圈-Kafka的完全分布式部署

    Hadoop生态圈-Kafka的完全分布式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要内容就是搭建Kafka完全分布式,它是在kafka本地模式(https:/ ...

  2. Hadoop生态圈-通过CDH5.15.1部署spark1.6与spark2.3.0的版本兼容运行

    Hadoop生态圈-通过CDH5.15.1部署spark1.6与spark2.3.0的版本兼容运行 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我的CDH5.15.1集群中,默 ...

  3. 一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)

    1)集群规划:主机名        IP      安装的软件                     运行的进程master    192.168.199.130   jdk.hadoop      ...

  4. Hadoop生态圈-kafka事务控制以及性能测试

    Hadoop生态圈-kafka事务控制以及性能测试 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  5. Hadoop生态圈-Kafka的新API实现生产者-消费者

         Hadoop生态圈-Kafka的新API实现生产者-消费者 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  6. Hadoop生态圈-Kafka配置文件详解

    Hadoop生态圈-Kafka配置文件详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.默认kafka配置文件内容([yinzhengjie@s101 ~]$ more /s ...

  7. Hadoop生态圈-Kafka的旧API实现生产者-消费者

    Hadoop生态圈-Kafka的旧API实现生产者-消费者 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.旧API实现生产者-消费者 1>.开启kafka集群 [yinz ...

  8. Hadoop生态圈-Kafka常用命令总结

    Hadoop生态圈-Kafka常用命令总结 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.管理Kafka服务的命令 1>.开启kafka服务 [yinzhengjie@s ...

  9. 【Hadoop】Hadoop的安装,本地模式、伪分布模式的配置

    Download hadoop-2.7.7.tar.gz 下载稳定版本的hadoop-2.7.7.tar.gz(我用的2.6.0,但是官网只能下载2.7.7的了) Required Software ...

随机推荐

  1. Linux下的openvpn配置 与 easy-rsa3的证书生成

    #注意:以下操作由服务端操作即可#PS:为什么我找不到var文件??============安装===============wget -O /etc/yum.repos.d/epel.repo ht ...

  2. VMware桥接模式连接局域网

    今天尝试虚拟机直连家里的局域网,用于方便另外一台主机使用家里的虚拟机. 本次连接方式是通过桥接方式,但由于'桥接到'选项默认自动,导致无法连通,最终以下步骤完成配置: 第一步:确认本地网关地址 第二步 ...

  3. Gitlab+Jenkins学习之路(十四)之自动化脚本部署实践

    目录 一.环境说明和准备 1.环境说明 2.服务器准备工作 二.发布脚本编写 1.自动化部署流程设计 2.自动化部署脚本编写 三.发布测试 1.开发机和github添加ssh信任 2.克隆项目到开发机 ...

  4. 老项目迁移到 springboot 过程

    打算把detectx迁移,毕竟springboot更适合它, 首先我是用的快速建立的项目,springboot版本为 1.5.19.RELEASE ,官网查了下,这个是GA稳定生产环境版本 然后如果要 ...

  5. Java虚拟机笔记(五):JVM中对象的分代

    为什么要分代 为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用, ...

  6. nginx 新增域名访问

    nginx 新增域名访问 1.申请阿里云域名 2.指向阿里云主机 3.配置nginx文件 server { listen 80; server_name zlx.test.com; set $root ...

  7. python图像处理 模式转化简单总结

    图像处理库PIL有九种不同模式:1,L,P,RGB,RGBA,CMYK,YCbCr,I,F 1.模式“1” 模式“1”为二值图像,非黑即白.但是它每个像素用8个bit表示,0表示黑,255表示白. 2 ...

  8. 《Linux内核分析》 第四周

    [李行之 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] <Linux内 ...

  9. Linux内核分析——第一章 Linux内核简介

    第一章   Linux内核简介 一.Unix的历史 1.Unix系统成为一个强大.健壮和稳定的操作系统的根本原因: (1)简洁 (2)在Unix中,很多东西都被当做文件对待.这种抽象使对数据和对设备的 ...

  10. opencv2 用imwrite 抽取并保存视频图像帧

    最近在写一个车辆检测程序,程序中需要获取图像帧,并保存为图片,且放到指定目录中去,我在网上查了很多发现都是opencv1的有关操作,没有opencv2的操作,我参考网上的例子,结合着用opencv2新 ...