Home Database Mysql Tutorial 利用下一代Hadoop YARN构建轻量级弹性计算平台

利用下一代Hadoop YARN构建轻量级弹性计算平台

Jun 07, 2016 pm 04:30 PM
hadoop yarn use elasticity Construct lightweight

作者: Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址:http://dongxicheng.org/mapreduce-nextgen/use-hadoop-yarn-to-build-a-cloud-system/ 本博客的文章集合:http://dongxicheng.org/recommend/ 重


重大消息:我的Hadoop新书《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》已经开始在各大网站销售了,购书链接地址: 当当购书网址,京东购书网址,卓越购书网址。新书官方宣传主页: http://hadoop123.com/。

YARN(Yet Another Resource Negotiator)是下一代Hadoop的一个分支(注意:目前YARN尚不成熟稳定,各大公司普遍使用的还是Hadoop 1.0,但YARN是未来发展趋势,可以提前了解和学习它),它是一个资源管理系统,其上可以运行各种计算框架和应用程序,关于YARN,我已经在多篇文章中进行了介绍:

(1)”相比于MRv1,YARN带来的优势是什么?”

(2)”Hadoop 2.0中的基本术语解释”

(3)”浅谈Borg/YARN/Mesos/Torca/Corona一类系统”

(4)”多集群下资源共享方案介绍”

(5)”解析Google集群资源管理系统Omega”

更多文章可参考:下一代Hadoop YARN全面剖析。

YARN是未来的一个趋势,YARN本身已经变成了一个云操作系统,很多新的计算框架或者应用程序不再基于传统的操作系统开发(比如Linux),而是基于YARN这个云操作系统,YARN提供了资源管理和资源调度等机制,这意味着,很多新的计算框架或者应用程序脱离了YARN将不再可以单独运行,典型的代表是DAG计算框架Tez和Spark(Spark也可以运行在另一个与YARN类似的资源管理系统Mesos上)。

当前很多计算框架都开发了YARN版本,以能够直接运行在YARN上。本文进行简单的梳理。

(1) MapReduce:MapReduce是一个非常经典的离线计算框架,在MRv1中,MapReduce应用程序运行在由JobTracker和TaskTracker组成的运行时环境中,而在YARN中,不再有JobTracker和TaskTracker这样的服务组件,取而代之的是一个组件ApplicationMaster,它只负责应用程序相关的管理,比如任务切分和调度、任务监控和容错等,而资源相关的调度和管理交给YARN完成。

(2) Tez:Hortonworks开源的DAG计算框架,在MAPREDUCE基础上扩展而来的,重用了MapReduce大量代码,仅支持运行在YARN上,不可单独运行。Tez介绍可参考我的这篇文章:“Apache Tez:一个运行在YARN之上支持DAG作业的计算框架”。

