mapreduce实例

浅谈MapReduce编程模型

て烟熏妆下的殇ゞ 提交于 2019-11-28 13:59:43
以Wordcount程序为例,简单描述MapReduce程序的编程模型。 MapReduce程序组成 MapReduce程序一般分成三个部分: 一个程序主引导部分; 一个Map程序部分; 一个Reduce部分。 主引导部分用来设置MapReduce(以下简称 “ MR” )程序的一些非业务逻辑属性,例如最终生成jar包时指定MR框架执行该程序的入口、MR程序的map和reduce部分是哪个(一个jar包中可能封装了多个程序)、map和reduce部分的输出参数类型、输入数据的来源(路径)和输出数据的路径等。 Map程序部分和Reduce程序部分就是业务逻辑部分,只要按照MR框架要求的格式编写。对于这两个部分,分别有map( )和reduce( )两个关键的函数,这两个函数要么是重写继承其父类Mapper和Reducer的成员函数,要么是实现其所实现接口内定义的具体函数。 map( )和reduce( )方法 Mapper类和Reducer类在继承时要分别提供4个参数,分别代表当前模块的输入、输出数据的类型。在实现map、reduce方法时会用到输入参数(key-value)的类型。而这里的类型并不是Java自身的数据类型,而是hadoop自己的一套数据标准。 在hadoop中,由于要考虑对象序列化,而Java自带的对象序列化机制添加了大量的冗余——少量数据为保证网络传输的正确

零基础学习hadoop到上手工作线路指导(编程篇)

半世苍凉 提交于 2019-11-28 11:21:53
问题导读: 1.hadoop编程需要哪些基础? 2.hadoop编程需要注意哪些问题? 3.如何创建mapreduce程序及其包含几部分? 4.如何远程连接eclipse,可能会遇到什么问题? 5.如何编译hadoop源码? 阅读此篇文章,需要些基础下面两篇文章 零基础学习hadoop到上手工作线路指导(初级篇) 零基础学习hadoop到上手工作线路指导(中级篇) 如果看过的话,看这篇不成问题,此篇讲hadoop编程篇。 hadoop编程,hadoop是一个Java框架,同时也是编程的一次革命,使得传统开发运行程序由单台客户端(单台电脑)转换为可以由多个客户端运行(多台机器)运行,使得任务得以分解,这大大提高了效率。 hadoop既然是一个Java框架,因为我们必须要懂Java,网上有大量的资料,所以学习Java不是件难事。 但是学到什么程度,可能是我们零基础同学所关心的。 语言很多情况下都是相通的,如果你是学生,还处于打基础的阶段,那么难度对于你来说还是不小的。 1.初学者要求必须有理论基础,并且能够完成一个小项目,最起码能够完成几个小例子,例如图书馆里等。 初学者基本的要求: (1)懂什么是对象、接口、继续、多态 (2)必须熟悉Java语法 (3)掌握一定的常用包 (4)会使用maven下载代码 (5)会使用eclipse,包括里面的快捷键,如何打开项目 传统程序员

统计单词出现次数的mapreduce

心不动则不痛 提交于 2019-11-28 09:55:19
1、新建Java项目 2、导包 E:\工具\大数据\大数据提升资料\01-软件资料\06-Hadoop\安装包\Java1.8 环境下编译\hadoop-2.7.3\hadoop-2.7.3\share\hadoop\mapreduce +hsfs的那些包+common 3、写项目 3.1 WCMapper package com.zy.wc; import java.io.IOException; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; public class WCMapper extends Mapper<LongWritable, Text, Text, LongWritable>{ //map /* * 输入<0,"tom lili tom"> 输出<"tom",1> * */ //public class WCMapper extends Mapper<KEYIN, VALUEIN, KEYOUT,VALUEOUT> // 输入的key long value String 输出的 key String value long类型 @Override //数字 //string

Hadoop大数据平台基础

本秂侑毒 提交于 2019-11-28 00:49:44
官网:http://hadoop.apache.org/ 文章目录 Hadoop简介 核心架构 HDFS NameNode DataNode 文件操作 Linux 集群 Hadoop和高效能计算、网格计算的区别 发展现状 MapReduce与Hadoop之比较 Hadoop生态圈 概况 HDFS(Hadoop分布式文件系统) Mapreduce(分布式计算框架) HBASE(分布式列存数据库) Zookeeper(分布式协作服务) HIVE(数据仓库) Pig(ad-hoc脚本) Sqoop(数据ETL/同步工具) Flume(日志收集工具) Mahout(数据挖掘算法库) Oozie(工作流调度器) Yarn(分布式资源管理器) Mesos(分布式资源管理器) Tachyon(分布式内存文件系统) Tez(DAG计算模型) Spark(内存DAG计算模型) Giraph(图计算模型) GraphX(图计算模型) MLib(机器学习库) Streaming(流计算模型) Kafka(分布式消息队列) Phoenix(hbase sql接口) ranger(安全管理工具) knox(hadoop安全网关) falcon(数据生命周期管理工具) Ambari(安装部署配置管理工具) Hadoop简介 Hadoop实现了一个 分布式文件系统(Hadoop Distributed File

MapReduce概述

廉价感情. 提交于 2019-11-27 19:52:33
第 1 章 MapReduce 概述 1.1 MapReduce 定义 1 .2 MapReduce 优缺点 1. 2 . 1 优点 1. 2 . 2 缺点 1. 3 M apReduce 核心 思想 MapReduce 核心编程思想,如图 所示。 1)分布式的运算程序往往需要分成至少2个阶段。 2)第一个阶段的MapTask并发实例,完全并行运行,互不相干。 3)第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出。 4)MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce 程序,串行运行。 总结 : 分析WordCount数据流走向深入 理解 MapReduce 核心思想。 1. 4 M apReduce 进程 1. 5 官方 Word Count 源码 采用 反编译工具反编译源码,发现 WordCount 案例有 Map 类、Reduce类和 驱动类。 且 数据的类型是 Hadoop 自身 封装的序列化 类型 。 1.6 常用数据 序列化类型 表 常用的数据类型对应的 Hadoop 数据序列化类型 Java 类型 Hadoop Writable 类型 boolean BooleanWritable byte ByteWritable

