【慕课网实战】Spark Streaming实时流处理项目实战笔记三之铭文升级版

铭文一级:

Flume概述
Flume is a distributed, reliable,
and available service for efficiently collecting(收集),
aggregating(聚合), and moving(移动) large amounts of log data

webserver(源端) ===> flume ===> hdfs(目的地)

设计目标:
可靠性
扩展性
管理性

业界同类产品的对比
(***)Flume: Cloudera/Apache Java
Scribe: Facebook C/C++ 不再维护
Chukwa: Yahoo/Apache Java 不再维护
Kafka:
Fluentd: Ruby
(***)Logstash: ELK(ElasticSearch,Kibana)

Flume发展史
Cloudera 0.9.2 Flume-OG
flume-728 Flume-NG ==> Apache
2012.7 1.0
2015.5 1.6 (*** + )
~ 1.7

Flume架构及核心组件
1) Source 收集

2) Channel 聚集

3) Sink 输出

Flume安装前置条件
Java Runtime Environment - Java 1.7 or later
Memory - Sufficient memory for configurations used by sources, channels or sinks
Disk Space - Sufficient disk space for configurations used by channels or sinks
Directory Permissions - Read/Write permissions for directories used by agent

安装jdk
下载
解压到~/app
将java配置系统环境变量中: ~/.bash_profile
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
source下让其配置生效
检测: java -version

安装Flume
下载
解压到~/app
将java配置系统环境变量中: ~/.bash_profile
export FLUME_HOME=/home/hadoop/app/apache-flume-1.6.0-cdh5.7.0-bin
export PATH=$FLUME_HOME/bin:$PATH
source下让其配置生效
flume-env.sh的配置:export JAVA_HOME=/home/hadoop/app/jdk1.8.0_144
检测: flume-ng version

example.conf: A single-node Flume configuration

使用Flume的关键就是写配置文件

A) 配置Source
B) 配置Channel
C) 配置Sink
D) 把以上三个组件串起来

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

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

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

使用telnet进行测试: telnet hadoop000 44444

Event: { headers:{} body: 68 65 6C 6C 6F 0D hello. }
Event是FLume数据传输的基本单元
Event = 可选的header + byte array

铭文二级:

Flume设计目标:可靠性,扩展性,管理性

官网:flume.apache.org -> Documentation(左栏目) -> Flume User Guide

左栏为目录,较常用的有:

Flume Sources:avro、exec、kafka、netcat

Flume Channels:memory、file、kafka

Flume Sinks:HDFS、Hive、logger、avro、ElasticSearch、Hbase、kafka

注意:每个source、channel、sink都有custom自定义类型

Setting multi-agent flow

Consolidation

Multiplexing the flow

实战准备=>

1.前置要求为以上铭文一4点,Flume的下载可以在cdh5里wget下来

2.安装jdk,指令:tar -zxvf * -C ~/app/ ,最后勿忘:source ~/.bash_profile

配置cp flume-env.sh flume-env.sh.template,export JAVA_HOME=/home/hadoop/app/jdk1.8.0_144

3.检测是否安装成功:flume-ng version

实战步骤=>

实战需求:从指定的网络端口采集数据输出到控制台

配置文件(创建example.conf于conf文件夹中,主要是看官网!):

1、a1.后面的source、channel、sink、均有"s"

2、后面连接是,sources后面的channel有"s",sink后面的chanel无"s"

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

启动另一终端ssh上,使用telnet进行测试: telnet hadoop000 44444

原文地址:https://www.cnblogs.com/kkxwz/p/8350753.html

时间: 2024-11-10 16:46:02

【慕课网实战】Spark Streaming实时流处理项目实战笔记三之铭文升级版的相关文章

【慕课网实战】Spark Streaming实时流处理项目实战笔记十之铭文升级版

铭文一级: 第八章:Spark Streaming进阶与案例实战 updateStateByKey算子需求:统计到目前为止累积出现的单词的个数(需要保持住以前的状态) java.lang.IllegalArgumentException: requirement failed: The checkpoint directory has not been set. Please set it by StreamingContext.checkpoint(). 需求:将统计结果写入到MySQLcre

