10. Características
Tabla RDD
N
N N
N
M
W W W W
Tabla RDD
N
N N
N
M
W W W W
Mapping de Filas de C* como Tuplas
Guarda RDDs en C*(saveToCassandra)
Soporta todos los tipos de datos de C*
Filtrado de filas (en C*) mediante Where
…
Más en la web oficial.
24. Modelo de Datos C*
//KeySpace
CREATE KEYSPACE demoCMU WITH replication = {'class': 'SimpleStrategy', 'replication_factor':1};
use demoCMU;
//Tabla
CREATE TABLE demoCMU.asistentesCMU (id int PRIMARY KEY, nombre text, genero text);
CREATE TABLE demoCMU.asistentesCopia (id int PRIMARY KEY, nombre text , tipo text);
//Registros
INSERT INTO demoCMU.asistentesCMU (id, nombre, genero) VALUES (1, 'Ale Murray', 'femenino');
INSERT INTO demoCMU.asistentesCMU (id, nombre, genero) VALUES (2, 'Iñigo Aldama', 'masculino');
INSERT INTO demoCMU.asistentesCMU (id, nombre, genero) VALUES (3, 'Antonio', 'masculino');
…
INSERT INTO demoCMU.asistentesCMU (id, nombre, genero) VALUES (32, 'Jesus Arrabal', 'masculino');
25. Conexión al Conector (Spark-Shell)
scala> sc.stop
scala>:paste
// Entering paste mode (ctrl-D to finish)
import com.datastax.spark.connector._ //conector datastax spark+cassandra
import org.apache.spark._ //conector Spark
val conf = new SparkConf() //creamos una configuración
conf.set("spark.cassandra.connection.host", "10.211.55.8") //añadimos nuestro host de C*
conf.set("spark.home", "/opt/spark-1.0.2") //establecemos el Home de Spark
val sc = new SparkContext("local[2]", "Cassandra Connector Test", conf) // Creamos el Contexto
// Exiting paste mode, now interpreting.
27. Acceso a Tabla C*
scala> val tableCMU = sc.cassandraTable("democmu", "asistentescmu")
tableCMU: com.datastax.spark.connector.rdd.CassandraRDD[com.datastax.spark.connector.CassandraRow] =
CassandraRDD[0] at RDD at CassandraRDD.scala:47
34. Y mucho más…
Working with user-defined case classes and tuples
Customizing the object mapping
Using Connector in Java
…
Visita: https://github.com/datastax/spark-cassandra-connector/
· Distribuida
· Peer to peer
· Tolerante a fallos
· Escala linealmente
· Sencilla de utilizar
· Motor de procesamiento de grandes volúmenes de datos en memoria
· Arquitectura maestro esclavo: Master & Workers
· Sencillo de programar
· RDDs: Resilient Distributed Datasets (Lineage)
· Es compatible con HDFS, CSVs, Parquet y con Cassandra.
· En Mayo anunciaron datastax y databricks que unían lazos
· El conector se lanzó a mediados de Julio
· Gran impacto en la comunidad
· Desde entonces hemos estado trabajando con el
· La principal: De tabla a RDD
· Varias tablas en RDDs
· Cada Spark Executor mantiene una conexión con el cluster de C*
· Colocar cada nodo de Cassandra en el mismo servidor de cada worker de Spark puede disminuir la latencia entre ambos (no garantizado).