Gobblin采集kafka数据

keil中打开双精度浮点运算模块 在keil中使用浮点数处理数据时,要开启FPU单元,还要进行设置 阅读详情
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处

找时间记录一下利用Gobblin采集kafka数据的过程,话不多说,进入正题

一.Gobblin环境变量准备

需要配置好Gobblin0.7.0工作时对应的环境变量,可以去Gobblin的bin目录的gobblin-env.sh配置,比如

export GOBBLIN_JOB_CONFIG_DIR=~/gobblin/gobblin-config-dir
export GOBBLIN_WORK_DIR=~/gobblin/gobblin-work-dir
export HADOOP_BIN_DIR=/opt/cloudera/parcels/CDH-5.4.0-1.cdh5.4.0.p0.27/lib/hadoop/bin

也可以去自己当前用户bashrc下配置,当然,确保JAVA_HOME也已经配置.

这里配置的Gobblin的配置文件目录和工作目录以及执行MR需要用到的hadoop bin目录

二.Gobblin Standalone模式配置和使用

顾名思义,就是在部署Gobblin的单节点上来采集kafka数据,没有用到Hadoop MR,配置过程如下

首先去GOBBLIN_JOB_CONFIG_DIR下,新建一个gobblinStandalone.pull配置文件,配置如下

job.name=GobblinKafkaQuickStart
job.group=GobblinKafka
job.description=Gobblin quick start job for Kafka
job.lock.enabled=false
job.schedule=0 0/3 * * * ?
kafka.brokers=datanode01:9092
source.class=gobblin.source.extractor.extract.kafka.KafkaSimpleSource
extract.namespace=gobblin.extract.kafka

writer.builder.class=gobblin.writer.SimpleDataWriterBuilder
writer.file.path.type=tablename
writer.destination.type=HDFS
writer.output.format=txt

data.publisher.type=gobblin.publisher.BaseDataPublisher

mr.job.max.mappers=1

metrics.reporting.file.enabled=true
metrics.log.dir=${env:GOBBLIN_WORK_DIR}/metrics
metrics.reporting.file.suffix=txt

bootstrap.with.offset=earliest

这里需要配置好抽取数据的kafka broker以及一些gobblin的工作组件,如source,extract,writer,publisher等,不明白的可以参考Gobblin wiki,很详细.

我这里额外配置了一个job.schedule让gobblin三分钟检查一次kafka的所有topic是否有新增,然后抽取任务就会三分钟一次定时执行.这里用的Gobblin自带的Quartz定时器.

ok,配置好以后进入Gobblin根目录,启动命令如:

 bin/gobblin-standalone.sh –conffile $GOBBLIN_JOB_CONFIG_DIR/gobblinStandalone.pull start

我这里GOBBLIN_JOB_CONFIG_DIR有多个pull文件,因此需要指明,如果GOBBLIN_JOB_CONFIG_DIR下只有一个配置文件,那么直接bin/gobblin-standalone.sh start即可执行

最终抽取过来的数据会输出到GOBBLIN_WORK_DIR/job-output 中去.

三.Gobblin MapReduce模式配置和使用

这次配置Gobblin会使用MapReduce来抽取kafka数据到Hdfs,新建gobblin-mr.pull文件,配置如下

job.name=GobblinKafkaToHdfs
job.group=GobblinToHdfs1
job.description=Pull data from kafka to hdfs use Gobblin
job.lock.enabled=false
kafka.brokers=datanode01:9092

source.class=gobblin.source.extractor.extract.kafka.KafkaSimpleSource
extract.namespace=gobblin.extract.kafka
topic.whitelist=jsonTest

