Hadoop如何实现将计算逻辑分发到各个子节点上的

问题描述

在研究了一段hadoop后,对hadoop的分布式架构有了一定的了解,都知道移动计算比移动数据效率更高,那么hadoop是如何将计算移动到各个节点上进行计算的呢?我猜想是将计算的逻辑和其依赖的包都分发到了各个节点上,然后再在各自的节点上进行计算,不知道是不是这样,希望大家能把细节补充的更完善。

解决方案

Hadoop 的NameNode 知道集群的计算资源分布,数据存储分布.在分布任务的时候,需要对数据进行切分,然后进行计算. 这个时候分配就需要考虑数据的存储位置.Hadoop会尽量将计算分布到数据存储的节点上.如果存储的节点没用资源,比如CPU完全被占用.那会尽量将计算分布到数据存贮节点相同机架上的节点进行计算.最后如果还是没办法做到,那就只能随机的选取一个节点了.
解决方案二:
最简单的还是打成一个包, 同时帮你找了个相关文章讲解了如何通过libjars引入第三方的包(比如Spring).http://www.linuxidc.com/Linux/2012-07/65006.htm如果问题弄明白了,记得结贴.
解决方案三:
不知道楼主问的是不是mapreduce,如果是的话..首先hdfs是一个分布式的存储系统,大文件被分成小块存在不同机器上,一般每个部分还有三个副本,这是为了减小机器挂掉之后的损失,也方便了分配计算任务给就近的机器。在MapReduce进行的时候,master会根据要处理的文件大小、使用者指定的任务数来确定需要集群内的哪些机器来进行运算工作。移动计算应该指的是这个时候对于具体执行机的选择。由于传输慢、带宽限制,大文件的传输肯定是代价很高的,这时候寻找距离数据更近的机器显然有较大收益,最好就在三个副本存储的位置的其中一个。这样就避免移动数据了嘛。至于移动计算,那就是把程序和依赖打好包分发到每个执行机上咯。更具体的去看一看官网教程咯:http://hadoop.apache.org/docs/r0.19.1/cn/mapred_tutorial.html
解决方案四:
1.移动计算数据在hadoop是必须的,这样是为什么hadoop适合离线计算的重要原因之一(磁盘IO开销比较大)因为在shuffle后不一定计算的数据就在计算的节点上2.对于计算逻辑其实具体就是jar和相关的config,不要忘了还有个hdfs和分布式缓存(hadoop)内部的。其实计算逻辑是会被放到hdfs上的,计算节点直接拉取后执行。不知道这样有没有回答到你的问题

时间: 2024-09-20 00:14:26

Hadoop如何实现将计算逻辑分发到各个子节点上的的相关文章

完全分布模式hadoop集群安装配置之二 添加新节点组成分布式集群

前文说到如何搭建集群中第一个节点,这篇将说到如何向集群添加节点.这篇是基于前文的,没有看过前文的可以参考此链接:http://www.cnblogs.com/mikelij/archive/2012/03/06/2380937.html   2 向集群添加节点     前文已经建立了一个节点的hadoop集群.现在要做的添加节点.安装JDK, 创建hadoop用户等见前文.这里就不重复了.   2.1 检查主机名,修改/etc/hostname, /etc/hosts   新节点需要在这个集群里

显示当前Hadoop集群节点上启动的进程

#!/bin/sh #查看hadoop的运行状态 function hadoopState(){ COUNT=1 while [ ${COUNT} -le ${NUM} ] do echo "**********查看hadoop${COUNT}上hadoop的运行状态********" #连接远程主机查看运行状态 ssh -t -p 22 hadoop${COUNT} "jps" COUNT=$((${COUNT}+1)) done } echo "===

