MapReduce分布式编程模型

hdfs的副本的配置
修改hdfs-site.xml文件
<property>
<name>
dfs.namenode.secondary.http-address
</name>
<value>hd-02:50090</value>
</property>
需要同步到其它机器:
scp hdfs-site.xml hd-02:$PWD
hadoop启动方式
1)启动hdfs集群
$ start-dfs.sh
2)启动yarn集群
$ start-yarn.sh
3)启动hadoop集群
$ start-all.sh
大数据干什么的?
1)海量数据的存储(mysql/orcale)
分布式文件系统hdfs
dfs->Hdfs
mapreduce->mapreduce
bigtable->hbase
分而治之!
2)海量数据的计算
分布式计算框架mapreduce
配置checkpoint时间
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>7200</value>
</property>
hadoop­2.8.4安装部署
1)准备工作
设置主机名:vi /etc/hostname
注意:需要重启 reboot
设置映射:vi /etc/hosts
设置免密登录:ssh-keygen
ssh-copy-id hd-01
...
2)安装jdk
上传安装包
CRT:alt+p
解压
tar -zxvf .tar.gz
配置环境变量
export JAVA_HOME=/root/hd/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin
注意:需要source /etc/profile
分发jdk
scp jdk hd-02:/root/hd
scp /etc/profile hd-02:/etc/
source /etc/profile
3)安装hadoop
上传安装包
alt + p
解压
tar -zxvf .tar.gz
修改配置文件
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
配置环境变量
export HADOOP_HOME=/
export PATH=$PAYH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
修改slaves文件加入从节点
格式化namenode
hadoop namenode -format
启动:start-all.sh
hadoop­MapReduce
官方:Apache™Hadoop®项目开发了用于可靠,可扩展的分布式计算的开源软件。
Apache Hadoop软件库是一个框架,允许使用简单的编程模型跨计算机集群分布式处理
大型数据集。它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和
存储。该库本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用层的故
障,从而在计算机集群之上提供高可用性服务,每个计算机都可能容易出现故障。
阿里的Flink(9000万欧元) Blink
MapReduce分布式计算程序的编程框架。基于hadoop的数据分析的应用。
MR优点:
1)框架易于编程
2)可靠容错(集群)
3)可以处理海量数据(1T+ PB+) 1PB = 1024TB
4)拓展性,可以通过动态的增减节点来拓展计算能力
MapReduce的思想
数据:海量单词
hello reba
hello mimi
hello liya
mimi big
需求:对每个单词出现的次数统计出来
思想:分而治之!
解决方式:
1)每个单词记录一次(map阶段)
<hello,1> <reba,1> <hello,1> <mimi,1>
2)相同单词的key不变,value累加求和即可(reduce阶段)
<hello,1+1+1>
对数据进行计算
对wordcount例子程序分析
1)整个wordcount分为几个阶段?
三个
2)有哪几个阶段?
mapper
reducer
driver
3)每个阶段有什么作用
mapper:对数据进行打散<hello,1><mimi,1>
reducer:对数据进行聚合<hello,1+1+1>
driver:提交任务
4)详解
Mapper阶段:
将数据转换为String
对数据进行切分处理
把每个单词后加1
输出到reducer阶段
Reducer阶段:
根据key进行聚合
输出key出现总的次数
Driver阶段:
创建任务
关联使用的Mapper/Reducer类
指定mapper输出数据的kv类型
指定reducer输出的数据的kv类型
指定数据的输入路径与输出路径
提交
hadoop数据类型
我们看到的wordcount程序中的泛型中的数据类型其实是hadoop的序列化的数据类
型。
为什么要进行序列化?用java的类型行不行?
Java的序列化:Serliazable太重。
hadoop自己开发了一套序列化机制。Writable,精简高效。海量数据。
hadoop序列化类型与Java数据类型
Java数据类型 Hadoop序列化类型
int IntWritable
long LongWritable
boolean BooleanWritable
byte ByteWritable
float FloatWritable
double DoubleWritable
String Text
wordcount测试
1)本地模式
2)集群模式
hadoop jar .jar wordcount /wc/in /wc/out

原文地址:https://www.cnblogs.com/jareny/p/10799609.html

时间: 2024-10-12 15:23:46

MapReduce分布式编程模型的相关文章

MapReduce分布编程模型之函数式编程范式