writer.builder.class=gobblin.writer.SimpleDataWriterBuilder
simple.writer.delimiter=\n
simple.writer.prepend.size=false
writer.file.path.type=tablename
writer.destination.type=HDFS
writer.output.format=txt
writer.partitioner.class=gobblin.example.simplejson.TimeBasedJsonWriterPartitioner
writer.partition.level=hourly
writer.partition.pattern=yyyy/MM/dd/HH
writer.partition.columns=time
writer.partition.timezone=Asia/Shanghai
data.publisher.type=gobblin.publisher.TimePartitionedDataPublisher

mr.job.max.mappers=1

metrics.reporting.file.enabled=true
metrics.log.dir=/gobblin-kafka/metrics
metrics.reporting.file.suffix=txt

bootstrap.with.offset=earliest

fs.uri=master:8020
writer.fs.uri=${fs.uri}
state.store.fs.uri=${fs.uri}

mr.job.root.dir=/gobblin-kafka/working
state.store.dir=/gobblin-kafka/state-store
task.data.root.dir=/jobs/kafkaetl/gobblin/gobblin-kafka/task-data
data.publisher.final.dir=/gobblintest/job-output

 

注意标红部分的配置第一行,我这里加了topic过滤,只对topic名称为jsonTest的主题感兴趣

因为需求是需要将gobblin的topic数据按照每天每小时来进行目录分区,具体分区目录需要根据kafka record中的时间字段来

我这里record是json格式的,时间字段格式如{…"time":"2016-10-12 00:30:20"…},因此需要继承Gobblin的TimeBasedWriterPartitioner来重写子类方法按照时间字段对hdfs的目录分区

以下配置需要注意

fs.uri=master:8020

改成自己的集群的hdfs地址

writer.partition.columns=time

这里的time和json中的时间字段保持一致即可

writer.partition.level=hourly

表示hdfs分区到小时

writer.partition.pattern=yyyy/MM/dd/HH

表示最终需要在hdfs分区的目录格式(按照自己的最终分区需求自定义即可)

writer.partitioner.class=gobblin.example.simplejson.TimeBasedJsonWriterPartitioner

重写的hdfs按照json时间字段分区的子类,代码我提交到github了,参考如下链接

https://github.com/cssdongl/gobblin/blob/master/gobblin-example/src/main/java/gobblin/example/simplejson/TimeBasedJsonWriterPartitioner.java

将扩展后的类加入Gobblin相应的模块,我这里是放入gobblin-example模块中去了,重新build,build有问题的话请参考这篇文章

上面配置文件最后的那些路径都是hdfs路径,请确保Gobblin有读写权限

随后启动命令

bin/gobblin-mapreduce.sh --conf $GOBBLIN_JOB_CONFIG_DIR/gobblin-mr.pull

运行成功后,hdfs会出现如下目录,jsonTest是按照对应topic名称生成的,如下图

GobblinPartion1

 

GobblinPartion3

注意MR模式配置Quartz定时调度我试了好几次不起作用,因此如果需要定时执行抽取的话请利用外部的工具,比如Linux的crontab或者Oozie或者Azkaban都是可以的.

四.Gobblin使用总结

1>先熟悉Gobblin官方wiki,写的很详细

2>github上fork一个源代码仔细阅读下source,extract,partioner这块儿的代码

3>使用中遇到问题多研究Gobblin的log和Hadoop的log.

参考资料:

http://gobblin.readthedocs.io/en/latest/case-studies/Kafka-HDFS-Ingestion/

http://gobblin.readthedocs.io/en/latest/user-guide/Partitioned-Writers/

http://gobblin.readthedocs.io/en/latest/developer-guide/IDE-setup/

http://gobblin.readthedocs.io/en/latest/user-guide/FAQs/

别再怕浮点了!手把手教你用Keil MDK开启STM32的FPU,性能实测提升10倍 本文详细介绍了如何在Keil MDK环境下为STM32 Cortex-M系列MCU启用FPU(浮点运算单元),并通过实测数据展示性能差异。从硬件需求确认、Keil工程配置到代码编写技巧,全面解析FPU优化方法,实测性能提升可达10倍。适用于嵌入式开发中需要高效浮点运算的场景,如信号处理、运动控制等。 阅读详情