(3)Storm:实时计算框架,运行时环境由Nimbus和supervisor等组件组成,目前storm团队正准备将其移植到YARN上(具体参考:storm plugin for Hadoop YARN:https://groups.google.com/forum/?fromgroups#!topic/storm-user/XBHCau0e5nA),而Yahoo甚至已经开源了一个简单的版本(具体见:https://github.com/yahoo/storm-yarn)。

(4)Spark:Spark是一个基于内存实现的MapReduce计算框架,某些应用场景下更加高效,它目前已经支持运行在YARN上(https://github.com/tweetmagik/spark-yarn)。

随着开源界的发展和推进,最终,YARN之上可以运行各种应用类型的计算框架,包括离线计算框架MapReduce,实时计算框架Storm,DAG计算框架Tez等,真正实现一个集群多用途,这样的集群或者系统,我们通常称为轻量级弹性计算平台,说它轻量级,是因为YARN采用了cgroups轻量级隔离方案,说它弹性,是因为YARN能根据各种计算框架或者应用的负载或者需求调整它们各自占用的资源,实现集群资源共享,资源弹性收缩。在不久的将来,普遍采用的部署方案应该如下:

当然,随着YARN朝着资源管理系统方向更好地发展,最终Impala和Hbase(Hbase已经在做了,参考:https://issues.apache.org/jira/browse/HBASE-4329)这种系统,均可以部署到YARN之上,这样,凡是跟计算沾边的系统均可以部署到YARN上。

原创文章,转载请注明: 转载自董的博客

本文链接地址: http://dongxicheng.org/mapreduce-nextgen/use-hadoop-yarn-to-build-a-cloud-system/

作者:Dong,作者介绍:http://dongxicheng.org/about/

本博客的文章集合:http://dongxicheng.org/recommend/


Copyright © 2013
This feed is for personal, non-commercial use only.
The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:
)
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Repo: How To Revive Teammates
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Best lightweight Linux distributions for low-end or older computers Best lightweight Linux distributions for low-end or older computers Mar 06, 2024 am 09:49 AM

Looking for the perfect Linux distribution to breathe new life into your old or low-end computer? If yes, then you have come to the right place. In this article, we'll explore some of our top picks for lightweight Linux distributions that are specifically tailored for older or less powerful hardware. Whether the motivation behind this is to revive an aging device or simply maximize performance on a budget, these lightweight options are sure to fit the bill. Why choose a lightweight Linux distribution? There are several advantages to choosing a lightweight Linux distribution, the first of which is getting the best performance on the least system resources, which makes them ideal for older hardware with limited processing power, RAM, and storage space. Beyond that, with heavier resource intensive

Building a Custom WordPress User Flow, Part Three: Password Reset Building a Custom WordPress User Flow, Part Three: Password Reset Sep 03, 2023 pm 11:05 PM

In the first two tutorials in this series, we built custom pages for logging in and registering new users. Now, there's only one part of the login flow left to explore and replace: What happens if a user forgets their password and wants to reset their WordPress password? In this tutorial, we'll tackle the last step and complete the personalized login plugin we've built throughout the series. The password reset feature in WordPress more or less follows the standard method on websites today: the user initiates a reset by entering their username or email address and requesting WordPress to reset their password. Create a temporary password reset token and store it in user data. A link containing this token will be sent to the user's email address. User clicks on the link. In the heavy

How to use GitLab for project document management How to use GitLab for project document management Oct 20, 2023 am 10:40 AM

How to use GitLab for project document management 1. Background introduction In the software development process, project documents are very important information. They can not only help the development team understand the needs and design of the project, but also provide reference to the testing team and customers. In order to facilitate version control and team collaboration of project documents, we can use GitLab for project document management. GitLab is a version control system based on Git. In addition to supporting code management, it can also manage project documents. 2. GitLab environment setup First, I

Analyze why Golang is suitable for high concurrency processing? Analyze why Golang is suitable for high concurrency processing? Feb 29, 2024 pm 01:12 PM

Golang (Go language) is a programming language developed by Google, aiming to provide an efficient, concise, concurrent and lightweight programming experience. It has built-in concurrency features and provides developers with powerful tools to perform well in high-concurrency situations. This article will delve into the reasons why Golang is suitable for high-concurrency processing and provide specific code examples to illustrate. Golang concurrency model Golang adopts a concurrency model based on goroutine and channel. goro

Smooth build: How to correctly configure the Maven image address Smooth build: How to correctly configure the Maven image address Feb 20, 2024 pm 08:48 PM

Smooth build: How to correctly configure the Maven image address When using Maven to build a project, it is very important to configure the correct image address. Properly configuring the mirror address can speed up project construction and avoid problems such as network delays. This article will introduce how to correctly configure the Maven mirror address and give specific code examples. Why do you need to configure the Maven image address? Maven is a project management tool that can automatically build projects, manage dependencies, generate reports, etc. When building a project in Maven, usually

How to build an intelligent voice assistant using Python How to build an intelligent voice assistant using Python Sep 09, 2023 pm 04:04 PM

How to use Python to build an intelligent voice assistant Introduction: In the era of rapid development of modern technology, people's demand for intelligent assistants is getting higher and higher. As one of the forms, smart voice assistants have been widely used in various devices such as mobile phones, computers, and smart speakers. This article will introduce how to use the Python programming language to build a simple intelligent voice assistant to help you implement your own personalized intelligent assistant from scratch. Preparation Before starting to build a voice assistant, we first need to prepare some necessary tools

Optimize the Maven project packaging process and improve development efficiency Optimize the Maven project packaging process and improve development efficiency Feb 24, 2024 pm 02:15 PM

Maven project packaging step guide: Optimize the build process and improve development efficiency. As software development projects become more and more complex, the efficiency and speed of project construction have become important links in the development process that cannot be ignored. As a popular project management tool, Maven plays a key role in project construction. This guide will explore how to improve development efficiency by optimizing the packaging steps of Maven projects and provide specific code examples. 1. Confirm the project structure. Before starting to optimize the Maven project packaging step, you first need to confirm

ChatGPT Java: How to build an intelligent music recommendation system ChatGPT Java: How to build an intelligent music recommendation system Oct 27, 2023 pm 01:55 PM

ChatGPTJava: How to build an intelligent music recommendation system, specific code examples are needed. Introduction: With the rapid development of the Internet, music has become an indispensable part of people's daily lives. As music platforms continue to emerge, users often face a common problem: how to find music that suits their tastes? In order to solve this problem, the intelligent music recommendation system came into being. This article will introduce how to use ChatGPTJava to build an intelligent music recommendation system and provide specific code examples. No.

See all articles