一百零八、Kettle采集Kafka数据到HDFS(踩坑,亲测有效)

news2024/11/16 3:25:41

Kafka到HDFS,除了用Kafka API和flume之外,还可以用kettle,最大优点是不用写代码!

版本:Kettle版本:8.2、Hadoop版本:3.1.3

前提:    详情请看鄙人的一百零一、Kettle8.2.0连接Hive3.1.2(踩坑,亲测有效)

http://t.csdn.cn/mWfOChttp://t.csdn.cn/mWfOC

前提一、Hadoop系列配置文件已复制到kettle路径下     路径为:D:\java\kettle\pdi-ce-8.2.0.0-342\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp30

注意:以上的配置文件要与自己使用的服务器配置文件一致 

前提二、在D:\java\kettle\pdi-ce-8.2.0.0-342\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp30\lib文件夹下注意替换jar包

 前提三、在D:\java\kettle\pdi-ce-8.2.0.0-342\data-integration\lib增加MySQL驱动包,注意驱动包版本问题

 这些准备好之后,下面开始用kettle采集Kafka中的数据到hdfs!

第1步,在kettle中创建新的转换任务。

第2步,在Streaming中拖拽Kafka consumer控件,并且修改Kafka consumer控件配置信息

首先,Setup模块

Transformation:最好新建一个,用于返回流中的结果

Connection:选择direct ,右侧输入bootstrap-server     IP地址:端口号9092

Topics:选择kafka消费的topic

Consumer group:消费者组,随便填

 