相关推荐

Keil环境下Cortex-M浮点单元(FPU)启用指南

深入讲解在Keil开发环境中如何正确配置和启用Cortex-M系列处理器的浮点单元(FPU),提升浮点运算性能。内容涵盖编译选项、寄存器设置与keil工具链的协同配置,确保硬件资源充分利用。

weixin_32921023的博客 556

STM32 keil MDK配置FPU详解

stm32 keil配置FPU详解

Telly_的博客 1万+

TKM32F499评估板使用评测之万事开头难先点个灯压压惊

如下图所示,评估板长这个样子: TKM32F499深圳市好钜润科技有限公司发行的一款高性能单片机,以上图片是基于TKM32F499的一款评估板,可以看到评估板上的资源那是相当的丰富了,而且还是白菜价。 1、特点 1、IPS全视角液晶屏,阳光下可视度高; 2、高分辨率800*480; 3、超大存储空间:16MB的FLASH及8MB的RAM,可以运行复杂的界面程序; 4、采用高性能TK499芯片,...

Bruce.yang的嵌入式之旅 1万+

STM32浮点运算单元(FPU)和DSP库使用

STM32F4使用浮点运算单元与DSP库。

32Haozi 6856

Visual Studio 2022调试Godot 4 C#项目全攻略:从环境配置到断点调试

本文详细介绍了如何配置Visual Studio 2022以高效调试Godot 4 C#项目。从环境搭建、外部编辑器设置到两种核心调试模式(附加到进程与启动配置)的实战指南,帮助开发者构建无缝的工业级工作流,解决编码乱码、断点失效等常见问题,大幅提升开发与问题排查效率。

bush的博客 391

八路抢答器____一个作品的制作思路

学习了解到一个产品制作完全由一个人去采购,设计,仿真,画PCB。不光是需求的分析还有实现功能时如何搭建电路,和给出一个简单高效的设计方法也是至关重要的。

weixin_73690807的博客 1522

别让STM32的FPU吃灰了!手把手教你开启Keil中的硬件浮点加速(附实测性能对比)

本文详细介绍了如何在Keil环境中启用STM32的浮点运算单元(FPU),通过实测数据展示硬件浮点加速带来的显著性能提升。从基础配置到高级优化技巧,帮助开发者充分利用FPU资源,提升嵌入式系统的浮点运算效率。

weixin_33716154的博客 407

手把手教你用LabelImg打造专属YOLO数据集:从标注到训练全攻略!