MapReduce模拟小型推荐系统

拈花ヽ惹草 提交于 2019-11-27 16:08:33
MapReduce实例-好友推荐 背景 好友关系图如下图所示 转化为文字之后为,即为输入数据 tom hello hadoop cat world hadoop hello hive cat tom hive mr hive hello hive cat hadoop world hello mr hadoop tom hive world hello tom world hive mr 思路 推荐者与被推荐者一定有一个或多个相同的好友 全局去寻找好友列表中两两关系 去除直接好友 统计两两关系出现次数 调用API map:按好友列表输出两俩关系 reduce:sum两两关系 再设计一个MR 生成详细报表 编写Mapper package com . sxt . FR ; import org . apache . hadoop . io . IntWritable ; import org . apache . hadoop . io . LongWritable ; import org . apache . hadoop . io . Text ; import org . apache . hadoop . mapreduce . Mapper ; import org . apache . hadoop . mapred . OutputCollector ; import

大数据学习路线之mapreduce概述

Deadly 提交于 2019-11-27 05:19:29
  大数据学习路线之mapreduce概述,mapreduce:分布式并行离线计算框架,是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架;Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上;    与 HDFS解决问题的原理类似,HDFS是将大的文件切分成若干小文件,然后将它们分别存储到集群中各个主机中。    同样原理, mapreduce是将一个复杂的运算切分成若个子运算,然后将它们分别交给集群中各个主机,由各个主机并行运算。   1.1 mapreduce产生的背景   海量数据在单机上处理因为硬件资源限制,无法胜任。   而一旦将单机版程序扩展到集群来分布式运行,将极大增加程序的复杂度和开发难度。    引入 mapreduce框架后,开发人员可以将绝大部分工作集中在业务逻辑的开发上,而将分布式计算中的复杂性--交由框架来处理。   1.2 mapreduce编程模型   一种分布式计算模型。   MapReduce将这个并行计算过程抽象到两个函数。   Map(映射):对一些独立元素组成的列表的每一个元素进行指定的操作,可以高度并行。   Reduce(化简 归约):对一个列表的元素进行合并。    一个简单的 MapReduce程序只需要指定map()

Hadoop1重新格式化HDFS

烈酒焚心 提交于 2019-11-27 00:55:24
首先我们来认识一下HDFS, HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。它其实是将一个大文件分成若干块保存在不同服务器的多个节点中。通过联网让用户感觉像是在本地一样查看文件,为了降低文件丢失造成的错误,它会为每个小文件复制多个副本(默认为三个),以此来实现多机器上的多用户分享文件和存储空间。 Hadoop主要包含三个模块: HDFS模块:HDFS负责大数据的存储,通过将大文件分块后进行分布式存储方式,突破了服务器硬盘大小的限制,解决了单台机器无法存储大文件的问题,HDFS是个相对独立的模块,可以为YARN提供服务,也可以为HBase等其他模块提供服务。 YARN模块:YARN是一个通用的资源协同和任务调度框架,是为了解决Hadoop中MapReduce里NameNode负载太大和其他问题而创建的一个框架。YARN是个通用框架,不止可以运行MapReduce,还可以运行Spark、Storm等其他计算框架。 MapReduce模块:MapReduce是一个计算框架,它给出了一种数据处理的方式,即通过Map阶段、Reduce阶段来分布式地流式处理数据。它只适用于大数据的离线处理,对实时性要求很高的应用不适用。多相关信息可以参考博客: 初识HDFS(10分钟了解HDFS、NameNode和DataNode) 。

Hadoop单机、伪分布式、分布式集群搭建

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-26 20:11:24
JDK安装 设置hostname [root@bigdata111 ~]# vi /etc/hostname 设置机器hosts [root@bigdata111 ~]# vi /etc/hosts 192.168.1.111 bigdata111 192.168.1.112 bigdata112 192.168.1.113 bigdata113 创建jdk目录 [root@bigdata111 /]# cd /opt [root@bigdata111 opt]# ll 总用量 0 drwxr-xr-x. 2 root root 6 3月 26 2015 rh [root@bigdata111 opt]# mkdir module [root@bigdata111 opt]# mkdir soft [root@bigdata111 opt]# ls module rh soft 上传jdk包 打开winSCP工具,通过winscp工具上传java jdk到linux 的/opt/soft文件夹下 [root@bigdata111 opt]# cd soft [root@bigdata111 soft]# ls jdk-8u144-linux-x64.tar.gz 解压jdk 将jdk文件解压到module文件夹下,命令如下: [root@bigdata111 opt]# cd