【1】Hadoop
文章平均质量分 79
Hadoop学习
|旧市拾荒|
三年工作经验,任职于某银行科技部门,从事后端开发与数据开发。
展开
-
Eclipse环境搭建并且运行wordcount程序
hadoop2.0伪分布式环境平台正常运行所需压缩包:eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz在Linux环境下运行的eclipse软件压缩包,解压后文件名为eclipse在eclipse中需要安装的Hadoop插件,解压后文件名为hadoop2x-eclipse-plugin-master如图所示,将所有的压缩包放在同一个文件夹下并解压。原创 2023-04-17 22:10:31 · 702 阅读 · 0 评论 -
Hadoop2.0伪分布式平台环境搭建
环境:ubuntu-16.04这里的环境不一定需要和我一样,基本版本差不多都ok的,所需安装包和压缩包自行下载即可。因为这里是配置Hadoop的教程,配置Java以及安装VMware Tools就自行百度解决哈,这里就不写了(因为教程有点长,可能有些地方有些错误,欢迎留言评论,我会在第一时间修改的)。原创 2023-04-17 22:08:24 · 447 阅读 · 0 评论 -
Hadoop Partition函数应用(归档)
得到map产生的记录后,他们该分配给哪些reducer来处理呢?hadoop默认是根据散列值来派发,但是实际中,这并不能很高效或者按照我们要求的去执行任务。例如,经过partition处理后,一个节点的reducer分配到了20条记录,另一个却分配到了10W万条,试想,这种情况效率如何。原创 2023-04-13 21:59:29 · 564 阅读 · 0 评论 -
Hadoop 倒排索引
当你把需要处理的文档上传到hdfs时,首先默认的TextInputFormat类对输入的文件进行处理,得到文件中每一行的偏移量和这一行内容的键值对做为map的输入。在改写map函数的时候,我们就需要考虑,怎么设计key和value的值来适合MapReduce框架,从而得到正确的结果。这就像百度里的搜索,你输入一个关键字,那么百度引擎就迅速的在它的服务器里找到有该关键字的文件,并根据频率和其他的一些策略(如页面点击投票率)等来给你返回结果。这个过程中,倒排索引就起到很关键的作用。原创 2023-04-10 20:43:19 · 658 阅读 · 0 评论 -
Hadoop 电话通信清单
源文件——》Mapper(分隔原始数据,以被叫作为key,以主叫作为value)——》Reducer(把拥有相同被叫的主叫号码用|分隔汇总)——》输出到HDFS。现有一批电话通信清单,记录了用户A拨打某些特殊号码(如120,10086,13800138000等)的记录。需要做一个统计结果,记录拨打给用户B的所有用户A。原创 2023-04-10 20:41:46 · 471 阅读 · 0 评论 -
Hadoop 多表关联
相比单表关联,多表关联的左右表和连接列更清楚,因此可以采用和单表关联相同的处理方式。Map识别出输入的行属于哪个表之后,对其进行分割,将连接的值保存在key中,另一列和左右表标志保存在value中,然后输出。Reduce拿到连接结果后,解析value内容,根据标志将左右表内容分开存放,然后求笛卡尔积,最后直接输出。要求从输入数据中找出工厂名和地址名的对应关系,输出工厂名-地址名表。多表关联和单表关联类似,它也是通过对原始数据进行一定的处理,从其中挖掘出关心的信息。原创 2023-04-05 20:29:58 · 486 阅读 · 0 评论 -
Hadoop 单表关联
分析这个实例,显然需要进行单表连接,连接的是左表的parent列和右表的child列,且左表和右表是同一个表。再与最开始的分析联系起来:要连接的是左表的parent列和右表的child列,且左表和右表是同一个表,所以在Map阶段将读入数据分割成child和parent之后,会将parent设置成key,child设置成value进行输出,作为左表;取出每个key的value-list进行解析,将左表中的child放入一个数组,右表中的parent放入一个数组,然后对两个数组求笛卡尔积就是最后的结果了。原创 2023-04-05 20:28:26 · 413 阅读 · 0 评论 -
Hadoop 排序
需要注意的是,Reduce自动排序的数据仅仅是发送到自己所在节点的数据,使用默认的排序并不能保证全局的顺序,因为在排序前还有一个partition的过程,默认无法保证分割后各个Reduce上的数据整体是有序的。其次需要重写partition,保证整体有序,具体做法是用输入数据的最大值除以系统partition数量的商作为分割数据的边界增量,也就是说分割数据的边界为此商的1倍、2倍至numPartitions-1倍,这样就能保证执行partition后的数据是整体有序的;对输入文件中的数据进行排序。原创 2023-04-03 19:55:52 · 242 阅读 · 0 评论 -
Hadoop 数据去重
数据去重实例的最终目标是让原始数据中出现次数超过一次的数据在输出文件中只出现一次。所以从设计好的Reduce输入可以反推出Map输出的key应为数据,而value为任意值。而在这个实例中每个数据代表输入文件中的一行内容,所以Map阶段要完成的任务就是在采用Hadoop默认的作业输入方式之后,将value设置成key,并直接输出(输出中的value任意)。在Reduce阶段不管每个key有多少个value,都直接将输入的key复制为输出的key,并输出就可以了(输出中的value被设置成空)原创 2023-03-30 21:02:46 · 767 阅读 · 0 评论 -
Hadoop 学生平均成绩
InputFormat的默认值是TextInputFormat,它针对文本文件,按行将文本切割成InputSlit,并用 LineRecordReader将InputSplit解析成对,key是行在文本中的位置,value是文件中的 一行。输入文件都是纯文本文件,输入文件中的每行内容均为一个学生的姓名和他相应的成绩,如果有多门学科,则每门学科为一个文件。下面给出样本输入文件,以及跑MapReduce程序过后的输出文件。注意:本人的开发环境是在Ubuntu+Eclipse下跑的。原创 2023-02-02 19:46:09 · 649 阅读 · 0 评论 -
MapReduce计算模型的优化
设置MapReduce任务的Map数量主要参考的是Map的运行时间,设置Reduce任务的数量就只需要参考任务槽的设置即可。当Reduce任务的数量是任务槽的1.75倍时,执行速度快的机器可以获得更多的Reduce任务,因此可以使负载更加均衡,以提高任务的处理速度。在有些情况下, Map函数产生的中间数据会有很多是重复的,比如在一个简单的WordCount程序中,因为词频是接近与一个zipf分布的,每个Map任务可能会产生成千上万个记录,若将这些记录一一传送给Reduce任。原创 2023-02-02 19:41:53 · 242 阅读 · 0 评论