其次,Batch模块(根据自己的实际情况修改参数

Duration: 处理批次间隔

Number-of-records: 处理批次条数

maximum concurrent batches:最大并发批次(8.2版本没有,9.3版本有)

message prefetch limit:消息预取限制,防止读取数据量太大,造成kettle挂掉(8.2版本没有,9.3版本有)

Offset-management: 偏移量管理

最后,Result fields模块

 

 其余,Fields和Options两个模块不需要修改。

 第3步,拖拽一个应用模块里面的写日志控件,方便查看Kafka中的字段

 第4步,拖拽一个转换模块里面的字段选择控件,只取Kafka日志中的Message字段

 第5步,是关键的一步!!! 拖拽输入模块里的JSON input插件

首先,在文件模块页面,勾选源定义在一个字段里,并从Message字段获取源。可以修改步骤名称

其次,在字段模块。如果Select fields查不到字段的话,别慌。手动输入即可,不过此处为第一级别的字段,二级字段不在此处。不需要很详细。另外,要注意字段的类型

这是第一个大坑。明明Kafka里有数据,JSON input控件却找不到字段,最后发现可以手动输入字段名。

第6步,由于还有二级字段需要解析,因此还要再拖拽一个JSON input字段

首先,拖拽输入模块里的JSON input插件

其次,在文件模块,勾选源定义在一个字段里,并从evaluationList字段获取源

最后,在字段页面,Select fields字段。如果找不到,手动输入即可。注意,字段类型

 

 第7步,为了方便查看目前已有的字段,并且修改一些字段的名称,再次拖拽转换模块里面的字段选择控件

首先,在选择和修改页面,获取选择的字段,并且把不用的字段删掉

其次,在元数据页面,修改需要修改的字段名称,注意字段类型以及格式的修改,特别是时间戳类型的字段,不能用string

 第8步,最后一个控件。由于我这边是从Kafka读取数据到HDFS,所以我这边是拖拽Big Data里的Hadoop file output控件

首先,拖拽Big Data里的Hadoop file output控件

其次,在文件页面。

 

1.选择Hadoop Cluster  如果没有,可以新建一个  (前提是开启了Hadoop)

1.1.点击New新建Hadoop Cluster 

cluster name:随便填

storage:选择HDFS

HDFS的Hostname、Port,注意与Hadoop配置文件core-site.xml里填的一模一样

Username和Password就填自己的服务器密码,一般用户名是root,密码就是自己设置的root用户密码

 注意:如果配置文件core-site.xml里hostname是hurys22,那么kettle里的Hostname也必须是hurys22,而不能是192.168.1.22这种,这是第二个大坑

 1.2 这部分填好即可,剩下的部分不用填。填好后测试一下

这4个好即可,其他不需要

 2.在Folder/File,选择hdfs的文件路径。可以先自己创建好,也可以让它自动生成。不过,自己要先创建好目标文件夹,因为她有个文件权限的问题。这是第三个大坑!!!

其实,经踩坑后发现,目标文件evaluation.csv,kettle任务可以自行创建,不过目标文件夹rtp,如果HDFS没有则必须提前手动创建好,然后给这个文件夹赋权即可。

2.1 创建hdfs目标文件夹

[root@hurys22 soft]# hdfs dfs -mkdir  -p  /rtp

2.2 文件赋权

[root@hurys22 ~]# hdfs dfs -chmod -R 777 /rtp/

注意:必须要修改文件夹权限,否则kettle会报错文件权限不够

Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=Administrator, access=WRITE, inode="/rtp":root:supergroup:drwxr-xr-x

3.如果自己已经创建好目标文件,那么要勾选 启动时不创建文件

4.文件扩展名填csv  

5.一个小技巧,可以通过显示文件名查看即将生成的目标文件名,从而可以确认文件名是否正确

 6.在内容页面。选择分隔符,一般是,或者;     还有编码:UTF-8

 7.在字段页面,点击获取字段和最小宽度,检查所需字段以及字段类型,注意时间戳字段类型的格式

 第9步,在Hadoop file output控件修改好,保存kettle任务,点击运行

 同时,HDFS会在提前建好的目标文件夹下自动生成目标文件,当任务停止时,文件才会显示数据大小。

 不过,可以直接下载查看

第一步,点击Download

 第二步,在下载文件夹下可以看到刚才下载的文件evaluation.csv以及文件大小

第三步,用notepad++打开目标文件evaluation.csv查看数据

 

截止这边,用kettle采集Kafka数据到HDFS中就全部结束了,坑也挺多的。

乐于奉献共享,帮我你我他!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/505987.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pip安装配置清华镜像源scrapy框架,并进行框架的案例演示

文章目录 运行cmd终端后直接输入安装成功scrapy框架安装成功 为什么使用此命令安装scrapy框架成功后创建scrapy项目建议在pycharm终端创建项目打开项目 用scrapy框架实现案例——从新浪网爬取热点并把数据输入到excel表中编辑setting.py文件创建脚本、写入脚本在终端运行脚本文…

长三角生物医药产业加速跑,飞桨螺旋桨为创新药企、医药技术伙伴装上AI大模型引擎...

生物医药是国家“十四五”规划中明确的战略性新兴产业之一。长三角地区是中国生物医药产业的排头兵,也是《“十四五”生物经济发展规划》的“生物经济先导区”之一。据《上海市生物医药产业投资指南》显示,2022 年上海市生物医药产业在 I 类国产创新药数…

新手如何学习挖漏洞?【网络安全】

新手如何学习挖漏洞?看这篇就够了 前言 有不少阅读过我文章的伙伴都知道,我从事网络安全行业已经好几年,积累了丰富的经验和技能。在这段时间里,我参与了多个实际项目的规划和实施,成功防范了各种网络攻击和漏洞利用&…

Cron表达式X分钟执行一次的设计缺陷。SQL JOIN的设计缺陷。在线Cron表达式网站的缺陷。Spring 定时任务的年问题。

Cron Cron表达式 定时任务计划任务 Chronological英 /ˌkrɒnəˈlɒdʒɪk(ə)l/adj. 按发生时间顺序排列的;(年龄)按时间计算的1. 月 周设计精妙吗? 学习 0/5 * * * * ? * 秒 分 时 日 月 周 年1. 年一般省略。为&#xf…

Live800:服务经济时代,企业如何满足客户需求?

在互联网与市场经济的催化下,我们正在从产品经济时代过渡到服务经济时代。在产品经济时代,企业关注的核心是质量和成本;而在服务经济时代,如何面向客户,满足客户需求则成为企业建立核心竞争力的关键。 具体来说&#x…

【精选】关于洪涝灾害智慧水利和人工智能大模型的解决方案2023版

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除 智慧水利平台 实现“全局一盘棋”的智慧水利综合管理,通过“一图、一库、一平台”结合水利大数据、数字孪生与人工智能,为水利工作提供有力的管理抓手&…

SingleR --细胞注释

文章目录 briefExample使用内置的 references使用其他注释好的数据集作为 reference singleR还提供了注释诊断的方法 brief Example The celldex package provides access to several reference datasets (mostly derived from bulk RNA-seq or microarray data)。 The Human…

《狂飙》原著来了,邀你重新见证

2023年的开篇十分精彩且丰富,经历过生活的不幸,新的一年万物复兴,每个人心底那颗躁动的心又重新释放,希望新的开始不负所望,年末复盘时所得皆所愿! 开篇 开年影视第一炮,炸出了所有人被压抑的内…

AIGC技术发展和应用方向

AIGC(Artificial Intelligence Generated Content)是指通过人工智能技术生成的各种文本、图像、音频和视频等多媒体内容。AIGC技术是机器学习和自然语言处理等技术的结合,通过对海量数据的学习和分析,可以让计算机模拟人类的创造力…

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

作者:十眠 背景 随着 Apache Dubbo、Nacos 以及 Spring Cloud 等服务框架的流行,越来越多的企业开始采用微服务架构来构建其应用程序。微服务架构使企业能够将其应用程序拆分成多个小型服务,这些服务可以独立部署和扩展。这种架构模式也使企…

怎么给pdf文件添加水印

怎么给pdf文件添加水印?PDF文件的应用比较广泛,大家喜欢将各种办公资料和文档转换成PDF格式,为什么呢?因为pdf文件具有比较强的稳定性而且不利于编辑修改,所以更利于保存和转发。有时候我们会在工作中花费大量时间制作…

第1天学习Docker——Docker简介

一、Docker是什么? Docker 是一个开源的应用容器引擎,基于 Golang 语言开发,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 服务器。容器是一个沙箱机制,相互之间不会…

神经网络语言模型(NNLM)

神经网络语言模型【NNLM】 1 为什么使用神经网络模型?2 什么是神经网络模型?3. 代码实现3.1 语料库预处理代码3.2 词向量创建3.3 NNLM模型类3.4 完整代码 1 为什么使用神经网络模型? 解决独热编码无法解决词之间相似性问题 使用神经网络语言…

带稀缺注释的动物姿态估计CVPR2023

由于缺乏标记数据,动物姿态估计是一项重要但未被充分探索的任务。作者用稀缺的注释(scarce annotation)来处理动物姿态估计,其中只有一小部分标记数据和大部分未标记图像可用。并且,作者提出了ScarceNet,这…

Presto

Presto Presto基本介绍 前言 Presto是一款Facebook开源的MPP架构的OLAP查询引擎,可针对不同数据源执行大容量数据集的一款分布式SQL执行引擎。因为工作中接触到Presto,研究它对理解SQL Parser、常见算子的实现(如SQL中table scan,join,agg…

MySQL行锁、表锁间隙锁

事务隔离级别的实现原理:锁MVCC 表级锁&行级锁 表级锁:对整张表加锁。开销小,加锁快,不会出现死锁;锁粒度大,发生锁冲突的概率高,并发度低。 行级锁:对某行记录加锁。开销大&a…

论 spring 的三级缓存

论 spring 的三级缓存 预备知识 bean的生命周期 bean 的生命周期 为何会出现循环引用 这个问题只是出现在spring 容器的机制中,其实我们代码中很简单就解决了。 假设A 对象里需要注入一个B属性,B 对象里面需要注入一个A 属性。根据Bean 的生命周期&…

【原创】运维工程师涨薪计划,chatGPT帮你做规划

文章目录 1、运维工程师怎么涨薪呢?a)加大深度b)加大广度 2、运维工程师何处去呢?3、chatGPT告诉你3年、5年、10年运维和开发的现状;有运维经验的工程师,搞开发好吗薪资会有显著提升吗以数据证明&#xff0…

校园食堂明厨亮灶AI分析系统 yolov5

校园食堂明厨亮灶AI分析系统通过yolov5网络模型技术,校园食堂明厨亮灶监控分析模型算法针对校园餐厅后厨不按要求戴口罩、不穿厨师帽、陌生人员进入后厨、厨师不穿厨师服、上班时间玩手机、老鼠识别等行为自动识别抓拍告警。Yolo算法,其全称是You Only L…

电脑缺少msvcp140.dll怎么办,缺少msvcp140一键修复方法

电脑缺少msvcp140.dll怎么办?这个问题相信不少小伙伴都遇到过,msvcp140.dll文件是很多软件跟游戏运行必须用到的文件,如果丢失或者损坏,很多软件都会无法打开运行。其实知道知道方法,修复起来其实也不会很难&#xff0…