Hadoop 带有一个ant的build脚本,修改target compile-examples中的include路径,设为自己的demo路径。然后运行 ant examples,会在build脚本目录下面生成一个build目录,里面已经包含了构建好的jar包等。
建一个JobServerMain,内容为
public static void main(String[] args) throws IOException, InterruptedException
{
JobTracker.main(new String[]{});
}
用于启动JobTracker。再建一个TaskServerMain,内容
public static void main(String[] args) throws IOException
{
TaskTracker.main(new String[]{});
}
用于启动TaskTracker。
接下来设置配置文件,将 hadoop-default.xml 中
- dfs.name.dir
- dfs.data.dir
- mapred.local.dir
- mapred.system.dir
- mapred.temp.dir
- mapred.job.tracker
- mapred.job.tracker.info.port
- mapred.task.tracker.output.port
- mapred.task.tracker.report.port
的项 copy 到 hadoop-site.xml 中,然后放到 build 目录下面。
修改 mapred.job.tracker,设为非local的地址值,这里设置为 192.168.0.200:50020。接下来的TaskTracker和Client都会连接到这个中心服务器地址。
写两个bat文件来执行两个Tracker,注意TaskTracker的bat里面,classpath要写完整的绝对路径,因为它启动的子进程是使用父进程的classpath的,如果使用相对路径可能会出现问题。
先启动JobTracker,它会读取配置文件,然后列出一堆参数,最后启动jetty web server。
接着启动TaskServer。TaskServer可以在本机或其它地方启动,只要能够连接上JobTracker就可以了。这里在本地运行。启动后,它也是读取配置文件,然后监听Tracker和TrackerInfo两个服务的端口,最后连接到JobTracker。
最后运行 Client。在运行过程中,JobTracker会不断发送Task到TaskTracker中,TaskTracker则执行MapReduce操作,执行完毕后通知JobTracker,JobTracker则定时反馈进度给Client。若此时有新的TaskTracker连接到 JobTracker中,也会承担起当前的任务执行工作。此外从Client的输出可以看到,Map和Reduce都有进度,这表明两个操作是交替执行的,当一个Map任务执行完毕,就会新增一个Reduce任务到JobTracker中。
当Map操作结束后,Client输出:
060401 111358 task_r_err30a 0.5% reduce > sort
060401 111359 task_r_err30a 0.5% reduce > sort
060401 111400 task_r_err30a 0.5% reduce > sort
因为之前已经已经了部分Reduce操作,这里先进行合并。接下来是排序操作。
060401 111358 task_r_err30a 0.5% reduce > sort
060401 111359 task_r_err30a 0.5% reduce > sort
060401 111400 task_r_err30a 0.5% reduce > sort
任务执行完毕后,清理临时文件:
060401 111622 Task task_r_1o8w5i is done.
060401 111623 Server connection on port 50050 from 192.168.0.204: exiting
060401 111630 task_m_1yw1dp done; removing files.
060401 111640 task_m_2lhjqk done; removing files.
060401 111650 task_m_2o8wh3 done; removing files.
这样就完成了一整个过程。要执行大的任务,可以在一部Server上面运行JobTracker,其它n部机上运行TaskTracker,各Server处于百兆网上面,这样任务的复制传输和处理就会很高效了。
文章最后,我要说说JobTracker的网络性能。根据Source,它是使用线程来处理连接的阻塞IO,当连接上来的TaskTracker比较多的时候,可能会有IO上面的问题。不知道Google的那套方案,JobTracker是不是也是分布式的呢,它们给出的性能测试中,机器群集达到了1800 台之多,如果所有的Input都集中在一个client,job管理都集中在一个JobTracker,这样机器负担会很大,而且刚开始数据传输也没有充分利用带宽。
分享到:
相关推荐
This third edition covers recent changes to Hadoop, including material on the new MapReduce API, as well as MapReduce 2 and its more flexible execution model (YARN). Store large datasets with the ...
The format distributed filesystem Starting Hadoop daemons Setting up Elasticsearch Downloading Elasticsearch Configuring Elasticsearch Installing Elasticsearch's Head plugin Installing the ...
在这个版本中,Hadoop增强了其分布式存储系统HDFS(Hadoop Distributed File System)以及分布式计算框架MapReduce。下面我们将深入探讨Hadoop 2.2的关键知识点。 首先,HDFS的增强主要体现在以下几个方面: 1. **...
- **Hadoop环境**:Hadoop是一个能够处理海量数据的分布式计算平台,主要由HDFS(Hadoop Distributed File System)和MapReduce组成。 - **Java开发环境**:由于Spring和Hadoop都是基于Java开发的,因此需要一个支持...
- **HDFS(Hadoop Distributed File System)**:分布式文件系统,用于存储大规模的数据集。HDFS具有高容错性,可以将文件分布在多台廉价服务器上,即使部分节点失效,也能保证数据的完整性。 - **YARN(Yet ...
Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。HDFS是分布式文件系统,它允许数据跨多台服务器存储和访问,提供高容错性和高可用性。MapReduce则是Hadoop处理大数据的主要计算模型,通过...
在Hadoop的开发工作中,最重要的两个组件是Hadoop MapReduce和Hadoop Distributed File System (HDFS)。MapReduce是Hadoop处理大数据的主要计算框架,它将大规模数据集分割成小块,然后在分布式集群上并行处理,极大...
Hadoop数据迁移是处理大数据场景中的一项重要工作,而importtsv工具是HBase为将HDFS(Hadoop Distributed File System)上的数据导入到HBase数据库中所提供的一种方法。HBase是构建在Hadoop之上的非关系型分布式...
Hadoop主要由两个关键组件构成:Hadoop Distributed File System (HDFS) 和 MapReduce。HDFS是分布式文件系统,提供高容错性和高吞吐量的数据存储;MapReduce则是分布式计算框架,用于处理和生成大规模数据集。 2....
首先,Hadoop 2.6.0对HDFS(Hadoop Distributed File System)进行了增强,提高了系统的容错性和可用性。例如,它引入了“NameNode Federation”功能,允许在一个集群中运行多个独立的命名节点,从而解决了单一命名...
Hadoop主要由MapReduce、HDFS(Hadoop Distributed File System)和HBase等核心组件构成。MapReduce是一种编程模型,用于大规模数据集的并行运算,它将复杂的计算任务分解为多个小任务在多台机器上并行执行,极大地...
3. The Hadoop Distributed Filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 The Design of HDFS 45 HDFS Concepts 47 Blocks 47 Namenodes and Datanodes 48 HDFS ...
- **核心技术**:Hadoop主要包含两大组件——HDFS(Hadoop Distributed File System)和MapReduce。HDFS是一种分布式文件系统,用于存储大量数据;而MapReduce则是一种分布式计算模型,用于处理这些数据。 #### 二...
它主要由两个主要阶段组成:Map阶段和Reduce阶段,同时依赖于Hadoop的HDFS(Hadoop Distributed File System)作为底层数据存储系统。 HDFS是Hadoop的核心组件之一,它是一种分布式文件系统,能够将大型数据集分布...
Hadoop Distributed File System Versions 1.0 and 2.0 Hour 4. The MapReduce Job Framework and Job Execution Pipeline Hour 5. MapReduce—Advanced Concepts and YARN Part II: Getting Started with ...
Spark 算子是 Spark 框架中的一种数据处理单元,它可以将数据从一个RDD(Resilient Distributed Dataset)转换为另一个RDD。Spark 算子可以分为两大类: narrow dependency 算子和 wide dependency 算子。Narrow ...
- **数据存储**:Hive处理的数据存储在HDFS (Hadoop Distributed File System) 上。 - **数据处理**:Hive分析数据的底层实现依赖于MapReduce。 - **资源管理**:执行程序运行在Yarn (Yet Another Resource ...
**5.4 Other tools distributed with Robot Framework(Robot Framework附带的其他工具)** 文档提到了与Robot Framework一起分发的其他工具,但具体内容不详。一般这些工具会包含一些实用的功能,帮助自动化测试的...
本文介绍了一种名为GLADE(Great Large-scale Analytics through Distributed Execution)的大规模分布式数据处理系统。GLADE旨在通过简化用户自定义聚合(UDA, User-Defined Aggregation)函数的方式来提高大数据...