MapReduce&&Hadoop

简介: 提前预热,关于Hadoop && MapReduce的一些简单概念

高能性能计算(High Performance Computing, HPC)和网格计算(Grid Computing)组织多年以来一直在研究大规模数据处理,主要使用类似于消息传递接口(Message Passing Interface, MPI)的API。从广义上讲,高性能计算采用的方法是将作业分散到集群的各台服务器上,这些机器访问存储区域网络(SAN)所组成的共享文件系统。这比较适用于计算密集型的作业,但如果节点需要访问的数据量更庞大(高达几百GB,MapReduce开始施展他的方法),很多计算节点就会因为网络带宽的瓶颈问题不得步闲下来等数据。
MapReduce尽量在计算节点上存储数据,以实现数据的本地快速访问。数据本地化(data locality)特性是MapReduc的核心特征,并因此而获得良好的性能。意识到网络带宽是数据中心环境最珍贵的资源之后,MapReduce通过显式网络拓扑结构来保留网络带宽。
虽然MPI(MPI是一个跨语言的通讯协议,用于编写并行计算机。支持点对点和广播。MPI是一个信息传递应用程序接口,包括协议和和语义说明,他们指明其如何在各种实现中发挥其特性。MPI的目标是高性能,大规模性,和可移植性)赋予程序员很大的控制权,但需要程序员显式控制数据流机制,包括用C语言构造底层的功能模型和高层的数据分析算法。

志愿计算
志愿者吧自己的计算机CPU的空闲时间贡献出来供分析无线一些需要的数据。志愿计算项目将问题分成很多块,每一块成为一个工作单元,发到世界各地的计算机上进行分析。
MapReduce有三大目标:为只需要短短几分钟或几小时就可以完成的作业提供服务;运行于同一个内部有高速网络连接的数据中心内;数据中心内的计算机都是可靠的、定制的硬件。
Hadoop项目:
Common:一系列组件和接口,用于分布式文件系统和通用I/O(序列化、Java RPC<(Remote Procedure Call)——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。> 和持久化数据结构)
Avro:一种序列化系统,用于支持高效、跨语言的RPC和持久化数据存储
MapReduce:分布式数据处理模型和执行环境,运行于大型商用机集群
HDFS:分布式文件系统,运行于大型商用机集群
Pig:数据流语言和运行环境,用以探究非常庞大的数据集。Pig运行在MapReduce和HDFS集群上
Hive:一种分布式的、按列存储的数据仓库。Hive管理HDFS中存储的数据,并提供基于SQL的查询语言(由运行时引擎翻译成MapReduce作业)用以查询数据
HBase:一种分布式的、按列存储的数据。HBase使用HDFS作为底层存储,同时支持MapReduce的批量式计算和点查询(随机读取)
ZooKeeper:一种分布式的可用性搞得协调服务。ZooKeeper提供分布式锁之类的基本服务用于构建分布式应用
Sqoop:该工具用于在结构化数据存储(如关系型数据库)和HDFS之间高效批量传输数据
Oozie:该服务用于运行和调度Hadoop作业(如MapReduce,Pig,Hive及Sqoop作业)
将Hadoop版本升级成另外一个版本时,需要仔细考虑需要升级步骤。同时还要考虑几个方面:API兼容性、数据兼容性和连接兼容性。
API兼容性:考虑用户代码和发行的Hadoop API之间的对比,例如Java MapReduce API。住发行版本时允许破坏API兼容性的,因此用户的程序要修改并重新编译。次重点发行版本和单节点发行版本不应该破坏兼容性。
数据兼容性:考虑持久数据和元数据的格式,这些修改对用户透明,因为系统升级时数据会自动迁移。系统升级路径有一些限制,这些限制包含在发行须知中。
连接兼容性:主要考虑通过利用RPC和HTTP这样的连接协议来实现客户端和服务器之间的互操作性。有两类客户端:外部客户端和内部客户端。其中内部客户端在加锁状态进行升级,旧版本的无法与新版本的一起工作。

目录
相关文章
|
4月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
118 2
|
2月前
|
数据采集 分布式计算 Hadoop
使用Hadoop MapReduce进行大规模数据爬取
使用Hadoop MapReduce进行大规模数据爬取
|
4月前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
159 3
|
4月前
|
分布式计算 资源调度 数据可视化
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
81 1
|
4月前
|
分布式计算 资源调度 Hadoop
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
90 1
|
4月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
170 0
|
4月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
73 0
|
4月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
97 0
|
6月前
|
缓存 分布式计算 算法
优化Hadoop MapReduce性能的最佳实践
【8月更文第28天】Hadoop MapReduce是一个用于处理大规模数据集的软件框架,适用于分布式计算环境。虽然MapReduce框架本身具有很好的可扩展性和容错性,但在某些情况下,任务执行可能会因为各种原因导致性能瓶颈。本文将探讨如何通过调整配置参数和优化算法逻辑来提高MapReduce任务的效率。
844 0
|
8月前
|
分布式计算 Hadoop Java
Hadoop MapReduce编程
该教程指导编写Hadoop MapReduce程序处理天气数据。任务包括计算每个城市ID的最高、最低气温、气温出现次数和平均气温。在读取数据时需忽略表头,且数据应为整数。教程中提供了环境变量设置、Java编译、jar包创建及MapReduce执行的步骤说明,但假设读者已具备基础操作技能。此外,还提到一个扩展练习,通过分区功能将具有相同尾数的数字分组到不同文件。
82 1

相关实验场景

更多