| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> mapreduce的词频统计案例 -> 正文阅读 |
|
[大数据]mapreduce的词频统计案例 |
1.定义:mapreduce是一个分布式运算的编程框架,基于hadoop 开发 mapreduce将自己写的代码与默认组件合成一个完整的计算框架 2.优点: 易于编程,只需要实现框架的接口; 良好的扩展性:可以动态增加服务器,解决计算资源的问题 高容错性:一台机器挂了后可以将当前任务转移到其他的机器上 适合海量计算:可以几千台服务器同时计算,可以达到(TB/PB)级别 缺点: 不擅长实时计算和流计算,DAG有向无环图计算 3.mapreduce的阶段 mapreduce运算一般分为两个阶段:map 和reduce map阶段负责处理什么任务呢? 1.他会接受需要传入的文件,如果这个文件的大小超过了128M,就会通过?InputFormat类的子类将这个文件切分成多个InputSplit块 2.一个InputSplit块对应一个MapTask,?多个MapTask是并发执行的 MapTask: 1)按行读取数据,并按行处理数据; 2)按照空格,逗号等单词之间的分隔符切分单词 3)构成kv键值对(单词,1) 4)将所有键值对的内容分区排序溢写到磁盘 reduce阶段负责的任务: 1.接受map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点。这个过程称作shuffle 2.将接收到的map端输入key,value进行合并分区排序 3.将reduce的结果保存到HDFS中 4.WordCount官方案例 在你安装Hadoop的目录下share文件夹下: hadoop-2.7.6/share/hadoop/mapreduce 包名:hadoop-mapreduce-examples-2.7.6.jar 可以用来检验是否可以运行mapreduce程序 ?Map阶段我们需要写的内容: 1. 自定义的Mapper继承父类 2.Mapper输入的数据是K-V对的形式,输出格式也是K-V 3.Map端需要实现的逻辑写在map方法中 这是常用的类型对应格式
1.用户自定义的Reducer需要继承一个Reduce类? 2.Reducer的输入K-V数据类型应该与Mapper的输出数据类型保持一致 3.Reducer业务逻辑写在reducer方法中 ?Driver阶段: 用于提交整个程序到集群中,里面封装了Mapreduce程序运行的相关参数job对象 ?6.案例 统计words.txt中单词出现的个数 ? ?Mapper类: 1.将MapTask传给我们的文本内容转成string 2.根据分隔符号将每一行的单词切分 3.将单词输出为 <单词,1>? :<hello,1><spring,1><winter,1>...... Redecer类: 1.汇总key个数 2.输出key次数 Driver类: 1.获取job实例对象 2.通过反射指定程序的jar包的位置 3.关联我们创建的Mapper类和Meducer类 4.指定Mapper输出数据的kv类型 5指定我们Reducer最终输出数据的类型 6.指定输入文件的路径 7.指定输出结果的目录,如果存在可以删除掉 8.提交作业
?运行结果 : |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:23:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |