实时流处理框架flume+kafka搭建

flume kafka hive spark flink笔记 根据其部署模式的不同,可以分为local,standalone,yarn,mesos等模式。Impala和Hive采用相同的SQL语法、ODBC驱动程序和用户接口,可统一部署Hive和Impala等分析工具,同时支持批处理和实时查询。在远程模式下,所有的Hive客户端都将打开一个到元数据服务器的连接,该服务器依次查询元数据,元数据服务器和客户端之间使用Thrift协议通信。Hive支持三种不同的元存储服务器,分别为:内嵌式元存储服务器、本地元存储服务器、远程元存储服务器,每种存储方式使用不同的配置参数。 阅读详情

实时流处理框架

同类型:

Apache Storm    实时流处理框架
Apache Spark Stream  批处理框架,时间间隔可以设置表较小
IBM Stream
Yahoo S4
LinkedIn Kafka

实时流处理框架与技术选型
image

Flume =>Kafka(为了防止数据量过大,使用消息队列)===》spark/strom ==》HBASE

分布式日志收集框架 Flume

Source

  • Avro,Exec,Kafka,NetCat Tcp

Channel

  • Memory 和File 和Kafka用的比较多

Sink

  • AVRO,Kafka,Hdfs,Hive,Hbase(同步异步),Logger(控制台)
常用架构
  • 多个source 收集数据通过avro sink==> avro source 将数据汇总到一个地方
    image
  • 当然也可以将一个数据源分别发送到不同的地方
实战
  1. 从指定端口采集数据到控制台
# example.conf: A single-node Flume configuration

a1:agent名称
r1:source名称
k1:sink名称
c1:channel名称

# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = hadoop000
a1.sources.r1.port = 44444

# Describe the sink
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100


# 串起来 Bind the source and sink to the channel
a1.sources.r1.channels = c1 (一个source可以到多个channel channels)
a1.sinks.k1.channel = c1  (一个sink 只能有一个channel channel)
  • 启动flume
首先设置好flume的JAVA_HOME
vim $FLUME_HOME/conf/flume-env.sh
添加修改配置信息导入java_home
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_144

启动:
flume-ng agent \
--name a1 \
--conf $FLUME_HOME/conf \
--conf-file $FLUME_HOME/conf/example.conf \
-Dflume.root.logger=INFO,console

这里可能会报错:
log4j:WARN No appenders could be found for logger (org.apache.flume.lifecycle.LifecycleSupervisor).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

问题原因:
上面--conf 中配置信息有问题,或者底下-Dflume.root.logger=INFO,console 这个写错了、
解决办法:配置好对应的信息,应该就可以了

  • 启动界面
    image
  • 启动另一个terminal 窗口
telnet localhost 44444
输入 随便一个信息,可以在flume agent 窗口看到对应的信息
从一个文件(/home/hadoop/data/data.log)采集新增数据到控制台
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /home/hadoop/data/data.log
a1.sources.r1.shell = /bin/sh -c

# Describe the sink
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory
a1.channels.c1.type = memory

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

下图:
image

从A服务器上采集日志实时采集到B服务器(通过Avro sink)
exec source + memory channel + avro sink
avro source + memory channel + logger sink


exec-memory-avro 配置文件

exec-memory-avro.sources = exec-source
exec-memory-avro.sinks = avro-sink
exec-memory-avro.channels = memory-channel

exec-memory-avro.sources.exec-source.type = exec
exec-memory-avro.sources.exec-source.command = tail -F /home/hadoop/data/data.log
exec-memory-avro.sources.exec-source.shell = /bin/sh -c

exec-memory-avro.sinks.avro-sink.type = avro
exec-memory-avro.sinks.avro-sink.hostname = hadoop000
exec-memory-avro.sinks.avro-sink.port = 44444

exec-memory-avro.channels.memory-channel.type = memory

exec-memory-avro.sources.exec-source.channels = memory-channel
exec-memory-avro.sinks.avro-sink.channel = memory-channel


avro-memory-logger配置文件