导读: 计算机科学是算法与算法变换的科学,算法是计算机科学的基石. 任何一个计算问题的分析与建模,几乎都可以归为算法问题. MapReduce算法模型是由Google公司针对大规模群组中的海量数据处理而提出的分布编程模型,主要应用于大规模数据集{大于1TB}的分布并行运算. 在MapReduce模型中的Map{映射}和Reduce{化简}创意来自函数型编程语言,同是也继承了向量型编程语言的特性. MapReduce模型能够使程序员在不了解分布式并行编程的情况下,将自己书写的程序在分布式系统上运行

erlang分布式编程模型

erlang分布式编程有两种模型 一.分布式erlang 运行在可信的网络环境中 1.rpc提供的远程过程调用 rpc:call(Node,Mode,Fun,Args) ->Result|{badrpc,Reason} 2.global里的函数可以用来在分布式系统里注册名称和加锁,以及维护一个全连接网络 spawn(Node,Fun) -> Pid spawn(Node,Mode,Fun,Args) ->Pid spawn_link(Node,Fun) -> Pid spawn_l

MapReduce 编程模型概述

MapReduce 编程模型给出了其分布式编程方法, 共分 5 个步骤:1) 迭代(iteration).遍历输入数据, 并将之解析成 key/value 对.2) 将输入 key/value 对映射(map) 成另外一些 key/value 对.3) 依据 key 对中间数据进行分组(grouping).4) 以组为单位对数据进行归约(reduce).5) 迭代. 将最终产生的 key/value 对保存到输出文件中.MapReduce 将计算过程分解成以上 5 个步骤带来的最大好处是组件化与

【MapReduce】二、MapReduce编程模型

??通过前面的实例,可以基本了解MapReduce对于少量输入数据是如何工作的,但是MapReduce主要用于面向大规模数据集的并行计算.所以,还需要重点了解MapReduce的并行编程模型和运行机制. ??我们知道,MapReduce计算模型主要由三个阶段构成:Map.shuffle.Reduce.Map和Reduce操作需要我们自己定义相应Map类和Reduce类.而shuffle则是系统自动帮我们实现的,是MapReduce的"心脏",是奇迹发生的地方.是其主要流程基本如下图所示

MapReduce编程模型

Map:-------分割 Reduce:---合并 ==== Batch,ESB: Splite:----分割 Aggert:---合并 Channel----管道 BPM Join fork task ========================================== 都是基于Job—Task的多线程编程模型实现,不同的仅仅是单一的文件系统存储还是分布式集群存储的文件系统(数据统一存储,数据分块存储在不同的机器里面,单一机器里面的数据不能单独使用,因为数据不全,而统一存储的

MapReduce编程模型及优化技巧

(一)MapReduce 编程模型 (备注:如果你已经了解MapReduce 编程模型请直接进入第二部分MapReduce 的优化讲解) 在学习MapReduce 优化之前我们先来了解一下MapReduce 编程模型是怎样的? 下图中红色的标注表示没有加入Combiner和Partitioner来进行优化. 上图的流程大概分为以下几步. 第一步:假设一个文件有三行英文单词作为 MapReduce 的Input(输入),这里经过 Splitting 过程把文件分割为3块.分割后的3块数据就可以并行

MapReduce编程模型及其在Hadoop上的实现

转自:https://www.zybuluo.com/frank-shaw/note/206604 MapReduce基本过程 关于MapReduce中数据流的传输过程,下图是一个经典演示:  关于上图,可以做出以下逐步分析: 输入数据(待处理)首先会被切割分片,每一个分片都会复制多份到HDFS中.上图默认的是分片已经存在于HDFS中. Hadoop会在存储有输入数据分片(HDFS中的数据)的节点上运行map任务,可以获得最佳性能(数据TaskTracker优化,节省带宽). 在运行完map任务

浅谈MapReduce编程模型

以Wordcount程序为例,简单描述MapReduce程序的编程模型. MapReduce程序组成 MapReduce程序一般分成三个部分: 一个程序主引导部分: 一个Map程序部分: 一个Reduce部分. 主引导部分用来设置MapReduce(以下简称 “ MR” )程序的一些非业务逻辑属性,例如最终生成jar包时指定MR框架执行该程序的入口.MR程序的map和reduce部分是哪个(一个jar包中可能封装了多个程序).map和reduce部分的输出参数类型.输入数据的来源(路径)和输出数

Storm介绍及核心组件和编程模型

离线计算 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.Hive批量计算数据.azkaban/oozie任务调度 流式计算 流式计算:数据实时产生.数据实时传输.数据实时计算.实时展示 代表技术:Flume实时获取数据.Kafka/metaq实时数据存储.Storm/JStorm实时数据计算.Redis实时结果缓存.持久化存储(mysql). 一句话总结:将源源不断产生的数据实时收集并实