Hadoop元数据合并异常及解决方法

Similar documents
使用MapReduce读取XML文件

使用Cassandra和Spark 2.0实现Rest API服务

Guava学习之Resources

Flume-ng与Mysql整合开发

Apache CarbonData集群模式使用指南

通过Hive将数据写入到ElasticSearch

Spark读取Hbase中的数据

Hive:用Java代码通过JDBC连接Hiveserver

( 含 要 ) 1-2 用 或 雇 用, 抑 或 有 無 俸 給 文 職 或 武 職, 政 官 或 事 官 均 屬 之, 其 不 以 具 備 人 資 格 為 限, 因 此 屬 於 最 廣 義 之 念 四 廣 義 念 之 依 服 24 條 之 規 定 : 本 於 受 有 俸 給 之 文 武 職, 及

Microsoft Word - 01.DOC

使用Spark SQL读取Hive上的数据

韶关:神奇丹霞

哼, 你 們 不 回 答 又 怎 麼 樣? 不 管 是 多 大 來 頭, 現 在 都 被 血 魔 吞 噬 無 蹤 了 你 們 幾 個 真 是 太 過 分, 我 不 犯 你 們, 你 們 卻 一 天 到 晚 來 挑 釁 我 教 尊 冷 笑 著 說 道 嗚, 大 人 土 地 大 姐 跪 下 來, 流 下

e bug 0 x=0 y=5/x 0 Return 4 2

chp6.ppt

三种方法实现Hadoop(MapReduce)全局排序(1)

伊春:醉人林都

穨control.PDF

Spark作业代码(源码)IDE远程调试

Flink快速上手(QuickStart)

Chapter 9: Objects and Classes

关林:武圣陵寝

泰山:五岳独尊

国内26省市新能源汽车推广规划已出台

untitled

硕 士 学 位 论 文 论 文 题 目 : 北 岛 诗 歌 创 作 的 双 重 困 境 专 业 名 称 : 中 国 现 当 代 文 学 研 究 方 向 : 中 国 新 诗 研 究 论 文 作 者 : 奚 荣 荣 指 导 老 师 : 姜 玉 琴 2014 年 12 月

在Spring中使用Kafka:Producer篇

曹美秀.pdf

北戴河:海阔天空

untitled

星河33期.FIT)

Ubuntu和CentOS如何配置SSH使得无密码登陆

Microsoft Word - TIP006SCH Uni-edit Writing Tip - Presentperfecttenseandpasttenseinyourintroduction readytopublish


Microsoft Word - 第四組心得.doc

西岭雪山滑雪场

在Fedora上部署Hadoop2.2.0伪分布式平台

高中英文科教師甄試心得

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

Kafka客户端是如何找到 leader 分区的

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

2-7.FIT)

ebook39-6

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

三种恢复 HDFS 上删除文件的方法

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

3.1 num = 3 ch = 'C' 2

EJB-Programming-4-cn.doc

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

六种使用Linux命令发送带附件的邮件

bbc_bond_is_back_worksheet.doc


06 01 action JavaScript action jquery jquery AJAX CSS jquery CSS jquery HTML CSS jquery.css() getter setter.css('backgroundcolor') jquery CSS b

< F5FB77CB6BCBD672028B0B6A46AABE4B751A874A643295F5FB8D5C5AA28A668ADB6292E706466>

江门:中国第一侨乡

穨6街舞對抗中正紀念堂_林伯勳張金鶚_.PDF

是 喔, 就 是 那 個 在 BBS 醫 療 版 跟 你 嗆 聲, 自 稱 有 三 十 多 年 推 拿 經 驗 的 大 叔 嗎? 一 個 看 來 頗 為 清 秀 的 女 生 問 道, 她 語 氣 中 略 感 訝 異 是 啊, 什 麼 推 拿 按 摩 有 多 好, 還 要 人 生 病 盡 量 不 要

124 第十三期 Conflicts in the Takeover of the Land in Taiwan after the Sino-Japanese War A Case in the Change of the Japanese Names of the Taiwanese Peopl