avro-memory-logger.sources = avro-source
avro-memory-logger.sinks = logger-sink
avro-memory-logger.channels = memory-channel

avro-memory-logger.sources.avro-source.type = avro
avro-memory-logger.sources.avro-source.bind = hadoop000
avro-memory-logger.sources.avro-source.port = 44444

avro-memory-logger.sinks.logger-sink.type = logger

avro-memory-logger.channels.memory-channel.type = memory

avro-memory-logger.sources.avro-source.channels = memory-channel
avro-memory-logger.sinks.logger-sink.channel = memory-channel



先启动avro-memory-logger 再启动 exec-memory-avro

Kafka

介绍
  1. kafka使用scala来开发~
  2. 消息中间件:生产者—消费者------topic
    3.使用zookeeper来做集群管理
安装步骤
  1. 安装JDK环境(配置JAVA_HOME, 1.7.0_79)
  2. 安装Scala环境(配置SCALA_HOME, 2.10.4)
  3. 安装zookeeper环境(3.4.5)
  4. 安装kafka环境
安装kafka
启动zookeeper http://coolxing.iteye.com/blog/1871009 (zookeeper 集群搭建)
zkServer.sh start
配置文件修改(单节点,单borker配置)
vim server.properties
broker.id=0 #broker id的值
advertised.host.name=hadoop000 log.dirs=/home/hadoop/tmp/kafkaLogs #修改kafka地址 #修改kafka的地址
zookeeper.commect=hadoop000:2181,hadoop001:2181,hadoop002:2181
delete.topic.enable=true #启用删除topic配置
auto.create.topics.enable=false
# 关闭自动创建topic
启动kafka
kafka-server-start.sh [-daemon] $KAFKA_HOME/config/server.properties

创建topic
kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
删除topic
kafka-topics.sh --delete --zookeeper hadoop000:2181  --topic my-replicated-topic



查看topic信息
kafka-topics.sh --list --zookeeper hadoop000:2181
kafka-topics.sh --describe --zookeeper hadoop000:2181 [--topic test] 查看所有topic和指定topic 信息

发送消息(配置broker)
kafka-console-producer.sh --broker-list hadoop000:9092 --topic test

消费消息(配置zookeeper)
kafka-console-consumer.sh --zookeeper hadoop000:2181 --topic test --from-beginning
结果

image

单节点多broker部署 http://kafka.apache.org/quickstart#quickstart_multibroker
只需要修改配置文件中的broker.id分别为[1,2,3]
listenr 端口修改为[9091,9092,9093]
log.dir分别修改为不同目录

然后启动

kafka-server-start.sh -daemon $KAFKA_HOME/config/server-1.properties
kafka-server-start.sh -daemon $KAFKA_HOME/config/server-2.properties
kafka-server-start.sh -daemon $KAFKA_HOME/config/server-3.properties

创建topic
kafka-topics.sh --create --zookeeper hadoop000:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

查看创建好的topic
kafka-topics.sh --describe --zookeeper hadoop000:2181 --topic my-replicated-topic

image

leader是负责给定分区的所有读取和写入的节点。每个节点将成为随机选择的分区部分的领导者

“replicas”是复制此分区日志的节点列表,无论它们是否为领导者,或者即使它们当前处于活动状态。

isr 活跃状态并且已经被领导者捕获的brokerid。

ReplicationFactor:三个副本;PartitionCount:一个分区

发布消息
kafka-console-producer.sh --broker-list hadoop000:9093,hadoop000:9094,hadoop000:9095 --topic my-replicated-topic

消费消息
kafka-console-consumer.sh --zookeeper hadoop000:2181 --from-beginning --topic my-replicated-topic

image

停掉一个节点
ps aux |grep kafka |grep server-1
kill -9 2317

依然保持可用状态,查看副本可用状态见下图

再关掉另一个节点,依然可用!

image

重启之前停掉的节点,依然可用    
kafka-server-start.sh -daemon $KAFKA_HOME/config/server-1.properties
发现状态又恢复从原来的状态
kafka PHP扩展