完全分布模式hadoop集群安装配置之一安装第一个节点

  本系列文章讲述搭建完全分布模式hadoop的安装配置过程,还将讲述完全分布式模式的一些基本操作.准备采用先单机调通再加入节点的方式.本文只讲述单节点的安装和配置.   1. Namenode和JobTracker的安装       这是完全分布模式集群的第一台,也是很关键的一台.采用VMWARE虚拟的Ubuntu Linux 11.10  server版.安装Linux非本文重点就不说了. 默认建立了一个用户叫abc, 其有sudo权限.root的口令是随机的一个口令,只能用sudo命令暂时

基于Hadoop的数据仓库Hive基础知识

Hive是基于Hadoop的数据仓库工具,可对存储在HDFS上的文件中的数据集进行数据整理.特殊查询和分析处理,提供了类似于SQL语言的查询语言–HiveQL,可通过HQL语句实现简单的MR统计,Hive将HQL语句转换成MR任务进行执行. 一.概述 1-1 数据仓库概念 数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented).集成的(Integrated).相对稳定的(Non-Volatile).反应历史变化(Time Variant)的数据集合,用于支持

大数据初探——Hadoop历史

  Hadoop是一个开源的分布式框架,是Apache下的一个开源项目.Hadoop运行可以在成千上万个普通机器节点组成的集群上,通过分布式的计算模型和存储模型来处理大数据集.Hadoop具有高容错性.工作在普通的机器节点上扩展性强等众多的优点,是企业选择处理大数据集工具的不二"人"选. 这个框架是另一个大项目的一部分,有数据库管理专家Mike Cafarella与开源技术的支持者DougCutting所构建.两人创建了一个名叫Nutch的网络爬虫与分析系统,该系统使用集群运算同时执行

Hadoop On Demand用户指南

本文讲的是Hadoop On Demand用户指南,[IT168 资讯]后面的文档包括一个快速入门指南能让你快速上手HOD,一个所有HOD特性的详细手册,命令行选项,一些已知问题和故障排除的信息.HOD使用入门 在这部分,我们将会逐步骤地介绍使用HOD涉及到的最基本的操作.在开始遵循这些步骤之前,我们假定HOD及其依赖的软硬件均已被正确安装和配置.这步通常由集群的系统管理员负责. HOD的用户界面是一个命令行工具,叫做hod.它被一个通常由系统管理员为用户设置好的配置文件所驱动.用户在使用hod

【Big Data】HADOOP集群的配置(二)

Hadoop集群的配置(二) 2.8 节点之间的免密码通信 1.什么是SSH SSH是Secure Shell的缩写,由IETF的网络工作小组(Network Working Group)所制定:SSH为建立在应用层和传输层基础上的安全协议.SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用SSH协议可以有效防止远程管理过程中的信息泄露问题. 从客户端来看,SSH提供两种级别的安全验证. 第一种级别  基于口令的安全验证 只要知道自己的帐号和口令,就可以登录到远程主机.所有

Hadoop面试45个题目及答案

1.Hadoop集群可以运行的3个模式? 单机(本地)模式 伪分布式模式 全分布式模式 2.  单机(本地)模式中的注意点? 在单机模式(standalone)中不会存在守护进程,所有东西都运行在一个JVM上.这里同样没有DFS,使用的是本地文件系统.单机模式适用于开发过程中运行MapReduce程序,这也是最少使用的一个模式. 3.  伪分布模式中的注意点? 伪分布式(Pseudo)适用于开发和测试环境,在这个模式中,所有守护进程都在同一台机器上运行. 4.  VM是否可以称为Pseudo?

高可用Hadoop平台-应用JAR部署

1.概述 今天在观察集群时,发现NN节点的负载过高,虽然对NN节点的资源进行了调整,同时对NN节点上的应用程序进行重新打包调整,负载问题暂时得到 缓解.但是,我想了想,这样也不是长久之计.通过这个问题,我重新分析了一下以前应用部署架构图,发现了一些问题的所在,之前的部署架构是,将打包的应用 直接部署在Hadoop集群上,虽然这没什么不好,但是我们分析得知,若是将应用部署在DN节点,那么时间长了应用程序会不会抢占DN节点的资源,那么如 果我们部署在NN节点上,又对NN节点计算任务时造成影响,于是,