- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 Flume自定义拦截器
使用Maven做成Jar包,在flume的目录下mkdir jar,上传此jar到jar目录中。#生成的文件类型,默认是 Sequencefile,可用 DataStream,则为普通文本。* @return event 根据业务处理后的event。* @param event 接收过滤的event。-- flume核心依赖 -->-- 打包插件 -->-- 编译插件 -->// 获取事件对象中的字节数据。// 将获取的数据转换成大写。// 获取配置文件的属性。// 接收被过滤事件集合。
2024-04-23 09:56:38
738
原创 小文件处理案例(自定义InputFormat)
无论hdfs还是mapreduce,对于小文件都有损效率,实践中,又难免面临处理大量小文件的场景,此时,就需要有相应解决方案。将多个小文件合并成一个文件SequenceFile,SequenceFile里面存储着多个文件,存储的形式为文件路径+名称为key,文件内容为value。(2)在业务处理之前,在HDFS上使用mapreduce程序对小文件进行合并。(2)改写RecordReader,实现一次读取一个完整文件封装为KV。(1)在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS。
2024-03-31 22:47:55
285
原创 找博客共同好友案例
以下是博客的好友列表数据,冒号前是一个用户,冒号后是该用户的所有好友(数据中的好友关系是。求出哪些人两两之间有共同好友,及他俩的共同好友都有谁?先求出A、B、C、…
2024-03-31 19:50:31
181
原创 Yarn介绍
Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。
2024-03-29 14:45:24
742
原创 MapReduce中多表合并案例
节点就可以在本地对自己所读到的大表数据进行合并并输出最终结果,可以大大提高合并操作的并发度,加快处理速度。条件的数据并携带数据所来源的文件信息,发往同一个。节点的运算负载则很低,资源利用率不高,且在。缺点:这种方式中,合并的操作是在。(2)在驱动模块中添加缓存文件。适用于关联表中有小表的情形;将商品信息表中数据根据商品。(1)先读取缓存的文件数据。)创建商品和订合并后的。可以将小表分发到所有的。合并到订单数据表中。5)运行程序查看结果。阶段极易产生数据倾斜。
2024-03-25 22:25:21
377
原创 Hadoop数据压缩
hive程序,streaming程序,和java写的mapreduce程序完全和文本处理一样,压缩之后原来的程序不需要做任何修改。在应用中对lzo格式的文件需要做一些特殊处理(为了支持split需要建索引,还需要指定inputformat为lzo格式)。输出之后的数据比较大,处理之后的数据需要压缩存档减少磁盘空间并且以后数据用得比较少的情况。不过,尽管压缩与解压操作的CPU开销不高,其性能的提升和资源的节省并非没有代价。,将其以压缩格式写入底层的流。适合对速度要求不高,但需要较高的压缩率的时候,可以作为。
2024-03-23 23:24:25
617
原创 简单解析版
/ 2 日志长度大于11的为合法。// 5 设置输入和输出路径。// 4 设置最终输出类型。// 3 日志不合法退出。// 1 获取job信息。// 1 获取1行数据。// 2 加载jar包。// 4 设置key。// 3 关联map。
2024-03-17 20:19:17
556
原创 InputFormat接口实现类
输入的文件格式包括:基于行的日志文件、二进制格式文件等。很明显,键并不是行号。一般情况下,很难取得行号,因为文件按字节而不是按行切分为分片。值是这行的内容,不包括任何行终止符(换行符和回车符)。MapReduce任务的输入文件一般是存储在。类型,存储该行在整个文件中的字节偏移量。以下是一个示例,比如,一个分片包含了如下。此时的键是每行排在制表符之前的。以下是一个示例,输入是一个包含。表示一个(水平方向的)制表符。,则每个输入分片包含两行。以下是一个示例,仍然以上面的。每条记录是一行输入。
2024-03-17 20:13:26
910
原创 MapReduce框架原理
最后,生成一个全局排序的文件。对于Map Task,它会将处理的结果暂时放到一个缓冲区中,当缓冲区使用率达到一定阈值后,再对缓冲区中的数据进行一次排序,并将这些有序数据写到磁盘上,而当数据处理完毕后,它会对磁盘上所有文件进行一次合并,以将这些文件合并成一个大的有序文件。1)默认情况下TextInputformat对任务的切片机制是按文件规划切片,不管文件多小,都会是一个单独的切片,都会交给一个maptask,这样如果有大量小文件,就会产生大量的maptask,处理效率极其低下。最简单的方法是使用一个分区。
2024-03-15 22:25:07
1025
原创 MapReduce分布式编程模型
在这种情况下,MapReduce并不是不能做,而是使用后,每个MapReduce作业的输出结果都会写入到磁盘,会造成大量的磁盘IO,导致性能非常的低下。流式计算的输入数据是动态的,而MapReduce的输入数据集是静态的,不能动态变化。)可扩展:协议为了满足新的需求变化,所以控制客户端和服务器过程中,需要直接引进相应的协议,这些是新协议,原序列化方式能支持新的协议报文;)快速:进程通信形成了分布式系统的骨架,所以需要尽量减少序列化和反序列化的性能开销,这是基本的;它适合离线处理而不适合在线处理。
2024-03-15 08:27:44
1126
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人