http://www.cnblogs.com/imarno/p/5198940.html

停止kafka
/usr/local/kafka_2.11-0.9.0.1/bin/kafka-server-stop.sh

Hadoop 安装

配置文件修改
  1. 将ssh id_rsa.pub 添加到authorized_keys
  2. hadoop.env 设置JAVA_HOME地址
  3. core-sit.xml 设置fs.defaultFs 和 hadoop.tmp.dir
  4. hdfs-site.xml 设置节点数量
  5. slaves 设置为 hadoop000
  6. mapred-sit.xml 设置mapreduce.framework.name
  7. yarn-sit.xml 设置 yarn.nodemanager.aux-services
初始化namenode
bin/hdfs namenode -format

启动hdfs
sbin/start-dfs.sh

启动yarn
sbin/start-yarn.sh

http://hadoop000:50070 查看hadoop信息
http://hadoop000:8088 查看yarn信息

Hbase 安装

配置文件

  1. JAVA_HOME
  2. HBASE_MANAGES_ZK=false (不使用hbase的zk来管理)
  3. hbase.env
    hbase.rootdir 和hadoop中core-sit配置一样 eg: hdfs://hadoop000:8082/hbase
    hbase.cluster.distributed true
    hbase.zookeeper.quorum hadoop000:2181
  4. regionservers 添加 hadoop000
启动hbase
start-hbase.sh

命令行测试
hbase.sh shell


http://hadoop000:60010

Flume+Kafka整合案例实现   一、为什么要集成Flume和Kafka 我们很多人在在使用Flume和kafka时,都会问一句为什么要将Flume和Kafka集成?那首先就应该明白业务需求,一般使用Flume+Kafka架构都是希望完成实时流式的日志处理,后面再连接上Flink/Storm/Spark Streaming等流式实时处理技术,从而完成日志实时解析的目标。第一、如果Flume直接对接实时计算框架,当数据采集速... 阅读详情

相关推荐

Spark项目实战:大数据实时流处理日志(非常详细)

实战概览一、实战内容二、大数据实时流处理分析系统简介1.需求2.背景及架构三、实战所用到的架构和涉及的知识1.后端架构2.前端框架四、项目实战1.后端开发实战1.构建项目2.引入依赖3.创建工程包结构4.编写代码5.编写pytohn脚本产生数据6.创建日志存放目录并编写Flume的配置文件7.创建Kafka主题8.在HBase中创建项目需要的表9.测试后端代码2.前端开发实战1.构建工程2.引入依...

萧邦主的城邦 3万+

Flink整合kafka实现Flume监控指定文件改动

Flink整合kafka实现Flume监控指定文件改动

bababuzaijia的博客 1134

大数据之实时流处理常用框架

        实时流处理简单概述:实时是说整个流处理相应时间较短,流式技算是说数据是源源不断的,没有尽头的。实时流处理一般是将业务系统产生的数据进行实时收集,交由流处理框架进行数据清洗,统计,入库,并可以通过可视化的方式对统计结果进行实时的展示。本文涉及到的框架或技术有 Flume,Logstash,kafka,Storm, SparkStreaming等。      实时流处理的的流程与技术...

鸡丶哥的博客 2万+

网站日志实时分析(一):flume+kafka+Flink连通

这里flume+kafka+Flink Cluster总体架构就是这个样子。 我们将多个Tomcat Server的Web服务器,或者其他的网站服务器都看你而定,没台节点上都配置了Flume Agent,用来收集本地日志目录。然后在另一台节点配置了Flume Consolidation Agent,用来收集各个Web服务器的Flume Agent的数据,然后送入Kafka Cluster。然后K...

weixin_43272605的博客 7889

flume和kafka整合 flume和kafka为什么一起用?

‌‌‌

Shinobi_Jack的博客 1709

Hadoop、Spark、Flink、Hive、Flume、kafka等大数据框架的角色和关系

大数据框架

QAQ_JUIMY的博客 7300

Flume + Kafka + Flink 简单例子

