cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tom Davidson <tdavid...@covario.com>
Subject RE: sstableloader throws storage_port error
Date Thu, 11 Aug 2011 23:24:12 GMT
I am trying to sstableloader and I do not want to access Cassandra on the same node. I haved
edited my Cassandra.yaml to with appropriate values for the listen_address and rpc_address
but I keep getting the error below. The Cassandra-cli tool, nodetool etc. works find when
trying to connect to my Cassandra cluster, but sstableloader does not. Any suggestions?

[tdavidson@nadevsan06 ~]$ sstableloader --debug -v Demo
Starting client (and waiting 30 seconds for gossip) ...
org.apache.cassandra.config.ConfigurationException: Unable to bind to address nadevsan04/10.168.121.57:7000.
Set listen_address in cassandra.yaml to an interface you can bind to, e.g., your private IP
address on EC2
java.lang.RuntimeException: org.apache.cassandra.config.ConfigurationException: Unable to
bind to address nadevsan04/10.168.121.57:7000. Set listen_address in cassandra.yaml to an
interface you can bind to, e.g., your private IP address on EC2
        at org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:225)
        at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:104)
        at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:61)
Caused by: org.apache.cassandra.config.ConfigurationException: Unable to bind to address nadevsan04/10.168.121.57:7000.
Set listen_address in cassandra.yaml to an interface you can bind to, e.g., your private IP
address on EC2
        at org.apache.cassandra.net.MessagingService.getServerSocket(MessagingService.java:220)
        at org.apache.cassandra.net.MessagingService.listen(MessagingService.java:191)
        at org.apache.cassandra.service.StorageService.initClient(StorageService.java:350)
        at org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:182)
        ... 2 more

From: John Conwell [mailto:john@iamjohn.me]
Sent: Tuesday, July 26, 2011 12:11 PM
To: user@cassandra.apache.org
Subject: Re: sstableloader throws storage_port error

After much research and experimentation, I figured out how to get sstableloader running on
the same machine as a live cassandra node instance.

The key, as Jonathan stated is to configure sstableloader to use a different ipaddress than
the running cassandra instance is using.  To do this, I ran this command, which created the
loopback address for 127.0.0.2


sudo ifconfig lo0 alias 127.0.0.2

No you can have cassandra configured to listen to 127.0.0.1, and sstableloader configured
to listen to 127.0.0.2

By the way, to remove this ipaddress, run

sudo ifconfig lo0 -alias 127.0.0.2

But thats not really all.  Because sstableloader reads the cassandra.yaml file to get the
gossip ipaddress, you need to make a copy of the cassandra install directory (or at least
the bin and conf folders).  Basically one folder with yaml configured for Cassandra, the other
folder with yaml configured for sstableloader.

Hope this helps people. I've written an in depth description of how to do all this, and can
post it if people want, but I'm not sure the etiquette of posting blog links in the email
list.

Thanks,
John

On Tue, Jul 26, 2011 at 7:40 AM, John Conwell <john@iamjohn.me<mailto:john@iamjohn.me>>
wrote:
If I have Cassandra already running on my machine, how do I configure sstableloader to run
on a different IP (127.0.0.2).  Also, does that mean in order to use sstableloader on the
same machine as an running Cassandra node, I have to have two NIC cards?

I looked around for any info about how to configure and run sstableloader, but other than
what the cmdline spits out I cant find anything.  Are there any examples or best practices?
 Is it designed to be run on a machine that isn't running a cassandra node?

On Mon, Jul 25, 2011 at 8:24 PM, Jonathan Ellis <jbellis@gmail.com<mailto:jbellis@gmail.com>>
wrote:
sstableloader uses gossip to discover the Cassandra ring, so you'll
need to run it on a different IP (127.0.0.2 is fine).

On Mon, Jul 25, 2011 at 2:41 PM, John Conwell <john@iamjohn.me<mailto:john@iamjohn.me>>
wrote:
> I'm trying to figure out how to use the sstableloader tool.  For my test I
> have a single node cassandra instance running on my local machine.  I have
> cassandra running, and validate this by connecting to it with cassandra-cli.
> I run sstableloader using the following command:
> bin/sstableloader /Users/someuser/cassandra/mykeyspace
> and I get the following error:
> org.apache.cassandra.config.ConfigurationException: localhost/127.0.0.1:7000<http://127.0.0.1:7000>
> is in use by another process.  Change listen_address:storage_port in
> cassandra.yaml to values that do not conflict with other services
>
> I've played around with different ports, but nothing works.  It it because
> I'm trying to run sstableloader on the same machine that cassandra is
> running on?  It would be odd I think, but cant thing of another reason I
> would get that eror.
> Thanks,
> John


--
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of DataStax, the source for professional Cassandra support
http://www.datastax.com


--

Thanks,
John C




--

Thanks,
John C


Mime
View raw message