2014年大学生村官考试公共基础知识:社会革命和社会改革

朝陽科技大學八十八學年度招考碩士班簡章目錄

Microsoft Word doc

教育扩张能改善收入分配差距吗?——来自CHNS2006年数据的证据

山水文化,市井人家——以湖州邱城小镇的概念性规划为例

新版 明解C++入門編

Microsoft Word - c2tso_chan.doc

從詩歌的鑒賞談生命價值的建構

神 学 家 陶 恕 博 士 曾 经 相 当 感 叹 的 说, 数 以 百 万 计 的 我 们 生 活 在 福 音 既 得 之 地, 各 自 都 有 所 属 的 教 会, 也 努 力 去 传 基 督 教 的 信 仰, 但 可 悲 的 是, 或 许 终 其 一 生, 都 未 曾 认 真 思 想 过 神

行 业 市 场 研 究 属 于 企 业 战 略 研 究 范 畴, 作 为 当 前 应 用 最 为 广 泛 的 咨 询 服 务, 其 研 究 报 告 形 式 呈 现, 通 常 包 含 以 下 内 容 : 一 份 专 业 的 行 业 研 究 报 告, 注 重 指 导 企 业 或 投 资 者 了 解 该

Microsoft Word - 11月電子報1130.doc

國立桃園高中96學年度新生始業輔導新生手冊目錄

考試學刊第10期-內文.indd

Java

行 业 市 场 研 究 属 于 企 业 战 略 研 究 范 畴, 作 为 当 前 应 用 最 为 广 泛 的 咨 询 服 务, 其 研 究 报 告 形 式 呈 现, 通 常 包 含 以 下 内 容 : 一 份 专 业 的 行 业 研 究 报 告, 注 重 指 导 企 业 或 投 资 者 了 解 该

K301Q-D VRT中英文说明书141009

Microsoft Word - 08_科普作品選讀示例一_ doc

(Microsoft Word - \244g\246a\247B\244\275\253H\245\365\244\247\275\325\254d\254\343\250s doc)

國立中山大學學位論文典藏

<4D F736F F D205F FB942A5CEA668B443C5E9BB73A740B5D8A4E5B8C9A552B1D0A7F75FA6BFB1A4ACFC2E646F63>

第六章

行 业 市 场 研 究 属 于 企 业 战 略 研 究 范 畴, 作 为 当 前 应 用 最 为 广 泛 的 咨 询 服 务, 其 研 究 报 告 形 式 呈 现, 通 常 包 含 以 下 内 容 : 一 份 专 业 的 行 业 研 究 报 告, 注 重 指 导 企 业 或 投 资 者 了 解 该

spss.doc

IP505SM_manual_cn.doc

马 大 华 人 文 学 与 文 化 学 刊 Journal of Chinese Literature and Culture 6 前 言 顾 城 曾 在 接 受 德 国 汉 学 家 顾 彬 及 张 穗 子 专 访 中, 将 其 诗 歌 创 作 分 为 四 个 时 期, 即 自 然 阶 段 文 化

<4D F736F F D DA950A9FABBF62DA56AA8E5A4E5BEC7A4A42E646F63>

untitled

untitled

JBuilder Weblogic

三种方法实现Hadoop(MapReduce)全局排序(2)

錫安教會2015年11月29日分享

SparkR(R on Spark)编程指南

國立中山大學學位論文典藏.PDF

LSC操作说明

行 业 市 场 研 究 属 于 企 业 战 略 研 究 范 畴, 作 为 当 前 应 用 最 为 广 泛 的 咨 询 服 务, 其 研 究 报 告 形 式 呈 现, 通 常 包 含 以 下 内 容 : 一 份 专 业 的 行 业 研 究 报 告, 注 重 指 导 企 业 或 投 资 者 了 解 该

行 业 市 场 研 究 属 于 企 业 战 略 研 究 范 畴, 作 为 当 前 应 用 最 为 广 泛 的 咨 询 服 务, 其 研 究 报 告 形 式 呈 现, 通 常 包 含 以 下 内 容 : 一 份 专 业 的 行 业 研 究 报 告, 注 重 指 导 企 业 或 投 资 者 了 解 该

