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 AAD78193F2 for ; Tue, 12 Apr 2016 10:20:49 +0000 (UTC) Received: (qmail 30842 invoked by uid 500); 12 Apr 2016 10:20:45 -0000 Delivered-To: apmail-hadoop-user-archive@hadoop.apache.org Received: (qmail 30728 invoked by uid 500); 12 Apr 2016 10:20:45 -0000 Mailing-List: contact user-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list user@hadoop.apache.org Received: (qmail 30717 invoked by uid 99); 12 Apr 2016 10:20:45 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Apr 2016 10:20:45 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 9FD97C064A for ; Tue, 12 Apr 2016 10:20:44 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.821 X-Spam-Level: X-Spam-Status: No, score=-0.821 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id gjMygu-MaHwi for ; Tue, 12 Apr 2016 10:20:42 +0000 (UTC) Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id D25B45F642 for ; Tue, 12 Apr 2016 10:20:41 +0000 (UTC) Received: by mail-wm0-f66.google.com with SMTP id l6so4058079wml.3 for ; Tue, 12 Apr 2016 03:20:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=IDsqnbpI7DadyqYKx8JZIOadJrm4MdJR29DFHzD752U=; b=pEGDcNAn9Vuyf2r2gYeSm3qAbA2i2d8wuyBwdR5Qp6IhSxhcAcRttuBr0qcfa8Y7sW 1UCixTfD0ziCPJnmtObxfQonzkB1lPi1b1KDc/T0f6oCJkMq1najPhtt8haCyc4UbEZ5 u6GxDP06fDHI3tg8AQYanUawgx0H33Hv1gt7n/ysaTPZ9TNfau80zp4Un1kwLxhxOgQX ImkmepBskHF/GtBNQG6Hm8IPRa70jS5L6xqexWPYCYWeuXUy4BcBqaJOO8umPmqMaRWJ cNUlbc/yerTq576kRW1jWSZmGVRu1FJQskuR5OK6cFekIVC+QxDL22ptcBDFpM8bHmEX KK3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=IDsqnbpI7DadyqYKx8JZIOadJrm4MdJR29DFHzD752U=; b=kv6vvpIaVEYay2lABNUY/1PghRcVLZ+trpqYL44yrn7ls9e9oINTJGEScj7OvYoz+w dnA5v0Gvo3SXMk2z9arDJGgRR6pSUOSnzKvjpNf7JSdJ+OxZ796wcC/sGGvAvRpau9Dp /QXFD+vuXbjqMTZObkHtDtXuCxBw9AvJ4aLyzg5fQ5fzdAIOGUH1WFi0670RbmYt0ICd cW7CNmQf0ghK0dAjoe51aqJZdCEI+eDxdW5yx9MqL7j9b92JzwveYN6qnZxnL+4ZTLtS nylgs2SkeXJp+rIUdKgFFvs1yyAYmxOg4YglkAIY/Tw0efdET5yNv6aGJiiUp9RZesMn MAlA== X-Gm-Message-State: AOPr4FVB2LNd3SDnMXG+X56vo0YoB6ggm9ofWjXoUX0GPpi/wATxCdyicPkbotAuky38CDD/LAtpjV3zg99usA== X-Received: by 10.28.29.205 with SMTP id d196mr3333550wmd.67.1460456441568; Tue, 12 Apr 2016 03:20:41 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.111.210 with HTTP; Tue, 12 Apr 2016 03:20:12 -0700 (PDT) In-Reply-To: References: From: Namikaze Minato Date: Tue, 12 Apr 2016 19:20:12 +0900 Message-ID: Subject: Re: Best way to migrate PB scale data between live cluster? To: cs user Cc: raymond , "common-user@hadoop.apache.org" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable The clean way to go is to start from the log and to replay it... But I have actually no idea about how to do that You might find this (old) work interesting: https://engineering.linkedin.com/distributed-systems/log-what-every-softwar= e-engineer-should-know-about-real-time-datas-unifying I'd never have tried to transmit this much data across the network, I would always have tried to find a way to copy hard disks and physically ship them to the location... Camusensei On 12 April 2016 at 19:14, cs user wrote: > Hi there, > > At some point in the near future we are also going to require exactly wha= t > you describe. We had hope to use distcp. > > You mentioned: > > 1. it do not handle data delete > > distcp has a -delete flag which says - > > "Delete the files existing in the dst but not in src" > > Does this not help with handling deleted data? > > I believe there is an issue if data is removed during a distcp run, so fo= r > example at the start of the run it captures all the files it needs to syn= c. > If some files are deleted during the run, it may lead to errors. Is there= a > way to ignore these errors and have distcp retry on the next run? > > I'd be interested in how you manage to eventually accomplish the syncing > between the two clusters, because we also need to solve the very same > problem :-) > > Perhaps others on the mailing list have experience with this? > > > Thanks! > > > On Tue, Apr 12, 2016 at 10:44 AM, raymond wrote: >> >> Hi >> >> >> >> We have a hadoop cluster with several PB data. and we need to migrate it >> to a new cluster across datacenter for larger volume capability. >> We estimate that the data copy itself might took near a month to finish. >> So we are seeking for a sound solution. The requirement is as below: >> 1. we cannot bring down the old cluster for such a long time ( of course= ), >> and a couple of hours is acceptable. >> 2. we need to mirror the data, it means that we not only need to copy th= e >> new data, but also need to delete the deleted data happened during the >> migration period. >> 3. we don=E2=80=99t have much space left on the old cluster, say 30% roo= m. >> >> >> >> regarding distcp, although it might be the easiest way , but >> >> >> >> 1. it do not handle data delete >> 2. it handle newly appended file by compare file size and overwrite it ( >> well , it might waste a lot of bandwidth ) >> 3. error handling base on file is triffle. >> 4 load control is difficult ( we still have heavy work load on old >> cluster) you can just try to split your work manually and make it small >> enough to achieve the flow control goal. >> >> >> >> In one word, for a long time mirror work. It won't do well by itself. >> >> >> >> The are some possible works might need to be done : >> >> >> >> We can: >> >> >> >> Do some wrap work around distcp to make it works better. ( say error >> handling, check results. Extra code for sync deleted files etc. ) >> Utilize Snapshot mechanisms for better identify files need to be copied >> and deleted. Or renamed. >> >> >> >> Or >> >> >> >> Forget about distcp. Use FSIMAGE and editlog as a change history source, >> and write our own code to replay the operation. Handle each file one by = one. >> ( better per file error handling could be achieved), but this might need= a >> lot of dev works. >> >> >> >> >> >> Btw. The closest thing I could found is facebook migration 30PB hive >> warehouse: >> >> >> >> >> https://www.facebook.com/notes/facebook-engineering/moving-an-elephant-l= arge-scale-hadoop-data-migration-at-facebook/10150246275318920/ >> >> >> >> They modifiy the distcp to do a initial bulk load (to better handling >> large files and very small files, for load balance I guess.) , and a >> replication system (not much detail on this part) to mirror the changes. >> >> >> >> But it is not clear that how they handle those shortcomings of distcp I >> mentioned above. And do they utilize snapshot mechanism. >> >> >> >> So , does anyone have experience on this kind of work? What do you think >> might be the best approaching for our case? Is there any ready works bee= n >> done that we can utilize? Is there any works have been done around snaps= hot >> mechanism to easy data migration? > > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscribe@hadoop.apache.org For additional commands, e-mail: user-help@hadoop.apache.org