当前位置: 首页 > news >正文

怎么建立企业网站平台长沙互联网大厂

怎么建立企业网站平台,长沙互联网大厂,网站网上商城制作,恩施网站制作公司一.MapReduce 1.1定义:是一个分布式运算程序的编程框架 1.2核心功能:将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 1.3优点 1)易于编程 它简单的实现一些接口&#…

一.MapReduce

1.1定义:是一个分布式运算程序的编程框架

1.2核心功能:将用户编写的业务逻辑代码自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。

1.3优点

1)易于编程

它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的PC机器上运行(正是因为这个特点使MapReduce编程变得非常流行)

2)良好扩展性

可以通过简单地增加机器来扩展它的计算能力。

3)高容错性

MapReduce设计的初衷就是使程序能够部署在廉价的PC机器上,这就要求它具有很高的容错性。比如其中一台机器挂了,它可以把上面的计算任务转移到另外一个节点上运行,不至于这个任务运行失败,而且这个过程不需要人工参与,而完全是由Hadoop内部完成的。

4)适合PB级以上海量数据地离线处理

可以实现上千台服务器集群并发工作,提供数据处理能力。

1.4缺点

1)不擅长实时计算

无法像MySQL一样,在毫秒或者秒级内返回结果

2)不擅长流式计算

流式计算的输入数据是动态的,而MapReduce的输入数据集是静态的,不能动态变化。这是因为MapReduce自身的设计特点决定了数据源必须是静态的。

3)不擅长有向无环图计算

每个MapReduce作业的输出结果都会写入到磁盘,会造成大量的磁盘IO,导致性能非常的低下。

1.5MapReduce核心思想

1)分布式的运算程序往往需要分成至少2个阶段。

2)第一个阶段的MapTask并发实例,完全并行运行,互不相干。

3)第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出。

4)MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行。

总结分析WordCount数据流走向深入理解MapReduce核心思想

1.6 MapReduce进程

一个完整的MapReduce程序在分布式运行时有三类实例进程

1)MrAppMaster:负责整个程序的过程调度及状态协调。

2)MapTask:负责Map阶段的整个数据处理流程。

3)ReduceTask:负责Reduce阶段的整个数据处理流程。

1.7常用数据反序列类型

1.8 编程规范

编写程序可分为Mapper、Reducer和Driver三部分。

Mapper阶段:

1)自定义的Mapper要继承自己的父类

2)Mapper的业务逻辑写在map()方法中

3)Mapper的输入、输出数据是K-V对的形式

4)map()方法(Map Task进程)对每一个k-V调用一次

Reducer阶段

1)自定义的Reduce要继承自己的父类

2)业务逻辑写在reduce()方法中

3)Reduce的输入数据类型对应Mapper的输出数据类型

4)ReduceTask进程对每一组相同k的<k,v>组调用一次reduce()方法

Driver阶段

相当于YARN集群的客户端,用于提交我们整个程序到YARN集群,提交的是封装了MapReduce程序相关运行参数的job对象。

二、Hadoop序列化

2.1 序列化和反序列化

序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。 

反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。

2.2为何不使用Java的序列化

Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,Header,继承体系等),不便于在网络中高效传输

2.3 Hadoop序列化的特点

1)紧凑:高效使用存储空间

2)快速:读写数据的额外开销小

3)互操作:支持多语言的交互

2.4 实现bean对象序列化

1)必须实现Writable接口(FlowBean继承Writable接口)

2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造

public FlowBean() {
super();
}

(3)重写序列化方法

@Override
public void write(DataOutput out) throws IOException {
out.writeLong(upFlow);
out.writeLong(downFlow);
out.writeLong(sumFlow);
}

(4)重写反序列化方法

@Override
public void readFields(DataInput in) throws IOException {
upFlow = in.readLong();
downFlow = in.readLong();
sumFlow = in.readLong();
}

(5)反序列化的顺序和序列化的顺序相同

(6)要想把结果显示在文件中,需要重写toString(),可用"\t"分开,方便后续用。

(7)如果需要将自定义的bean放在key中传输,则还需要实现Comparable接口,因为MapReduce框中的Shuffle过程要求对key必须能排序。

@Override
public int compareTo(FlowBean o) {
//设置从大到小排序
return this.sumFlow > o.getSumFlow() ? -1 : 1;
}

3.InputFormat数据输入

3.1 MapTask并行度决定机制

数据块:BlockHDFS物理把数据分成一块一块。数据块是HDFS存储数据单位

数据切片:数据切片只是在逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储数据切片是MapReduce程序计算输入数据的单位,一个切片会对应启动一个MapTask。

http://www.yayakq.cn/news/157310/

相关文章:

  • 网站怎么做备份重庆景点排行榜
  • 自适应网站系统长沙点梦网站建设
  • 青岛物流网站建设网站语言切换前端可以做么
  • 自己做的网站如何上传东莞专业技术人才服务网
  • 制作单页网站教程vi设计对企业的意义
  • 网站文章怎么做标签标书制作标准
  • 公司网站的建设自己做网站用中文为什么是乱码
  • 网站怎么注册啊网站推广营销方法
  • 电商平台网站建设合同网站建设推广实训总结
  • 南宁网站建设服务公司专门做化妆品平台的网站有哪些
  • 哪些网站做夜场女孩多短视频网站建设方案
  • 网站内容分享甘肃省建设信息平台
  • 做网站模板 优帮云室内装修设计软件有哪些
  • 百度推广助手电脑版seo收费低
  • 深圳网站建设公司收费做推广最好的网站是哪个?
  • 网站代码怎么打开保山网站建设报价
  • 西安网站建设工作室邯郸在哪个省
  • 做海淘的网站能下短视频网站做牙
  • 建设 网站协议范本程序外包平台
  • 深圳网站关键词优化公司哪家好网络营销推广的八大核心
  • 长治哪里做网站教育企业网站源码
  • 网站项目运营方案网站建设基础功能
  • 做网站需要掌握什么营商环境建设网站
  • 做购物网站的公司网站建设建站网易互客
  • 建立平台网站需要花多少钱网页游戏排行榜前十名国战
  • 行业网站建设公司如何做好一个网站的推广
  • 西宁电商网站制作公司优秀的电商app设计网站
  • 网站建设与维护流程图简单网站页面设计
  • 一般做网站上传的图片大小网页制作工具可以分为
  • 网站素材免费汕尾市企业网站seo点击软件