國立中山大學學位論文典藏


06JB8981-1,8

UDC The Policy Risk and Prevention in Chinese Securities Market

untitled

Transcription:

Hadoop 元数据合并异常及解决方法 这几天观察了一下 Standby NN 上面的日志, 发现每次 Fsimage 合并完之后,Standby NN 通知 Active NN 来下载合并好的 Fsimage 的过程中会出现以下的异常信息 : 2014-04-23 14:42:54,964 ERROR org.apache.hadoop.hdfs.server.namenode.ha. StandbyCheckpointer: Exception in docheckpoint java.net.sockettimeoutexception: Read timed out at java.net.socketinputstream.socketread0(native Method) at java.net.socketinputstream.read(socketinputstream.java:152) at java.net.socketinputstream.read(socketinputstream.java:122) at java.io.bufferedinputstream.fill(bufferedinputstream.java:235) at java.io.bufferedinputstream.read1(bufferedinputstream.java:275) at java.io.bufferedinputstream.read(bufferedinputstream.java:334) at sun.net.www.http.httpclient.parsehttpheader(httpclient.java:687) at sun.net.www.http.httpclient.parsehttp(httpclient.java:633) at sun.net.www.protocol.http.httpurlconnection.getinputstream (HttpURLConnection.java:1323) at java.net.httpurlconnection.getresponsecode(httpurlconnection.java:468) at org.apache.hadoop.hdfs.server.namenode.transferfsimage.dogeturl (TransferFsImage.java:268) at org.apache.hadoop.hdfs.server.namenode.transferfsimage.getfileclient (TransferFsImage.java:247) at org.apache.hadoop.hdfs.server.namenode.transferfsimage. uploadimagefromstorage(transferfsimage.java:162). docheckpoint(standbycheckpointer.java:174). access$1100(standbycheckpointer.java:53) $CheckpointerThread.doWork(StandbyCheckpointer.java:297) $CheckpointerThread.access$300(StandbyCheckpointer.java:210) $CheckpointerThread$1.run(StandbyCheckpointer.java:230) at org.apache.hadoop.security.securityutil.doasloginuserorfatal (SecurityUtil.java:456) $CheckpointerThread.run(StandbyCheckpointer.java:226) 1 / 5

