2016-03-28 2 views
1

Я использую Spark 1.5 и Cassandra 3.2.1. Может ли кто-нибудь указать, какие именно банки должны присутствовать в пути сборки для подключения, запроса и вставки данных в Cassandra.Искры 1.5 и datastax-ddc-3.2.1 Кассандра Зависимости Кассандры?

Сейчас я использую follwing банки искровым Кассандры connector_2.10-1.5.0-M3.jar апач-Кассандры clientutil-3.2.1.jar Cassandra-водитель-ядро-3.0.0 -beta1-bb1bce4-СНАПШОТ-shaded.jar искровым сборочно-1.5.1-hadoop2.0.0-MR1-cdh4.2.0.jar гуавы-18.0.jar Netty-все-4.0.23.Final.jar

С вышеуказанными баночками я могу подключиться к кассандре. Я могу обрезать таблицы и отбрасывать таблицы. Но я не могу вставить какие-либо данные даже в простой запрос на вставку.

Ниже приводится код:

import org.apache.spark.SparkConf; 
import org.apache.spark.api.java.JavaSparkContext; 

import com.datastax.driver.core.Session; 
import com.datastax.spark.connector.cql.CassandraConnector; 

public class Test { 

public static void main(String[] args) { 


    JavaSparkContext ctx = new JavaSparkContext(new SparkConf().setMaster("spark://blr-lt-203:7077").set("spark.cassandra.connection.host", "blr-lt-203").setAppName("testinsert").set("spark.serializer" ,"org.apache.spark.serializer.KryoSerializer").set("spark.kryoserializer.buffer.max" , "1024mb")); 

    CassandraConnector connector = CassandraConnector.apply(ctx.getConf()); 

    Session session = connector.openSession(); 

    session.execute("insert into test.table1 (name) values ('abcd')") ; 
    session.close(); 
    ctx.stop(); 

} 

} 

Ниже приведены журналы:

16/03/28 21:24:52 INFO BlockManagerMaster: Trying to register BlockManager 
16/03/28 21:24:52 INFO BlockManagerMasterEndpoint: Registering block manager localhost:50238 with 944.7 MB RAM,BlockManagerId(driver, localhost, 50238) 
16/03/28 21:24:52 INFO BlockManagerMaster: Registered BlockManager 
16/03/28 21:24:53 INFO NettyUtil: Did not find Netty's native epoll transport in the classpath, defaulting to NIO. 
16/03/28 21:24:53 INFO Cluster: New Cassandra host localhost/127.0.0.1:9042 added 
16/03/28 21:24:53 INFO CassandraConnector: Connected to Cassandra cluster: Test Cluster 

Он просто останавливается здесь в течение некоторого времени, а затем раз за исключением того Фолля:

Exception in thread "main" com.datastax.driver.core.exceptions.UnavailableException: Not enough replicas available for query at consistency LOCAL_QUORUM (2 required but only 1 alive) 
  1. Что я делаю неправильно?

  2. Пожалуйста, дайте мне знать, какие требуемые банки или проблемы с совместимостью с версией.

  3. Что является наиболее стабильные версии искры (1.5) и Кассандру (?)

Заранее спасибо

+0

Я также сталкиваюсь с той же проблемой, ваша проблема решена ?? –

ответ

0

Проблема возникает из-за конфликтов между библиотеками гуавы в Google.

Решение: оттенок библиотека guava присутствует в зависимости от искры-кассандра-коннектора. Вы можете сделать это, используя плагин maven shade. Вот мой pom.xml, чтобы скрыть библиотеку guava.

<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.pc.test</groupId> 
<artifactId>casparktest</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 

<name>casparktest</name> 
<url>http://maven.apache.org</url> 

<properties> 
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<dependencies> 
<dependency> 
<groupId>org.apache.spark</groupId> 
<artifactId>spark-core_2.10</artifactId> 
<version>1.5.0</version> 
</dependency> 
<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>3.8.1</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>com.datastax.spark</groupId> 
    <artifactId>spark-cassandra-connector_2.10</artifactId> 
    <version>1.5.0</version> 
</dependency> 
<dependency> 
<groupId>com.datastax.cassandra</groupId> 
<artifactId>cassandra-driver-core</artifactId> 
<version>3.0.0-beta1</version> 
</dependency> 

</dependencies> 
<build> 

<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 
     <version>2.3</version> 
     <executions> 
      <execution> 
       <phase>package</phase> 
       <goals> 
        <goal>shade</goal> 
       </goals> 
       <configuration> 
       <filters> 
    <filter> 
     <artifact>*:*</artifact> 
     <excludes> 
      <exclude>META-INF/*.SF</exclude> 
      <exclude>META-INF/*.DSA</exclude> 
      <exclude>META-INF/*.RSA</exclude> 
     </excludes> 
    </filter> 
</filters> 
        <relocations> 
         <relocation> 
          <pattern>com.google</pattern> 
          <shadedPattern>com.pointcross.shaded.google</shadedPattern> 
         </relocation> 

        </relocations> 
        <minimizeJar>false</minimizeJar> 
        <shadedArtifactAttached>true</shadedArtifactAttached> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
</plugins> 
</build> 

После чего вы делаете Maven сборки, который будет генерировать банку со всей зависимости, упомянутой в pom.xml также затенением библиотеки гуавы с помощью которого вы можете отправить искры рабочих мест.

 Смежные вопросы

  • Нет связанных вопросов^_^