Kafka作为Flume 的 Channel,将数据保存到topic中,Flink作为Kafka的消费者,消费topic中的数据,实现实时数据的分析。定时向文件中插入数据(模拟日志文件的生成,向指定文件中插入当前时间戳)Kafka作为Flume的Channels。

GX_0824的博客 1387

Flume整合Kafka

目录1、背景2、整合流程2.1 启动Zookeeper和Kafka2.2 创建主题2.3 启动Kafka消费者2.4 配置Flume2.5 启动Flume2.6 测试 1、背景 为什么要使用Flume + Kafka ? 以实时流处理项目为例,由于采集的数据量可能存在峰值和峰谷,假设是一个电商项目,那么峰值通常出现在秒杀时,这时如果直接将 Flume 聚合后的数据输入到 Storm 等分布式计算框架中,可能就会超过集群的处理能力,这时采用 Kafka 就可以起到削峰的作用。Kafka 天生为大数据场景而设计

小财迷嘻嘻的博客 755

基于Hadoop生态SparkStreaming的大数据实时流处理平台的搭建

随着公司业务发展,对大数据的获取和实时处理的要求就会越来越高,日志处理、用户行为分析、场景业务分析等等,传统的写日志方式根本满足不了业务的实时处理需求,所以本人准备开始着手改造原系统中的数据处理方式,重新搭建一个实时流处理平台,主要是基于hadoop生态,利用Kafka作为中转,SparkStreaming框架实时获取数据并清洗,将结果多维度的存储进HBase数据库。 整个平台大致的框架如下: ...

程序之道的博客 533

ubuntu18.04美化主题(完整版)

和网上的美化一样,但是我当初跟着博客美化的时候遇到一些问题,按博客的做法无法解决。 所以我自己也写一篇关于ubuntu18.04美化主题的博客。 第一步:安装主题工具:GNOME Tweaks sudo apt-get update sudo apt-get install gnome-tweak-tool 然后安装完成后我们打开Tweaks(截图如下): 第二步,修改窗口按钮位...

B丶atty的博客 7万+

告别简陋行情!在Ubuntu24.04系统用Wine9.0跑同花顺远航版的全流程记录

本文详细记录了在Ubuntu 24.04系统上,通过Wine 9.0兼容层成功安装并流畅运行同花顺远航版的全过程。文章对比了该方案与官方简陋Linux原生版本的功能差异,重点解决了高分辨率屏幕下的字体与界面显示问题,并提供了关键配置调优与长期维护建议,为Linux用户提供了功能完备的专业金融行情解决方案。

weixin_29207533的博客 1071

wow tbc 时光徽章价格API请求(Python实现)

最近在准备学习实时流处理的开源框架,用flink加kafka加flume去实现,然后缺点数据,作为wow玩家,索性就直接去请求了时光徽章的API去作为原数据,直接上代码 import datetime import requests from requests.auth import HTTPBasicAuth def get_access_token(region): client_secret = "client_secret" #从战网官网申请的clie...

hzy670104089的博客 1048

Comfy UI实战:如何用Checkpoint和Lora打造超写实人像(附完整工作流)

本文详细介绍了如何利用Comfy UI结合Checkpoint基础模型和Lora微调模型,打造超写实人像生成系统。从核心模型选择、工作流架构设计到提示词工程和参数优化,提供了一套完整的实战指南,帮助创作者提升AI绘画的专业水准和效率。

weixin_29032489的博客 459

Linux_BigData常用配置/命令

Linux 双网卡配置 vi /etc/sysconfig/network-scripts/ifcfg-eth0 #配置网卡/更改IP rm -rf /etc/udev/rules.d/70-persistent-net.rules #删除MAC地址 service network restart #重启网络 service iptables stop #关闭防火墙 chkco...

qq_45431935的博客 665

【Pandas总结】第二节 Pandas 的数据读取_pd.read_csv()的使用详解(非常全面,推荐收藏)

pandas对纯文本的读取提供了非常强力的支持,参数有四五十个。这些参数中,有的很容易被忽略,但是在实际工作中却用处很大。