上面的代码贴出来有点乱啊, 可以看下下面的图片截图 : StandbyCheckpointer 于是习惯性的去 Google 了一下, 找了好久也没找到类似的信息 只能自己解决 我们通过分析日志发现更奇怪的问题, 上次 Checkpoint 的时间一直都不变 ( 一直都是 Standby NN 启动的时候第一次 Checkpoint 的时间 ), 如下 : 2014-04-23 14:50:54,429 INFO org.apache.hadoop.hdfs.server.namenode.ha.standbycheckpointer: Triggering checkpoint because it has been 70164 seconds since the last checkpoint, which exceeds the configured interval 600 难道这是 Hadoop 的 bug? 于是我就根据上面的错误信息去查看源码, 经过仔细的分析, 发现上述的问题都是由 StandbyCheckpointer 类输出的 : private void dowork() { // Reset checkpoint time so that we don't always checkpoint // on startup. lastcheckpointtime = now(); while (shouldrun) { try { Thread.sleep(1000 * checkpointconf.getcheckperiod()); catch (InterruptedException ie) { if (!shouldrun) { break; try { // We may have lost our ticket since last checkpoint, log in again, // just in case if (UserGroupInformation.isSecurityEnabled()) { UserGroupInformation.getCurrentUser().checkTGTAndReloginFromKeytab(); long now = now(); long uncheckpointed = countuncheckpointedtxns(); long secssincelast = (now - lastcheckpointtime)/1000; 2 / 5

boolean needcheckpoint = false; if (uncheckpointed >= checkpointconf.gettxncount()) { LOG.info("Triggering checkpoint because there have been " + uncheckpointed + " txns since the last checkpoint, which " + "exceeds the configured threshold " + checkpointconf.gettxncount()); needcheckpoint = true; else if (secssincelast >= checkpointconf.getperiod()) { LOG.info("Triggering checkpoint because it has been " + secssincelast + " seconds since the last checkpoint, which " + "exceeds the configured interval " + checkpointconf.getperiod()); needcheckpoint = true; synchronized (cancellock) { if (now < preventcheckpointsuntil) { LOG.info("But skipping this checkpoint since we are about"+ " to failover!"); canceledcount++; continue; assert canceler == null; canceler = new Canceler(); if (needcheckpoint) { docheckpoint(); lastcheckpointtime = now; catch (SaveNamespaceCancelledException ce) { LOG.info("Checkpoint was cancelled: " + ce.getmessage()); canceledcount++; catch (InterruptedException ie) { // Probably requested shutdown. continue; catch (Throwable t) { LOG.error("Exception in docheckpoint", t); finally { synchronized (cancellock) { canceler = null; 3 / 5

上面的异常信息是由 docheckpoint() 函数执行的过程中出现问题而抛出来的, 这样导致 lastcheckpointtime = now; 语句永远执行不到 那么为什么 docheckpoint() 执行过程会出现异常?? 根据上述堆栈信息的跟踪, 发现是由 TransferFsImage 类的 dogeturl 函数中的下面语句导致的 : if (connection.getresponsecode()!= HttpURLConnection.HTTP_OK) { 由于 connection 无法得到对方的响应码而超时 于是我就想到是否是我的集群 socket 超时设置的有问题?? 后来经过各种分析发现不是 于是我只能再看看代码, 我发现了上述代码的前面有如下设置 : if (timeout <= 0) { Configuration conf = new HdfsConfiguration(); timeout = conf.getint(dfsconfigkeys.dfs_image_transfer_timeout_key, DFSConfigKeys.DFS_IMAGE_TRANSFER_TIMEOUT_DEFAULT); if (timeout > 0) { connection.setconnecttimeout(timeout); connection.setreadtimeout(timeout); if (connection.getresponsecode()!= HttpURLConnection.HTTP_OK) { throw new HttpGetFailedException( "Image transfer servlet at " + url + " failed with status code " + connection.getresponsecode() + "\nresponse message:\n" + connection.getresponsemessage(), connection); DFS_IMAGE_TRANSFER_TIMEOUT_KEY 这个时间是由 dfs.image.transfer.timeout 参数所设置的, 默认值为 10 * 60 * 1000, 单位为毫秒 然后我看了一下这个属性的解释 : Timeout for image transfer in milliseconds. This timeout and the related dfs.image.transfer.bandwidthpersec parameter should be configured such that normal image transfer can complete within the timeout. This timeout prevents client hangs when the sender 4 / 5

Powered by TCPDF (www.tcpdf.org) Hadoop 元数据合并异常及解决方法 fails during image transfer, which is particularly important during checkpointing. Note that this timeout applies to the entirety of image transfer, and is not a socket timeout. 这才发现问题, 这个参数的设置和 dfs.image.transfer.bandwidthpersec 息息相关, 要保证 Active NN 在 dfs.image.transfer.timeout 时间内把合并好的 Fsimage 从 Standby NN 上下载完, 要不然会出现异常 然后我看了一下我的配置 <property> <name>dfs.image.transfer.timeout</name> <value>60000</value> </property> <property> <name>dfs.image.transfer.bandwidthpersec</name> <value>1048576</value> </property> 60 秒超时, 一秒钟拷贝 1MB, 而我的集群上的元数据有 800 多 MB, 显然是不能在 60 秒钟拷贝完, 后来我把 dfs.image.transfer.timeout 设置大了, 观察了一下, 集群再也没出现过上述异常信息, 而且以前的一些异常信息也由于这个而解决了 本博客文章除特别声明, 全部都是原创! 转载本文请加上 : 转载自过往记忆 (https://www.iteblog.com/) 本文链接 : () 5 / 5