【慕课网实战】Spark Streaming实时流处理项目实战笔记七之铭文升级版

铭文一级: 第五章:实战环境搭建 Spark源码编译命令:./dev/make-distribution.sh \--name 2.6.0-cdh5.7.0 \--tgz \-Pyarn -Phadoop-2.6 \-Phive -Phive-thriftserver \-Dhadoop.version=2.6.0-cdh5.7.0 铭文二级: 第五章:实战环境搭建(所有都配置到环境变量) 1.Scala的安装:Download->previous releases  //课程使用2.11.8

【慕课网实战】Spark Streaming实时流处理项目实战笔记八之铭文升级版

铭文一级: Spark Streaming is an extension of the core Spark API that enables scalable, high-throughput, fault-tolerant stream processing of live data streams. Spark Streaming个人的定义: 将不同的数据源的数据经过Spark Streaming处理之后将结果输出到外部文件系统 特点 低延时 能从错误中高效的恢复:fault-toler

【慕课网实战】Spark Streaming实时流处理项目实战笔记十五之铭文升级版

铭文一级:[木有笔记] 铭文二级: 第12章 Spark Streaming项目实战 行为日志分析: 1.访问量的统计 2.网站黏性 3.推荐 Python实时产生数据 访问URL->IP信息->referer和状态码->日志访问时间->写入到文件中 本地与虚拟机都要装了python才能运行 重要代码: #coding=UTF-8 #数组最后一个没有"," url_paths = [ "class/128.html", "class

【慕课网实战】Spark Streaming实时流处理项目实战笔记二十之铭文升级版

铭文一级: Spring Boot整合Echarts动态获取HBase的数据1) 动态的传递进去当天的时间 a) 在代码中写死 b) 让你查询昨天的.前天的咋办? 在页面中放一个时间插件(jQuery插件),默认只取当天的数据2) 自动刷新展示图 每隔多久发送一个请求去刷新当前的数据供展示 统计慕课网当天实战课程从搜索引擎过来的点击量 数据已经在HBase中有的 自己通过Echarts整合Spring Boot方式自己来实现 铭文二级: 在Spring Boot项目pom.xml下引入<repo

【慕课网实战】Spark Streaming实时流处理项目实战笔记十六之铭文升级版

铭文一级: linux crontab 网站:http://tool.lu/crontab 每一分钟执行一次的crontab表达式: */1 * * * * crontab -e */1 * * * * /home/hadoop/data/project/log_generator.sh 对接python日志产生器输出的日志到Flumestreaming_project.conf 选型:access.log ==> 控制台输出 exec memory logger exec-memory-log

【慕课网实战】Spark Streaming实时流处理项目实战笔记十八之铭文升级版

铭文一级: 功能二:功能一+从搜索引擎引流过来的 HBase表设计create 'imooc_course_search_clickcount','info'rowkey设计:也是根据我们的业务需求来的 20171111 +search+ 1 项目打包:mvn clean package -DskipTests 报错:[ERROR] /Users/rocky/source/work/sparktrain/src/main/scala/com/imooc/spark/project/dao/Cou

Spark Streaming实时流处理项目实战

第1章 课程介绍   1-1 -导学-   1-2 -授课习惯和学习建议   1-3 -OOTB环境使用演示   1-4 -Linux环境及软件版本介绍   1-5 -Spark版本升级第2章 初识实时流处理   2-1 -课程目录   2-2 -业务现状分析   2-3 -实时流处理产生背景   2-4 -实时流处理概述   2-5 -离线计算和实时计算对比   2-6 -实时流处理框架对比   2-7 -实时流处理架构及技术选型   2-8 -实时流处理在企业中的应用第3章 分布式日志收集框

【慕课网实战】Spark Streaming实时流处理项目实战笔记十九之铭文升级版

铭文一级:(没有内容) 铭文二级: 创建Spring boot项目: 看官网,Quick Start下面有两个依赖,必须得使用 但是如果用IDEA构建Spring boot,则会自动添加 New Project->Spring Initializr->Next 任意确定: com.imooc.spark web 选版本.点击左边的web->勾上web project name:imooc_web Reference里修改成本地的maven版本 删除多余的文件:mvn.mvnw.mvnw.