-
Hadoop如何实现将计算逻辑分发到各个子节点上的15
在研究了一段hadoop后,对hadoop的分布式架构有了一定的了解,都知道移动计算比移动数据效率更高,那么hadoop是如何将计算移动到各个节点上进行计算的呢?我猜想是将计算的逻辑和其依赖的包都分发到了各个节点上,然后再在各自的节点上进行计算,不知道是不是这样,希望大家能把细节补充的更完善。2014年8月12日 09:17
4个答案 按时间排序 按投票排序
-
采纳的答案
Hadoop 的NameNode 知道集群的计算资源分布,数据存储分布.
在分布任务的时候,需要对数据进行切分,然后进行计算. 这个时候分配就需要考虑数据的存储位置.
Hadoop会尽量将计算分布到数据存储的节点上.
如果存储的节点没用资源,比如CPU完全被占用.那会尽量将计算分布到数据存贮节点相同机架上的节点进行计算.
最后如果还是没办法做到,那就只能随机的选取一个节点了.2014年8月12日 14:21
-
最简单的还是打成一个包, 同时帮你找了个相关文章讲解了如何通过libjars引入第三方的包(比如Spring).
http://www.linuxidc.com/Linux/2012-07/65006.htm
如果问题弄明白了,记得结贴.2014年8月20日 15:33
-
不知道楼主问的是不是mapreduce,如果是的话..
首先hdfs是一个分布式的存储系统,大文件被分成小块存在不同机器上,一般每个部分还有三个副本,这是为了减小机器挂掉之后的损失,也方便了分配计算任务给就近的机器。
在MapReduce进行的时候,master会根据要处理的文件大小、使用者指定的任务数来确定需要集群内的哪些机器来进行运算工作。移动计算应该指的是这个时候对于具体执行机的选择。由于传输慢、带宽限制,大文件的传输肯定是代价很高的,这时候寻找距离数据更近的机器显然有较大收益,最好就在三个副本存储的位置的其中一个。这样就避免移动数据了嘛。
至于移动计算,那就是把程序和依赖打好包分发到每个执行机上咯。
更具体的去看一看官网教程咯:http://hadoop.apache.org/docs/r0.19.1/cn/mapred_tutorial.html2014年8月13日 18:09
-
1.移动计算数据在hadoop是必须的,这样是为什么hadoop适合离线计算的重要原因之一(磁盘IO开销比较大)因为在shuffle后不一定计算的数据就在计算的节点上
2.对于计算逻辑其实具体就是jar和相关的config,不要忘了还有个hdfs和分布式缓存(hadoop)内部的。其实计算逻辑是会被放到hdfs上的,计算节点直接拉取后执行。
不知道这样有没有回答到你的问题2014年8月13日 09:14
相关推荐
Map阶段将大任务拆分成小任务分发到各个节点处理,Reduce阶段则对Map阶段的结果进行聚合和总结。 6. **计算与存储分离的实践** 在实际应用中,可以采用如HBase、Cassandra等NoSQL数据库与Hadoop结合,实现数据的...
- **拷贝hadoop.dll**:将hadoop.dll复制到系统目录C:\Windows\System32。 - **格式化Namenode**:以管理员身份运行命令行,执行`hdfs namenode -format`。 - **启动Hadoop集群**:在sbin目录下运行`start-all.sh...
在Hadoop上实现大矩阵乘法,可以充分利用其并行计算的优势,提高计算效率。 大矩阵乘法的基本概念是两个矩阵A(m×n)和B(n×p)相乘得到一个新的矩阵C(m×p),其中C的每个元素ci,j是通过将A的第i行与B的第j列对应元素...
"基于多元线性回归模型的Hadoop集群节点性能计算方法" 本文档介绍了一种基于多元线性回归模型的Hadoop集群节点性能计算方法,该方法可以对Hadoop集群节点的性能进行准确的评估和优化。 什么是Hadoop集群节点性能...
在单节点模式下,需要复制输入文件到分布式文件系统,以便于 Hadoop 运行。可以使用以下命令复制输入文件: $ bin/hadoop fs -put conf input 运行示例 在单节点模式下,可以运行一些示例程序,以便于学习和测试 ...
【描述】"基于hadoop的简易云盘实现"表明,该实现将Hadoop的核心特性,如分布式文件系统(HDFS)和MapReduce计算模型,应用于云盘服务的开发。云盘服务通常需要处理用户上传、下载、共享文件等操作,这需要高效的...
2. **分发脚本到各节点**:脚本通过SSH协议将自身复制到每个节点的临时目录(如`/tmp/`),为后续在各节点上执行做准备。 3. **检测僵尸进程**:在每个节点上,脚本通过调用`jps`命令列出正在运行的Java进程,特别...
本篇文档将详细介绍如何在两台机器上配置一个简单的双节点Hadoop集群,即伪分布式模式。 1. **设置IP和主机名** 在所有节点上,编辑`/etc/hosts`文件,将IP地址与主机名对应起来。例如: ``` 192.168.181.101 ...
具体来说,Map阶段会读取输入的数据(可能是学生的分数),并将每个分数作为键值对(例如,键是学生ID,值是分数)分发到不同的数据节点。Reduce阶段则会接收这些键值对,对同一键的所有值(也就是同一名学生的所有...
本文将详细介绍如何搭建多节点 Hadoop 环境,包括安装 Ubuntu 操作系统、安装 Hadoop 软件、配置 SSH 无密码登录、配置 Hadoop 集群等步骤。 一、安装 Ubuntu 操作系统 在开始搭建 Hadoop 环境之前,需要安装 ...
Hadoop动态增加节点与删除节点,本人自己整理。。
- **Map 阶段**:MapReduce 将数据块分发到各个节点,节点上的 Map 函数对数据进行局部处理。 - **Shuffle & Sort**:Map 输出的数据被排序并分区,准备进入 Reduce 阶段。 - **Reduce 阶段**:Reduce 函数接收...
本文将指导读者在 Ubuntu 操作系统上搭建 Hadoop 单节点,实现简单的本地服务。整个搭建过程可以分为三步:环境准备、软件安装和配置过程。 环境准备包括安装 VMware Workstation11 和软件准备,包括 SSH、Hadoop-...
- **MapReduce**:提供了一种高效处理大规模数据集的编程模型,通过将数据分割处理后合并结果的方式来实现并行计算。 - **Map函数**:接收输入数据,对其进行预处理,输出键值对。 - **Reduce函数**:接收来自多个...
在Map阶段,原始数据被分割并分发到各个节点上进行处理;在Reduce阶段,Map阶段的结果被聚合,从而得到最终的结果。 在这个实例中,我们将创建一个简单的MapReduce程序,该程序读取包含整数的文件,找出最大值和...
- **Map阶段**:将输入数据分发到多个Mapper任务。每个Mapper任务负责计算与其相关的数据点与质心的距离,并将数据点分配给最近的簇。 - **Reduce阶段**:Reducer任务汇总来自所有Mapper的中间结果,计算每个簇的新...
HDFS是Hadoop的基础,它将大型文件分割成多个数据块,分布在集群的不同节点上,以实现冗余备份和高可用性。HDFS具有高容错性,即使部分节点故障,也能保证数据的完整性。其特点是支持大规模数据集,允许节点失效,...
在大数据处理领域,Hadoop是一个广泛使用的开源框架,它提供了分布式存储(HDFS)和分布式计算(MapReduce)的能力,使得处理大规模数据变得更加高效。基于Hadoop的文本相似度计算是一个重要的应用,常用于信息检索...