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
>
>