I thought "NullPointerException: architecture" is a missing attribute; this problem is encountered when using a private image (IIRC). I found it necessary to add this property with attr. architecture=:

jclouds.ec2.ami-query=owner-id=$AWS_ACCOUNT_NUMBER;state=available;image-type=machine;root-device-type=instance-store;architecture=x86_32

The more constraints on finding the image, the faster the lookup (even if some seem rather obvious).


Paul

On 20111102 8:11 , Andrei Savu wrote:
The jclouds issue is here: http://code.google.com/p/jclouds/issues/detail?id=744

On Wed, Nov 2, 2011 at 5:05 PM, Andrei Savu <[email protected] <mailto:[email protected]>> wrote:

    So maybe the cluster is still the underlying problem ...

    I will log that exception as an issue on the jclouds issue tracker.

    Thanks,

    -- Andrei Savu

    On Wed, Nov 2, 2011 at 4:59 PM, Paolo Castagna
    <[email protected]
    <mailto:[email protected]>> wrote:

        Hi Andrei,
        I've just tried again, the only difference in the recipe:
        whirr.instance-templates=1 hadoop-namenode+hadoop-jobtracker,16
        hadoop-datanode+hadoop-tasktracker
        I saw the same exception, but now I can connect to the web UIs
        as usual.

        Paolo

        On 2 November 2011 14:54, Andrei Savu <[email protected]
        <mailto:[email protected]>> wrote:
        > Maybe - I am not sure but I think the AMI metadata is
        incomplete.
        > Are you able to actually use the cluster? Does it happen
        every time?
        >
        > Thanks,
        > -- Andrei Savu
        >
        > On Wed, Nov 2, 2011 at 4:35 PM, Paolo Castagna
        > <[email protected]
        <mailto:[email protected]>> wrote:
        >>
        >> Hi Andrei
        >>
        >> On 29 October 2011 13:37, Andrei Savu
        <[email protected] <mailto:[email protected]>> wrote:
        >> > What if you start a smaller size cluster but with more
        powerful
        >> > machines?
        >>
        >> I've tried that... using this recipe with c1.xlarge:
        >>
        >> -------
        >> whirr.cluster-name=hadoop
        >> whirr.instance-templates=1 hadoop-namenode+hadoop-jobtracker,18
        >> hadoop-datanode+hadoop-tasktracker
        >> whirr.instance-templates-max-percent-failures=100
        >> hadoop-namenode+hadoop-jobtracker,70
        >> hadoop-datanode+hadoop-tasktracker
        >> whirr.max-startup-retries=1
        >> whirr.provider=aws-ec2
        >> whirr.identity=${env:AWS_ACCESS_KEY_ID_LIVE}
        >> whirr.credential=${env:AWS_SECRET_ACCESS_KEY_LIVE}
        >> whirr.hardware-id=c1.xlarge
        >> whirr.location-id=us-east-1
        >> whirr.image-id=us-east-1/ami-1136fb78
        >> whirr.private-key-file=${sys:user.home}/.ssh/whirr
        >> whirr.public-key-file=${whirr.private-key-file}.pub
        >> whirr.hadoop.version=0.20.204.0
        >>
        >>
        
whirr.hadoop.tarball.url=http://archive.apache.org/dist/hadoop/core/hadoop-${whirr.hadoop.version}/hadoop-${whirr.hadoop.version}.tar.gz
        
<http://archive.apache.org/dist/hadoop/core/hadoop-$%7Bwhirr.hadoop.version%7D/hadoop-$%7Bwhirr.hadoop.version%7D.tar.gz>
        >> -------
        >>
        >> The cluster started up this time, however I see this
        exception in the
        >> Whirr log:
        >>
        >> malformed image: null
        >> java.lang.NullPointerException: architecture
        >>        at
        >>
        
com.google.common.base.Preconditions.checkNotNull(Preconditions.java:204)
        >>        at org.jclouds.ec2.domain.Image.<init>(Image.java:81)
        >>        at
        >>
        
org.jclouds.ec2.xml.DescribeImagesResponseHandler.endElement(DescribeImagesResponseHandler.java:169)
        >>        at
        >>
        
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
        >>        at
        >>
        
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
        >>        at
        >>
        
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2938)
        >>        at
        >>
        
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
        >>        at
        >>
        
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
        >>        at
        >>
        
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
        >>        at
        >>
        
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
        >>        at
        >>
        
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
        >>        at
        >>
        
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
        >>        at
        >>
        
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
        >>        at
        org.jclouds.http.functions.ParseSax.doParse(ParseSax.java:125)
        >>        at
        org.jclouds.http.functions.ParseSax.parse(ParseSax.java:114)
        >>        at
        org.jclouds.http.functions.ParseSax.apply(ParseSax.java:78)
        >>        at
        org.jclouds.http.functions.ParseSax.apply(ParseSax.java:51)
        >>        at
        >>
        com.google.common.util.concurrent.Futures$4.apply(Futures.java:439)
        >>        at
        >>
        com.google.common.util.concurrent.Futures$4.apply(Futures.java:437)
        >>        at
        >>
        
com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:713)
        >>        at
        >>
        
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        >>        at
        >>
        
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        >>        at java.lang.Thread.run(Thread.java:662)
        >>
        >> I run the proxy as usual and try to connect to the Namenode
        UI or
        >> Jobtracker UI.
        >> It connects but I see an empty page... it usually works fine.
        >>
        >> Am I hitting another problem?
        >>
        >> Thanks,
        >> Paolo
        >
        >




Reply via email to