最近hadoop本地磁盘总是坏,伴随着有些hadoop job失败,阅读了一些相关的代码。 本地磁盘健康检查 NodeManager默认会每两分钟检查本地磁盘(local-dirs),找出那些目录可以使用。注意这里如果判定这个磁盘不可用,则在重启NodeManager之前,就算磁盘好了,
最近hadoop本地磁盘总是坏,伴随着有些hadoop job失败,阅读了一些相关的代码。
本地磁盘健康检查
NodeManager默认会每两分钟检查本地磁盘(local-dirs),找出那些目录可以使用。注意这里如果判定这个磁盘不可用,则在重启NodeManager之前,就算磁盘好了,也不会把它变成可用。代码在LocalDirsHandlerService,DirectoryCollection。
当好磁盘数少于一定量时,会把这台机器变成unhealthy,将不会再给这台机器分配任务。
参数 :
yarn.nodemanager.disk-health-checker.enable ? ? 是否开启磁盘健康检查,默认是开启 yarn.nodemanager.disk-health-checker.interval-ms 检查间隔时间,默认是2分钟 yarn.nodemanager.disk-health-checker.min-healthy-disks ?最少健康磁盘的个数,默认值是0.25,如果少于这个值,则把这个节点变成unhealthy
本地磁盘使用
NodeManager会从hdfs下载job.jar等东西,这叫资源本地化。代码在ResourceLocalizationService和DefaultContainerExecutor里。
token文件会使用第一个好的local-dirs,其他的文件会顺序的使用local-dirs,文件可能分散在各个盘上。
?AppMaster重试
AppMaster重试是由RM触发,代码在RMAppImpl的AttemptFailedTransition事件里。默认重试次数是1次(也就是不重试)
参数:
yarn.resourcemanager.am.max-retries AM最大重试次数
TaskAttempt重试
我们的map和reduce任务都是一个个TaskAttempt,TaskAttempt由AppMaster来管理,启动和重启的操作都是由AppMaster来处理。代码在TaskImpl的AttemptFailedTransition里
参数:
mapreduce.map.maxattempts map最大重试次数,默认是4 mapreduce.reduce.maxattempts reduce最大重试次数,默认是4
AppMaster资源分配
AppMaster会定时申请、释放container资源,代码在RMContainerRequestor.containerFailedOnHost
当taskAttempt在一个节点的失败数目超过一定上限(通过参数?mapreduce.job.maxtaskfailures.per.tracker 配置,默认是3),该节点会被加入临时的黑名单,为了防止大量的机器加入黑名单,还有个参数?yarn.app.mapreduce.am.job.node-blacklisting.ignore-threshold-node-percent 设置最多被加入黑名单的比例,默认值是33,当超过33%的机器被加入黑名单,则黑名单将会失效。
加入黑名单后,会让RM回收这台机器的container,申请其他机器的container
参数:
mapreduce.job.maxtaskfailures.per.tracker 失败多少次后,加入黑名单,默认是3 yarn.app.mapreduce.am.job.node-blacklisting.ignore-threshold-node-percent 加入黑名单的比例超过这个值时,关闭黑名单,默认是33 yarn.app.mapreduce.am.job.node-blacklisting.enable 是否使用黑名单,默认true
最终处理
在AM失败重启前,先sleep两分钟,等待磁盘健康检查完成。TaskAttempt有黑名单的方式,由于本地磁盘损坏造成的失败可能会比较少触发。
原文地址:hadoop本地目录相关代码分析, 感谢原作者分享。

ACID attributes include atomicity, consistency, isolation and durability, and are the cornerstone of database design. 1. Atomicity ensures that the transaction is either completely successful or completely failed. 2. Consistency ensures that the database remains consistent before and after a transaction. 3. Isolation ensures that transactions do not interfere with each other. 4. Persistence ensures that data is permanently saved after transaction submission.

MySQL is not only a database management system (DBMS) but also closely related to programming languages. 1) As a DBMS, MySQL is used to store, organize and retrieve data, and optimizing indexes can improve query performance. 2) Combining SQL with programming languages, embedded in Python, using ORM tools such as SQLAlchemy can simplify operations. 3) Performance optimization includes indexing, querying, caching, library and table division and transaction management.

MySQL uses SQL commands to manage data. 1. Basic commands include SELECT, INSERT, UPDATE and DELETE. 2. Advanced usage involves JOIN, subquery and aggregate functions. 3. Common errors include syntax, logic and performance issues. 4. Optimization tips include using indexes, avoiding SELECT* and using LIMIT.

MySQL is an efficient relational database management system suitable for storing and managing data. Its advantages include high-performance queries, flexible transaction processing and rich data types. In practical applications, MySQL is often used in e-commerce platforms, social networks and content management systems, but attention should be paid to performance optimization, data security and scalability.

The relationship between SQL and MySQL is the relationship between standard languages and specific implementations. 1.SQL is a standard language used to manage and operate relational databases, allowing data addition, deletion, modification and query. 2.MySQL is a specific database management system that uses SQL as its operating language and provides efficient data storage and management.

InnoDB uses redologs and undologs to ensure data consistency and reliability. 1.redologs record data page modification to ensure crash recovery and transaction persistence. 2.undologs records the original data value and supports transaction rollback and MVCC.

Key metrics for EXPLAIN commands include type, key, rows, and Extra. 1) The type reflects the access type of the query. The higher the value, the higher the efficiency, such as const is better than ALL. 2) The key displays the index used, and NULL indicates no index. 3) rows estimates the number of scanned rows, affecting query performance. 4) Extra provides additional information, such as Usingfilesort prompts that it needs to be optimized.

Usingtemporary indicates that the need to create temporary tables in MySQL queries, which are commonly found in ORDERBY using DISTINCT, GROUPBY, or non-indexed columns. You can avoid the occurrence of indexes and rewrite queries and improve query performance. Specifically, when Usingtemporary appears in EXPLAIN output, it means that MySQL needs to create temporary tables to handle queries. This usually occurs when: 1) deduplication or grouping when using DISTINCT or GROUPBY; 2) sort when ORDERBY contains non-index columns; 3) use complex subquery or join operations. Optimization methods include: 1) ORDERBY and GROUPB


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Zend Studio 13.0.1
Powerful PHP integrated development environment

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Atom editor mac version download
The most popular open source editor