YOLO(You Only Look Once)是一种快速、高效的目标检测算法。它使用一种简洁的.txt文件格式来保存每张图片中的标注信息,适合构建自定义目标检测数据集。🔹 图像文件.jpg.png等;每张图片将对应一个同名的标签文件(.txtdog.jpg对应dog.txt;图像在训练前通常会被缩放成统一尺寸,例如 YOLOv3 默认输入为416x416。🔹 标签文件(.txt)是一个纯文本文件;每一行表示一个标注目标;字段说明类别编号,从0开始,例如:狗是0,猫是1x_center。

FJN110的博客 2465

终极指南:10大数据摄取工具构建实时数据处理流水线 [特殊字符]

在当今数据驱动的时代,实时数据处理已成为企业数字化转型的关键。**Awesome Big Data** 项目为您精心整理了大数据领域最全面的工具和框架资源,特别在**数据摄取**领域提供了丰富的解决方案。本文将重点介绍10个最强大的数据摄取工具,帮助您构建高效的实时数据处理流水线。 ## 📊 为什么数据摄取如此重要? 数据摄取是实时数据处理流水线的第一步,负责从各种数据源收集、传输和加载数据

gitblog_00734的博客 352

Oracle11g下载与安装(windows)

一、Oracle11g下载 二、安装准备 三、执行安装步骤 四、测试连接 附:Oracle11g服务说明

欢迎订阅我的“JAVA全栈开发笔记(全)”专栏,价格优惠,仅需19.9元。 2万+

【2026年得物春招算法岗- 4月18日 -第二题- 老张爬山】(题目+思路+Java&C++&Python解析+在线测试)

这篇文章介绍了一个动态规划问题,解决老张在n天内安排爬山计划以最大化愉悦值的问题。题目允许最多k次打破"不能连续两天爬山"的规则限制。 摘要要点: 使用三维动态规划数组dp[i][j][s],表示第i天结束时已用j次机会、当天状态为s(0不爬/1爬)时的最大愉悦值 状态转移考虑两种情况:当天不爬山时取前一天两种状态的最大值;当天爬山时分别处理前一天不爬山和爬山(需消耗机会)的情况 最终结果为考虑所有可能用掉的k次机会后,最后一天两种状态的最大值 提供了Python、Java和C++三种实

m0_73659489的博客 1357

Gobblin部署--standalone模式

Gobblin standalone kafka

lmalds的专栏 2844

csp信奥赛C++标准模板库STL案例应用1

csp信奥赛C++标准模板库STL案例应用1

王老师青少年编程 1382

数据采集框架Gobblin简介

问题导读: Gobblin的架构设计是怎样的? Gobblin拥有哪些组建,如何实现可扩展? Gobblin采集执行流程的过程? 前面我们介绍Gobblin是用来整合各种数据源的通用型ETL框架,在某种意义上,各种数据都可以在这里“一站式”的解决ETL整个过程,专为大数据采集而生,易于操作和监控,提供流式抽取支持。 号称整合各种数据源“一站式”解决ETL整个过程的架构到底是怎样的呢?没图说个X。 ...

weixin_30872671的博客 195

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Hadoop的数据采集框架

问题导读: Hadoop数据采集框架都有哪些? Hadoop数据采集框架异同及适用场景? Hadoop提供了一个高度容错的分布式存储系统,帮助我们实现集中式的数据分析和数据共享。在日常应用中我们比如要将各种数据采集到HDFS存储服务中去,说到将数据采集到HDFS,我们熟知的框架包括: Apache Sqoop Apache Flume Gobblin DataX Kettle 以及其他很多针对...

weixin_30794851的博客 363

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数据摄取

  Amazon Kinesis:大规模数据流的实时处理;   Apache Chukwa:数据采集系统;   Apache Flume:管理大量日志数据的服务;   Apache Kafka:分布式发布-订阅消息系统;   Apache Sqoop:在Hadoop和结构化的数据存储区...

chikailiao6191的博客 584

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

干货 | 携程机票大数据架构最佳实践

本文转载自 携程技术中心(ctriptech) 公众号,本文PPT请点击下面 阅读原文 获取  作者简介 许鹏,携程机票大数据基础平台Leader,负责平台的构建和运维。深度掌握各种大数据开源产品,如Spark、Presto及Elasticsearch。著有《Apache Spark源码剖析》一书。本文来自许鹏在〖DAMS 2017中国数据资产管理峰会〗上的分享,首发DBAplus社群(ID:db

Hadoop技术博文 3994

Storm精华问答 | 最火的流式处理框架——Storm

戳蓝字“优快云云计算”关注我们哦!Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。 今天就为大家带来Storm诞生到发展再到实...

优快云业界要闻 313

有问有答 | Storm技术内幕与实践精华问答

戳蓝字“优快云云计算”关注我们哦!Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。 随着越来越多的场景对Hadoop的MapR...

优快云云计算 356

【经验】MCU在keil和IAR中开启FPU 硬件浮点运算单元

然后FPU就会生效了,代码中计算浮点数的部分甚至可能比计算整数还快(?

Lovely_him的博客 2940
上一篇: Scala 中下划线的用途
下一篇: 基于 Hive 的文件格式:RCFile 简介及其应用
Syn良子
博客等级 码龄15年 7粉丝 45原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值