Return-Path: X-Original-To: apmail-hadoop-common-user-archive@www.apache.org Delivered-To: apmail-hadoop-common-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9686B102D1 for ; Sat, 31 Aug 2013 16:13:23 +0000 (UTC) Received: (qmail 43512 invoked by uid 500); 31 Aug 2013 16:13:17 -0000 Delivered-To: apmail-hadoop-common-user-archive@hadoop.apache.org Received: (qmail 43404 invoked by uid 500); 31 Aug 2013 16:13:17 -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 43390 invoked by uid 99); 31 Aug 2013 16:13:16 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 31 Aug 2013 16:13:16 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of harsh@cloudera.com designates 209.85.223.173 as permitted sender) Received: from [209.85.223.173] (HELO mail-ie0-f173.google.com) (209.85.223.173) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 31 Aug 2013 16:13:09 +0000 Received: by mail-ie0-f173.google.com with SMTP id qa5so4520943ieb.18 for ; Sat, 31 Aug 2013 09:12:49 -0700 (PDT) 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:content-type; bh=dk6cv6egc5pVthx/XJ/BUtQ+SaT9KdBwKb5+cCblriU=; b=CedkS1tl0Ow+k/Gh9to02DmQQ2WEm7/2bYgphBe4QhIDdnkP186wLqFsaTbocKGtIo D626uD+fsbY7aYVzli0eOk8Qm/Au0AIMKiZkLSzDQ3sIq9xmuMfjDRkTQdD4wC7iCL3r DMADJffOysj98K6JFTTixfV+zqlWqEEW5ECj02VKF3O+9vSXs6SeZ+ig2nBJRdRETQKk IZ/MPhgDaW0/Yr3t2bdBb/bG/MnIpeIVpYWL1WbmjNDQaAfuw4IaDpOY21nMrV0uAzgF SVw9JcWkn4dv6Aht+JFce9tf6I4f3SvNM3QZopUCXMmRaZLtHQ0gI/KY55RPPi2ZBjG0 MrWw== X-Gm-Message-State: ALoCoQmkpg1fJr40/Gqq120H2TPa/Ah/JmbvAWGn/LFSllSk8fOaga22QRmPMNn/x+sbCbzUVfo5 X-Received: by 10.50.178.167 with SMTP id cz7mr6360858igc.7.1377965568968; Sat, 31 Aug 2013 09:12:48 -0700 (PDT) MIME-Version: 1.0 Received: by 10.50.56.114 with HTTP; Sat, 31 Aug 2013 09:12:27 -0700 (PDT) In-Reply-To: References: From: Harsh J Date: Sat, 31 Aug 2013 21:42:27 +0530 Message-ID: Subject: Re: InvalidProtocolBufferException while submitting crunch job to cluster To: "" Content-Type: text/plain; charset=ISO-8859-1 X-Virus-Checked: Checked by ClamAV on apache.org Your cluster is using HDFS HA, and therefore requires a little more configs than just fs.defaultFS/etc.. You need to use the right set of cluster client configs. If you don't have them at /etc/hadoop/conf and /etc/hbase/conf on your cluster edge node to pull from, try asking your cluster administrator for a configuration set, and place their parent directories on your application's classpath. The first error deals with perhaps you also including a guava dependency in your project, which is different than the one transitively pulled in by hadoop-client via crunch. You should be able to use guava libs without needing an explicit dependency, and it would be the right needed version. The second error deals with your MR submission failing, cause the JT is using a staging directory over a HDFS HA, which uses a "logical" name of "bdatadev". A logical HA name needs other configs (typically in the hdfs-site.xml) that tell it which are the actual physical NNs under it - configs that you're missing here. On Sat, Aug 31, 2013 at 1:34 AM, Narlin M wrote: > I am getting following exception while trying to submit a crunch pipeline > job to a remote hadoop cluster: > > Exception in thread "main" java.lang.RuntimeException: Cannot create job > output directory /tmp/crunch-324987940 > at > org.apache.crunch.impl.mr.MRPipeline.createTempDirectory(MRPipeline.java:344) > at org.apache.crunch.impl.mr.MRPipeline.(MRPipeline.java:125) > at test.CrunchTest.setup(CrunchTest.java:98) > at test.CrunchTest.main(CrunchTest.java:367) > Caused by: java.io.IOException: Failed on local exception: > com.google.protobuf.InvalidProtocolBufferException: Protocol message > end-group tag did not match expected tag.; Host Details : local host is: > "NARLIN/127.0.0.1"; destination host is: "":50070; > at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:759) > at org.apache.hadoop.ipc.Client.call(Client.java:1164) > at > org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:202) > at com.sun.proxy.$Proxy11.mkdirs(Unknown Source) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:164) > at > org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:83) > at com.sun.proxy.$Proxy11.mkdirs(Unknown Source) > at > org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.mkdirs(ClientNamenodeProtocolTranslatorPB.java:425) > at org.apache.hadoop.hdfs.DFSClient.mkdirs(DFSClient.java:1943) > at > org.apache.hadoop.hdfs.DistributedFileSystem.mkdirs(DistributedFileSystem.java:523) > at org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:1799) > at > org.apache.crunch.impl.mr.MRPipeline.createTempDirectory(MRPipeline.java:342) > ... 3 more > Caused by: com.google.protobuf.InvalidProtocolBufferException: Protocol > message end-group tag did not match expected tag. > at > com.google.protobuf.InvalidProtocolBufferException.invalidEndTag(InvalidProtocolBufferException.java:73) > at > com.google.protobuf.CodedInputStream.checkLastTagWas(CodedInputStream.java:124) > at > com.google.protobuf.AbstractMessageLite$Builder.mergeFrom(AbstractMessageLite.java:213) > at > com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:746) > at > com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:238) > at > com.google.protobuf.AbstractMessageLite$Builder.mergeDelimitedFrom(AbstractMessageLite.java:282) > at > com.google.protobuf.AbstractMessage$Builder.mergeDelimitedFrom(AbstractMessage.java:760) > at > com.google.protobuf.AbstractMessageLite$Builder.mergeDelimitedFrom(AbstractMessageLite.java:288) > at > com.google.protobuf.AbstractMessage$Builder.mergeDelimitedFrom(AbstractMessage.java:752) > at > org.apache.hadoop.ipc.protobuf.RpcPayloadHeaderProtos$RpcResponseHeaderProto.parseDelimitedFrom(RpcPayloadHeaderProtos.java:985) > at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:882) > at org.apache.hadoop.ipc.Client$Connection.run(Client.java:813) > 0 [Thread-3] WARN org.apache.hadoop.util.ShutdownHookManager - > ShutdownHook 'ClientFinalizer' failed, java.lang.NoSuchMethodError: > com.google.common.collect.LinkedListMultimap.values()Ljava/util/List; > java.lang.NoSuchMethodError: > com.google.common.collect.LinkedListMultimap.values()Ljava/util/List; > at org.apache.hadoop.hdfs.SocketCache.clear(SocketCache.java:135) > at org.apache.hadoop.hdfs.DFSClient.close(DFSClient.java:672) > at > org.apache.hadoop.hdfs.DistributedFileSystem.close(DistributedFileSystem.java:539) > at org.apache.hadoop.fs.FileSystem$Cache.closeAll(FileSystem.java:2308) > at > org.apache.hadoop.fs.FileSystem$Cache$ClientFinalizer.run(FileSystem.java:2324) > at > org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:54) > > Google search on this error yielded solutions that asked to confirm that > /etc/hosts file contained the entry for NARLIN which it does in my case. > > Here's the code that I am using to set up the MRPipeline: > > Configuration conf = HBaseConfiguration.create(); > > conf.set("fs.defaultFS", "hdfs://:50070"); > conf.set("mapred.job.tracker", ":50030"); > > System.out.println("Hadoop configuration created."); > System.out.println("Initializing crunch pipeline ..."); > > conf.set("mapred.jar", ""); > > pipeline = new MRPipeline(getClass(), "crunchjobtest", conf); > > Has anyone faced this issue before and knows how to resolve it/point out if > I am missing anything? > > Thanks for the help. -- Harsh J