weixin_47139649的博客 11万+

智能织梦:基于Rokid AR眼镜的家庭情感记忆增强系统设计与实践

本文介绍了基于Rokid AR眼镜的'智能织梦'系统,通过增强现实技术捕捉和重现家庭情感记忆。系统利用多模态传感器和轻量级情感识别模型,自动记录家庭互动中的情感峰值时刻,并生成沉浸式记忆片段。测试数据显示,该系统显著提升了家庭情感互动的频率和质量,特别适用于多代同堂家庭和记忆唤醒场景。

sre5engineer的博客 536

sparkstreaming+flume+kafka实时流式处理完整流程

sparkstreaming+flume+kafka实时流式处理完整流程 ​ 一、前期准备 1、环境准备,四台测试服务器 spark集群三台,hadoop02,hadoop03,hadoop04 kafka集群三台,hadoop02,hadoop03,hadoop04 zookeeper集群三台,hadoop02,hadoop03,hadoop04 日志接收服务器, hadoop02 日志收集流程: 日志收集服务...

Ma_in.的博客 3965

PPT太丑?用InDesign制作电影级的交互式在线演示文档

本文旨在解决传统演示软件(如PowerPoint、Keynote)在制作商业提案、设计报告时,普遍存在的模板化严重、视觉表现力不足、动态效果廉价的核心痛点。我们将介绍一套常被设计师们“误解”或“忽略”的“降维打击”工作流,核心是利用印刷排版软件 Adobe InDesign 强大的版式控制、动画与交互功能,来创建电影级的动态演示文稿,并通过其 在线发布 (Publish Online) 功能,一键生成可在任何浏览器中流畅访问的网页版交互式文档,从而极大地提升提案的专业度与视觉冲击力。

Kingsdesigner的博客 1276

基于Flume+Kafka+Spark-Streaming的实时流式处理完整流程

基于Flume+Kafka+Spark-Streaming的实时流式处理完整流程

Ganymede的Hadoop世界 1万+

避坑指南:CST粒子工作室Track Solver常见的5个参数设置错误

本文深入剖析了CST粒子工作室中Track Solver在电子枪仿真时常见的5个关键参数设置错误,包括空间电荷模型选择、发射源定义、材料边界处理、监视器配置及求解器稳定性设置。通过对比错误与正确做法,帮助用户避开陷阱,确保粒子追踪仿真的物理准确性与数值稳定性,从而获得更精准的电子枪仿真结果。

dapp9builder的博客 486

传统方式部署 Hadoop 高可用集群

传统方式部署 Hadoop 高可用集群

寂夜了无痕的博客 265

Flume+Kafka+Spark Streaming+MySQL实时数据处理

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 ...

u014552259的博客 5190

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Flume对接Kafka详细过程

一、为什么要集成Flume和Kafka 一般使用Flume+Kafka架构都是希望完成实时流式的日志处理,后面再连接上Storm/Spark Streaming等流式实时处理技术,从而完成日志实时解析的目标。如果Flume直接对接实时计算框架,当数据采集速度大于数据处理速度,很容易发生数据堆积或者数据丢失,而kafka可以当做一个消息缓存队列,从广义上理解,把它当做一个数据库,可以存放一段时间的数据。 因此数据从数据源到flume再到Kafka时,数据一方面可以同步到HDFS做离线计算,另一方面可以做实时计

~ 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

为什么要把Kafka和Flume结合使用

一、概念剖析Flume+Kafka Flume 是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,通过监控整个文件目录或者某一个特定文件,用于收集数据;同时Flume也 提供数据写到各种数据接受方(可定制)的能力,用于转发数据。Flume 的易用性在于通过读取配置文件,可以自动收集日志文件,在大数据处理及各种复杂的情况下,flume 经常被用...

qq_37466640的博客 5539

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: redis 运维优化相关
下一篇: PHP 函数filesize获取文件大小错误,一直不变
o王o
博客等级 码龄13年 32粉丝 97原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值