![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hadoop
文章平均质量分 82
IT牛爷爷
不定时更新计算机专业相关知识
展开
-
Hadoop数据压缩和压缩案例实操
Hadoop数据压缩是一种通过特定的算法来减小计算机文件大小的机制。这种机制在Hadoop中尤其重要,因为它可以有效减少底层存储系统(如HDFS)的读写字节数,从而提高网络带宽和磁盘空间的效率。在运行MapReduce程序时,尤其是在数据规模很大和工作负载密集的情况下,IO操作、网络数据传输、Shuffle和Merge等过程会花费大量的时间,因此数据压缩显得尤为重要。在Hadoop中,压缩可以在MapReduce的任意阶段启用。对于运算密集型的job,建议少用压缩以减少CPU开销;原创 2024-05-25 11:50:53 · 667 阅读 · 0 评论 -
Map Join案例实操
在Reduce端处理过多的表,非常容易产生数据倾斜。我们可以在Map端缓存多张表,提前处理业务逻辑,这样增加Map端业务,减少Reduce端数据的压力,尽可能的减少数据倾斜。具体办法:采用DistributedCache(1)在Mapper的setup阶段,将文件读取到缓存集合中。(2)在Driver驱动类中加载缓存。//缓存普通文件到Task运行节点。//如果是集群运行,需要设置HDFS路径。原创 2024-05-18 15:40:42 · 366 阅读 · 1 评论 -
数据清洗(ETL)案例实操
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。在运行核心业务MapReduce程序之前,往往要先对数据进行清洗,清理掉不符合用户要求的数据。清理的过程往往只需要运行Mapper程序,不需要运行Reduce程序。原创 2024-05-18 15:37:01 · 998 阅读 · 0 评论 -
Reduce Join案例实操
我们要将商品信息表中数据根据商品pid合并到订单数据表中。原创 2024-05-17 16:11:35 · 336 阅读 · 0 评论 -
自定义OutputFormat案例实操
我们可以看到这里的需求跟分区差不多,可能会想到用Partition分区去做,但是不行,在Hadoop的MapReduce框架中,OutputFormat接口和Partitioner类在数据处理和结果输出方面扮演着不同的角色。在这个实现中,我们可以根据某些条件(如键的特定值或值的特定属性)将数据写入不同的文件。过滤输入的log日志,包含atguigu的网站输出到e:/atguigu.log,不包含atguigu的网站输出到e:/other.log。原创 2024-05-16 17:17:19 · 713 阅读 · 0 评论 -
WritableComparable排序案例实操
排序是MapReducer框架中最重要的操作之一。MapTask和ReduceTask均会对数据按照key进行排序,该操作属于Hadoop的默认行为,任何应用程序中的数据均会被排序,而不管逻辑上是否需要。默认排序是按照字典顺序排序,且实现该排序的方法是快速排序。自定义排序WritableComparable原理分析:@Overrideint result;// 按照总流量大小,倒序排列result = 1;原创 2024-04-11 14:53:17 · 1034 阅读 · 0 评论 -
Partition分区案例实操
我们自定义的分区数和在driver类中的设置的分区数之间有一定的关系。(1)如果ReducerTask的数量>getPartition的结果数,则会多产生几个空的输出文件part-r-00xx;(2)如果1原创 2024-04-10 19:56:07 · 445 阅读 · 0 评论 -
序列化案例实操(统计每一个手机号耗费的总上行流量、总下行流量、总流量)
序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。在企业开发中往往常用的基本序列化类型不能满足所有需求,比如在Hadoop框架内部传递一个bean对象,那么该对象就需要实现序列化接口。具体实现bean对象序列化步骤如下7步:(1)必须实现Writable接口(2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造super();原创 2024-04-05 19:19:37 · 980 阅读 · 0 评论 -
WordCount案例实操
大家引入类的时候一定注意不要引入错了,这里涉及的类太多了,我就是引入错了导致有bug找了半天才发现问题,比如这个Text,大家输入完Text不要立即点回车,一定要注意看看是否导入了正确的类。实现过程:按照MapReduce编程规范,分别编写Mapper,Reducer,Driver。(4)创建包名:com.atxiaoyu.mapreduce.wordcount。(1)创建maven工程,MapReduceDemo。在给定的文本文件中统计输出每一个单词出现的总次数。这个文件的内容就是执行的词频统计的结果。原创 2024-03-24 16:37:40 · 709 阅读 · 0 评论 -
HDFS的API操作
我们接下来封装一下,因为这一套初始化流程和关闭资源流程在很多操作中都得用,用一次写一次就十分麻烦,所以我们把他写成两个方法:init()初始化方法和close()关闭资源方法,每次用的时候直接调用一下就好了。首先拷贝hadoop-3.1.0到非中文路径(比如d:\),然后配置HADOOP_HOME环境变量和Path环境变量。这里涉及到三个操作:对文件名称的修改,文件的移动和更名,目录更名。运行一下发现下载成功,里面只有一个sunwukong.txt文件。分为三类:文件删除,空目录删除,非空目录删除。原创 2024-03-21 22:25:23 · 502 阅读 · 0 评论 -
HDFS的常用命令
(这里设置的副本数只是记录在NameNode的元数据中,是否真的会有这么多副本,还得看DataNode的数量。因为目前只有3台设备,最多也就3个副本,只有节点数的增加到10台时,副本数才能达到10)例:在本地创建一个liubei.txt,输入liubei,然后追加到shuguo.txt文本内容的后面。例子:从hdfs拷贝shuguo.txt到当前目录下,更名为shuguo2.txt。说明:27表示文件大小;作用:从HDFS的一个路径拷贝到HDFS的另一个路径。例:在本地创建一个shuguo.txt,然后。原创 2024-03-20 14:44:52 · 656 阅读 · 0 评论 -
Hadoop集群基本测试
1.各个模块分开启动/停止(配置ssh是前提)常用(1)整体启动/停止HDFS(2)整体启动/停止YARN2.各个服务组件逐一启动/停止(1)分别启动/停止HDFS组件(2)启动/停止YARN。原创 2024-03-15 16:17:15 · 1200 阅读 · 0 评论