You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Marko Dinic <ha...@gmail.com> on 2015/06/04 13:35:57 UTC

com/datastax/driver/core/policies/LoadBalancingPolicy

Hello everyone,

I'm new to Cassandra and I'm trying to use it as input for Hadoop.

For some reason I'm getting the following exception while trying to use
Cassandra as input to Hadoop

    Exception in thread "main" java.lang.NoClassDefFoundError:
com/datastax/driver/core/policies/LoadBalancingPolicy

Here is the code

    public class CDriver extends Configured implements Tool{

    public static void main(String[] args) throws IOException,
InterruptedException, ClassNotFoundException, Exception
    {
        Configuration conf = new Configuration();

        ToolRunner.run(new CDriver(), args);
    }

    @Override
    public int run(String[] args) throws Exception {

        String output = args[0];

        Configuration conf = super.getConf();

        Job job = new Job(conf);

        job.setJarByClass(CDriver.class);
        job.setJobName("Cassandra as input");

        ConfigHelper.setInputInitialAddress(conf, "127.0.0.1");
        ConfigHelper.setInputColumnFamily(conf, "basketball", "nba");
        ConfigHelper.setInputPartitioner(conf, "Murmur3Partitioner");
        CqlConfigHelper.setInputCQLPageRowSize(conf, "3");
        job.setInputFormatClass(CqlInputFormat.class);

        FileOutputFormat.setOutputPath(job, new Path(output));

        job.setMapperClass(CMapper.class);
        job.setReducerClass(CReducer.class);

        job.setMapOutputKeyClass(Text.class);
        job.setMapOutputValueClass(IntWritable.class);

        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);

        job.waitForCompletion(true);

        return 0;
    }
}

It goes off on the following line

    CqlConfigHelper.setInputCQLPageRowSize(conf, "3");

And here are the Maven dependencies:

        <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.nissatech</groupId>
        <artifactId>TestingCassandra</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>jar</packaging>
        <properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.7</maven.compiler.source>
            <maven.compiler.target>1.7</maven.compiler.target>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-core</artifactId>
                <version>1.2.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cassandra</groupId>
                <artifactId>cassandra-all</artifactId>
                <version>2.1.5</version>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <archive>
                            <manifest>

<mainClass>com.nissatech.testingcassandra.CDriver</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>
                                jar-with-dependencies
                            </descriptorRef>
                        </descriptorRefs>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </project>
Can anyone explain what is the problem? I have Cassandra running on
localhost.

When I tried adding this dependency additionally

         <dependency>
            <groupId>com.datastax.cassandra</groupId>
            <artifactId>cassandra-driver-mapping</artifactId>
            <version>2.1.5</version>
          </dependency>

I've got the following exception while running from NetBeans

Exception in thread "main" java.lang.UnsupportedOperationException: you
must set the keyspace and columnfamily with setInputColumnFamily()

While when running in pseudo-distributed mode I get the same exception like
before.

I'm really confused, everything seems ok, but it doesn't work. What seems
to be the problem?

-- 
Marko