Return-Path: X-Original-To: apmail-hadoop-user-archive@minotaur.apache.org Delivered-To: apmail-hadoop-user-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C573810304 for ; Tue, 10 Dec 2013 10:21:43 +0000 (UTC) Received: (qmail 69254 invoked by uid 500); 10 Dec 2013 10:21:34 -0000 Delivered-To: apmail-hadoop-user-archive@hadoop.apache.org Received: (qmail 69006 invoked by uid 500); 10 Dec 2013 10:21:29 -0000 Mailing-List: contact user-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@hadoop.apache.org Delivered-To: mailing list user@hadoop.apache.org Received: (qmail 68990 invoked by uid 99); 10 Dec 2013 10:21:27 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Dec 2013 10:21:27 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS,WEIRD_PORT X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of vinayakumar.b@huawei.com designates 119.145.14.65 as permitted sender) Received: from [119.145.14.65] (HELO szxga02-in.huawei.com) (119.145.14.65) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Dec 2013 10:21:23 +0000 Received: from 172.24.2.119 (EHLO szxeml208-edg.china.huawei.com) ([172.24.2.119]) by szxrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id BMT54265; Tue, 10 Dec 2013 18:21:00 +0800 (CST) Received: from SZXEML448-HUB.china.huawei.com (10.82.67.191) by szxeml208-edg.china.huawei.com (172.24.2.57) with Microsoft SMTP Server (TLS) id 14.3.158.1; Tue, 10 Dec 2013 18:20:58 +0800 Received: from SZXEML523-MBX.china.huawei.com ([169.254.3.229]) by szxeml448-hub.china.huawei.com ([10.82.67.191]) with mapi id 14.03.0158.001; Tue, 10 Dec 2013 18:20:58 +0800 From: Vinayakumar B To: "user@hadoop.apache.org" Subject: RE: how to handle the corrupt block in HDFS? Thread-Topic: how to handle the corrupt block in HDFS? Thread-Index: AQHO9T9qamojqZ9XLU+5HIyK9+4UtppMGgOAgAABdQCAAH0ogIAAl97w Date: Tue, 10 Dec 2013 10:20:58 +0000 Message-ID: <5DF48A23D7B14649BBA72C2F64C6663B82B35496@szxeml523-mbx.china.huawei.com> References: <1d9a556d0c984c8bb5eff3a845b786f0@DM2PR08MB301.namprd08.prod.outlook.com> In-Reply-To: <1d9a556d0c984c8bb5eff3a845b786f0@DM2PR08MB301.namprd08.prod.outlook.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.18.170.80] Content-Type: multipart/related; boundary="_007_5DF48A23D7B14649BBA72C2F64C6663B82B35496szxeml523mbxchi_"; type="multipart/alternative" MIME-Version: 1.0 X-CFilter-Loop: Reflected X-Virus-Checked: Checked by ClamAV on apache.org --_007_5DF48A23D7B14649BBA72C2F64C6663B82B35496szxeml523mbxchi_ Content-Type: multipart/alternative; boundary="_000_5DF48A23D7B14649BBA72C2F64C6663B82B35496szxeml523mbxchi_" --_000_5DF48A23D7B14649BBA72C2F64C6663B82B35496szxeml523mbxchi_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi ch huang, It may seem strange, but the fact is, CorruptBlocks through JMX means "Number of blocks with corrupt replicas". M= ay not be all replicas are corrupt. This you can check though jconsole for= description. Where as Corrupt blocks through fsck means, blocks with all replicas corrup= t(non-recoverable)/ missing. In your case, may be one of the replica is corrupt, not all replicas of sam= e block. This corrupt replica will be deleted automatically if one more dat= anode available in your cluster and block replicated to that. Related to replication 10, As Peter Marron said, some of the important file= s of the mapreduce job will set the replication of 10, to make it accessibl= e faster and launch map tasks faster. Anyway, if the job is success these files will be deleted auomatically. I t= hink only in some cases if the jobs are killed in between these files will = remain in hdfs showing underreplicated blocks. Thanks and Regards, Vinayakumar B From: Peter Marron [mailto:Peter.Marron@trilliumsoftware.com] Sent: 10 December 2013 14:19 To: user@hadoop.apache.org Subject: RE: how to handle the corrupt block in HDFS? Hi, I am sure that there are others who will answer this better, but anyway. The default replication level for files in HDFS is 3 and so most files that= you see will have a replication level of 3. However when you run a Map/Reduce job the system knows in advance that every node will need a copy of certain files. Specifically the job.xml and the various jars containing classes that will be needed to run the mappers and reducers. So the system arranges that some of these files have a higher replication level. T= his increases the chances that a copy will be found locally. By default this higher replication level is 10. This can seem a little odd on a cluster where you only have, say, 3 nodes. Because it means that you will almost always have some blocks that are mark= ed under-replicated. I think that there was some discussion a while back to ch= ange this to make the replication level something like min(10, #number of nodes) However, as I recall, the general consensus was that this was extra complexity that wasn't really worth it. If it ain't broke... Hope that this helps. Peter Marron Senior Developer, Research & Development Office: +44 (0) 118-940-7609 peter.marron@trilliumsoftware.com Theale Court First Floor, 11-13 High Street, Theale, RG7 5AH, UK [cid:image001.png@01CEF5BC.07D01FE0] [cid:image002.png@01CEF5BC.07D01FE0] [cid:image003.png@01CEF5BC.07D01FE0] [cid:image004.png@01CEF5BC.07D01FE0] www.trilliumsoftware.com Be Certain About Your Data. Be Trillium Certain. From: ch huang [mailto:justlooks@gmail.com] Sent: 10 December 2013 01:21 To: user@hadoop.apache.org Subject: Re: how to handle the corrupt block in HDFS? more strange , in my HDFS cluster ,every block has three replicas,but i fin= d some one has ten replicas ,why? # sudo -u hdfs hadoop fs -ls /data/hisstage/helen/.staging/job_138554232830= 7_0915 Found 5 items -rw-r--r-- 3 helen hadoop 7 2013-11-29 14:01 /data/hisstage/hele= n/.staging/job_1385542328307_0915/appTokens -rw-r--r-- 10 helen hadoop 2977839 2013-11-29 14:01 /data/hisstage/hele= n/.staging/job_1385542328307_0915/job.jar -rw-r--r-- 10 helen hadoop 3696 2013-11-29 14:01 /data/hisstage/hele= n/.staging/job_1385542328307_0915/job.split On Tue, Dec 10, 2013 at 9:15 AM, ch huang > wrote: the strange thing is when i use the following command i find 1 corrupt bloc= k # curl -s http://ch11:50070/jmx |grep orrupt "CorruptBlocks" : 1, but when i run hdfs fsck / , i get none ,everything seems fine # sudo -u hdfs hdfs fsck / ........ ....................................Status: HEALTHY Total size: 1479728140875 B (Total open files size: 1677721600 B) Total dirs: 21298 Total files: 100636 (Files currently being written: 25) Total blocks (validated): 119788 (avg. block size 12352891 B) (Total = open file blocks (not validated): 37) Minimally replicated blocks: 119788 (100.0 %) Over-replicated blocks: 0 (0.0 %) Under-replicated blocks: 166 (0.13857816 %) Mis-replicated blocks: 0 (0.0 %) Default replication factor: 3 Average block replication: 3.0027633 Corrupt blocks: 0 Missing replicas: 831 (0.23049656 %) Number of data-nodes: 5 Number of racks: 1 FSCK ended at Tue Dec 10 09:14:48 CST 2013 in 3276 milliseconds The filesystem under path '/' is HEALTHY On Tue, Dec 10, 2013 at 8:32 AM, ch huang > wrote: hi,maillist: my nagios alert me that there is a corrupt block in HDFS all da= y,but i do not know how to remove it,and if the HDFS will handle this autom= aticlly? and if remove the corrupt block will cause any data lost?thanks --_000_5DF48A23D7B14649BBA72C2F64C6663B82B35496szxeml523mbxchi_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi ch huang,

 <= /p>

It may seem strange, but = the fact is,

CorruptBlocks thro= ugh JMX means “Number of blocks with corrupt replicas”. May not be all rep= licas are corrupt.  This you can check though jconsole for descrip= tion.

 <= /p>

Where as Corrupt blocks through fsck means, blocks with all replicas corru= pt(non-recoverable)/ missing.

 <= /p>

In your case, may be one = of the replica is corrupt, not all replicas of same block. This corrupt rep= lica will be deleted automatically if one more datanode available in your cluster and block replicated to that.<= /p>

 <= /p>

 <= /p>

Related to replication 10= , As Peter Marron said, some of the important files of the mapreduce job will set the replicatio= n of 10, to make it accessible faster and launch map tasks faster.

Anyway, if the job is suc= cess these files will be deleted auomatically. I think only in some cases i= f the jobs are killed in between these files will remain in hdfs showing underreplicated blocks.

 <= /p>

Thanks and Regards,<= /o:p>

Vinayakumar B<= /span>

 <= /p>

From: Peter Ma= rron [mailto:Peter.Marron@trilliumsoftware.com]
Sent: 10 December 2013 14:19
To: user@hadoop.apache.org
Subject: RE: how to handle the corrupt block in HDFS?

 

Hi,

 = ;

I am sure = that there are others who will answer this better, but anyway.

The defaul= t replication level for files in HDFS is 3 and so most files that you<= /o:p>

see will h= ave a replication level of 3. However when you run a Map/Reduce<= /span>

job the sy= stem knows in advance that every node will need a copy of

certain fi= les. Specifically the job.xml and the various jars containing

classes th= at will be needed to run the mappers and reducers. So the=

system arr= anges that some of these files have a higher replication level. This increa= ses

the chance= s that a copy will be found locally.

By default= this higher replication level is 10.

 = ;

This can s= eem a little odd on a cluster where you only have, say, 3 nodes.=

Because it= means that you will almost always have some blocks that are marked

under-repl= icated. I think that there was some discussion a while back to change<= /o:p>

this to ma= ke the replication level something like min(10, #number of nodes)

However, a= s I recall, the general consensus was that this was extra=

complexity= that wasn’t really worth it. If it ain’t broke…

 = ;

Hope that = this helps.

 = ;

Peter Marron

Senior Developer, Research &am= p; Development

 

Office: +44 (0) 118-940-7609  peter.marron@trilliumsoftware.com

Theale Court First Floor, 11-1= 3 High Street, Theale, RG7 5AH, UK

<= /p>

<= span style=3D"font-size:6.0pt;font-family:"Arial","sans-seri= f";color:#2A75B6">

 

www.trilliumsoftware.com

Be Certain About Your Data. = Be Trillium Certain.

 = ;

From: ch huang= [mailto:justlooks@gmail.com]
Sent: 10 December 2013 01:21
To: user@hadoop.apache.org=
Subject: Re: how to handle the corrupt block in HDFS?

 

more strange , in my HDFS clust= er ,every block has three replicas,but i find some one has ten replicas ,wh= y?

 

= # sudo -u hdfs hadoop fs -ls /data/hisstage/helen/.staging/job_138554232830= 7_0915
Found 5 items
-rw-r--r--   3 helen hadoop      &n= bsp;   7 2013-11-29 14:01 /data/hisstage/helen/.staging/job_13855= 42328307_0915/appTokens
-rw-r--r--  10 helen hadoop    2977839 2013-11-29 14:01= /data/hisstage/helen/.staging/job_1385542328307_0915/job.jar
-rw-r--r--  10 helen hadoop       3696 2= 013-11-29 14:01 /data/hisstage/helen/.staging/job_1385542328307_0915/job.sp= lit

On Tue, Dec 10, 2013 at 9:15 AM= , ch huang <jus= tlooks@gmail.com> wrote:

the strange thing is when i use= the following command i find 1 corrupt block

 

#  curl -s http://ch11:50070/jmx |grep orrupt
    "CorruptBlocks" : 1,

but when i run hdfs fsck / , i = get none ,everything seems fine

 

# sudo -u hdfs hdfs fsck /=

........

 

...............................= .....Status: HEALTHY
 Total size:    1479728140875 B (Total open files size:= 1677721600 B)
 Total dirs:    21298
 Total files:   100636 (Files currently being written: 25)  Total blocks (validated):      119788 (avg. = block size 12352891 B) (Total open file blocks (not validated): 37)
 Minimally replicated blocks:   119788 (100.0 %)
 Over-replicated blocks:        0 (= 0.0 %)
 Under-replicated blocks:       166 (0.1= 3857816 %)
 Mis-replicated blocks:        = ; 0 (0.0 %)
 Default replication factor:    3
 Average block replication:     3.0027633
 Corrupt blocks:         =        0
 Missing replicas:        &nbs= p;     831 (0.23049656 %)
 Number of data-nodes:        =   5
 Number of racks:         = ;      1
FSCK ended at Tue Dec 10 09:14:48 CST 2013 in 3276 milliseconds<= /span>

=
The filesystem under path '/' is HEALTHY

On Tue, Dec 10, 2013 at 8:32 AM= , ch huang <jus= tlooks@gmail.com> wrote:

hi,maillist:<= /p>

     &= nbsp;      my nagios alert me that there is a corr= upt block in HDFS all day,but i do not know how to remove it,and if the HDF= S will handle this automaticlly? and if remove the corrupt block will cause= any data lost?thanks

 

 

--_000_5DF48A23D7B14649BBA72C2F64C6663B82B35496szxeml523mbxchi_-- --_007_5DF48A23D7B14649BBA72C2F64C6663B82B35496szxeml523mbxchi_ Content-Type: image/png; name="image001.png" Content-Description: image001.png Content-Disposition: inline; filename="image001.png"; size=8196; creation-date="Tue, 10 Dec 2013 10:20:57 GMT"; modification-date="Tue, 10 Dec 2013 10:20:57 GMT" Content-ID: Content-Transfer-Encoding: base64 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 --_007_5DF48A23D7B14649BBA72C2F64C6663B82B35496szxeml523mbxchi_ Content-Type: image/png; name="image002.png" Content-Description: image002.png Content-Disposition: inline; filename="image002.png"; size=987; creation-date="Tue, 10 Dec 2013 10:20:57 GMT"; modification-date="Tue, 10 Dec 2013 10:20:57 GMT" Content-ID: Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAABEAAAAjCAYAAABy3+FcAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAO xAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUATWljcm9zb2Z0IE9mZmljZX/tNXEAAANbSURBVEhL 7VVtbBRFGH53dm4/7qu9GOEM8KPQJq1WSwR/eIZKJPyxaTCgoiGRmBDShKiEmqr84Nz6QyUIMWJS MGIMkQ8VIkQIiQVCSBpIY0tNybUEqml6l7a0vb27ve7u7OyMc+dHIPWaIP+UdzLZHzvzvO887/PM YMMw4H4D3y9Aaf8DkLksPuDk/8NJorl5leM4YY9SkBHi83kKMSQFgzplzLva09OTL+ukacXKr3xC 13DGr2FAAEya15dM4pxQGieEqIlEohnH43FN4tIaj9CX+vt6r96Lq5c/+dSAQ+njOBaLibQ8C1gq 3AtAaa2o+Tfxkf+QvSTGv7gWBHG4VME/eqej7uJq7SFlqTWUurTX3HIrmUyi+m8zLxQoRNI3sqcN 6fvsnVXPAXl3Wfc2JSzvh/wkqAjMN3hX4pNvptssVX3TJAQg7A8kactqwz1j/gWEU6mU/eiKVb4G frmtvpN7BXwLCpM2RMK4Oour1hcsui4/LZI7swBqqAms2TpBQK+OfPaY7ln47YcPG8N+qPaU2m4i 6AF/ZmI3UZQnZBaIZsb84Rid+JrjPIOA/wH4kgzjmR8N7UJvKeEAiQTfSkf3YOwVf2ma+YI25o99 J9XpB6iWuJgbGW6tCrDFUkT5+TN36xjEavdB7uYguKq+tNbtOxTY3FLk6LXiNE/YVmEP/shsO7Ej +2G//sjC/bIWPMRsk0UXRNI8oDhxVgy/PHP23OfyxmfQ4qj6A99JPrbWLjonLwvS4tSQl3NaDe9k d5nYvdJ7IzAOz3fED7+q6fIRXkgv4RICnwHU6/z1froJ7NkQpEkVXGArwc7d/tSwj27/m9i7BBZa hAAXwPEEx0JJCidweabu/BH32acnUDh4Cj0HLBQCIBm9YosRdRaKFgjxScAYB5l5MMhrMl16uwco B0CFqImYlC4oy/PPuFsnnI6Uf4pCSkdhRAKZekEI5BGwvNgsdBJQAFxvFLQKIEoo+5MzJQ/qUdwI JgPEEUiudxuCTANZFecTAOaUC4QcrAjSmdpc7KjuarEJ3gcULU9bgVQN/dUA5uZFhS9CsTAOtvW+ Eb1yfV7Z7zbbRsWCDbsaBuUvU40+iORG8fg7yYZdO41Upw/RuV6v+Hh1lgDuiDJAhfiPvYC/A+wV dFgq4pO4AAAAAElFTkSuQmCC --_007_5DF48A23D7B14649BBA72C2F64C6663B82B35496szxeml523mbxchi_ Content-Type: image/png; name="image003.png" Content-Description: image003.png Content-Disposition: inline; filename="image003.png"; size=981; creation-date="Tue, 10 Dec 2013 10:20:57 GMT"; modification-date="Tue, 10 Dec 2013 10:20:57 GMT" Content-ID: Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAABUAAAAkCAYAAABmMXGeAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAO xAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUATWljcm9zb2Z0IE9mZmljZX/tNXEAAANVSURBVEhL 7ZVdaFRHFMfPmZl7dzca86GCfUixVJvsqiUtflUptLQPhULpWxobXaxEBBX0RaGgIYofj6UFEUr9 KJFNSl9aKIiV0icVLT6kNRtJabDQdGOUzZrs/dp7z3hmzUabJjViXgo5cLlz78z85sz//Ode1dnZ CXMdaq6BhjcPnXtV5zWd1/QZFOhIJkUq8dZ6UrF64fr5vvDn653ZbFRBfJbcm1AdHYexqfvOO623 z19+GrtnZdubKXvh5xBBsxQEWgAkxabeTOO6A2BbhKS3Lg3yx1Xqm7+XEcpLmVWfnGq9dWbPTOCe 5PaUlvKisONV0fgogO8AIIKIV70KQl5EqYBKztcKrDo2f/gCSgvlgkW7e1a3N0IU7m/Jnv1tKpwo OqhqFleF+btlWDm0BnKLwFBuUiQsezNh6TvleepPO+6PRcUH1SKWeJc850b3qh3nkOhsH1z7hfWi iQVeocB7DHxiVRSsgxCjoevs/Hig6yeVHvzyXmbltmOYsE9ExQLyNuKiqnoXOeO7mqINfZmmDTdA Uz9nt0SXgmnVQSsG5DwYNMDy9/RCcnsSNS0gd/w2dzbpkg/RWN6sDJx5Ci07ZbbLk0DPkGlZDpQs 8qNQCkp5EtYhVJbWgf84EyIgUwxzVaKi5ZR8eS6g1rcmoS3ZrlymMX1Y1dUfCQv3QYcGPFGIp3ms 0k8R20v8OAk1Dfbo0QuQBhmLt6NQDVzI2eKMRBCNF/4KcNGlf0DLOoDuBWWPUMlvKCeqZ8cViYVA nnsy3f8Fe2tC00ojJBoUgfeyrFkCxObWYem/qexRWbMYwsLI1eXD2dNPDp788rMdes+/1LY2JsQR Lv1GruiLPNC4+t9wA6yuM8YfEhC1vjF6PZwWal6mB7t+59uWzJr2Dq7opxCGUk/VAQWomnq22Ngf 6Dkftgx03Zm6quIz/TopezkFQS1b8zVEfE8IuYKMvXTlMCEgm8/oZ2SJnEK3PzK6L537dng6jRSE ri+k9TZaso31rGUo+9MDaccfjednA9K+W9Bu8TIgnfro16/KJ2emUC0D3ca0e79f9v5B18ZmcsNm ENiAEdVqwKJAyBGI/sATN/lID83GE5OF+iD3gwM5uMKTzPVcMf/ffy75pp38/9H0If8SW0JsdSu8 AAAAAElFTkSuQmCC --_007_5DF48A23D7B14649BBA72C2F64C6663B82B35496szxeml523mbxchi_ Content-Type: image/png; name="image004.png" Content-Description: image004.png Content-Disposition: inline; filename="image004.png"; size=723; creation-date="Tue, 10 Dec 2013 10:20:57 GMT"; modification-date="Tue, 10 Dec 2013 10:20:57 GMT" Content-ID: Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAABAAAAAkCAYAAACAGLraAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAO xAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUATWljcm9zb2Z0IE9mZmljZX/tNXEAAAJTSURBVEhL 7VRLaxNRFP6SeeVRkaKipFgKpcSCiOjChbGELgV/gOLCLAQRBLeCINl0Ieim4MJF0YW7IoK4q+7E iLjwsbBVSYNErE2ieU9mJjN+dx5NFEyo3UkOczNzz73nu+d+3zmRs9ksdmLyToJF7AhgxMH/Ugc3 Ng5chRq7BEPfXlvIKmB1PslwQuehaEnYXTo4QiFWh+SBOQMwxb5ILCkzoAmzA+htTIyPoWFYqDZb PZC/YYTCAM/zulE3cObIFB5k5lFu6kjffoxCuQ4ofiYDEvEATBtHD+7BrpjqjsR4HIXv1W0AxDXc evoOtbaBb9UWcvkNckFgZoMwUw1zYtkeKYIfTdnKycvAtjG1d4w3sbA7okJVFcwlJ3Bich9WSzXk S3VcTM3CcRzcy60ht1YEohE31OfAxPzMNBbPpVznw/cFnD0+jcypWZhURglU4VrmZBKpm4/wKr9J FRQfgJLoQkKRDE/hgyazESaC7z//gEKlgWunj0Hl/HL6MDIfV3ijAGAAy59J5oWlZ0Crg/RMAnOH EpgkyZA8hYb+qZZJLCSSqMkoCVJpXbtXYUMBwqLi/CEJNf6wLYBgyQ2g+S8q2AsKvvt9PYC+jS6A Wwg9oP7v/q0eQFTF8tt1vFzYdPvnJ0t7YeUN7uZW0TKpjsRiYn1cWX6B609eo66boBxusfHXibOr UGk3UPnC8hWmqSjWTBR/sMnEvbWo616vkES77fki9DEVAbMEox1Cl2zzINfEqcKCuV8Tv/ks0Y1G Qc7u/3qHC2L8kw2VcRjqCAD4BYfBu8ijqyfmAAAAAElFTkSuQmCC --_007_5DF48A23D7B14649BBA72C2F64C6663B82B35496szxeml523mbxchi_--