Este artículo demuestra un ejemplo del uso de Spark como motor de análisis, Cassandra como almacenamiento de datos y el uso de arranque de primavera para desarrollar controladores.
1. Requisitos previos
Crear un espacio de llave
Crea KeySpace HFCB con replication = {'class': 'SimpleStrategy', 'replication_factor': 3};Crear una mesa
Crear la persona de la tabla (ID de texto Clave primaria, primer_name Text, Last_Name Text);
Insertar datos de prueba
Insertar en persona (id, primer_name, last_name) valores ('1', 'wang', 'yunfei'); insertar en persona (id, primer_name, last_name) valores ('2', 'peng', 'chao'); insertar en persona (id, primer_name, last_name) valores ('3', ',' li ',' jian '); valores ('4', 'zhang', 'jie'); insertar en persona (id, primer_name, last_name) valores ('5', 'liang', 'wei'); insertar en personas (id, primer_name, last_name) valores ('5', 'liang', 'wei');2. Instalación de Spark-Cassandra-Connector
Para habilitar Spark-1.5.1 Para usar Cassandra como almacenamiento de datos, debe agregar las siguientes dependencias del paquete JAR (ejemplo para colocar el paquete en el directorio/opt/spark/gested-lib/, que puede ser arbitrario):
cassandra-clientutil-3.0.2.jarcassandra-driver-core-3.1.4.jarguava-16.0.1.jarcassandra-thrift-3.0.2.jar joda-convert-1.2.jarjoda-time-2.9.9.jarlibthrift-0.9.1.jarspark-cassandra-connector_2.10-1.5.1.jar
En el directorio/opt/spark/conf, cree un nuevo archivo Spark-ENV.SH e ingrese el siguiente contenido
Spark_classpath =/opt/spark/gested-lib/*
3. Desarrollo de aplicaciones de arranque de primavera
Agregar dependencias de chispa y chispa
<Spendency> <MoupRid> com.datastax.spark </groupid> <artifactid> spark-cassandra-connector_2.10 </artifactid> <verserse> 1.5.1 </versión> </pendency> <ependency> <grupoD> org.apache.spark </groupid> <arifactid> chispa-core_2.10 </artifactid> <lother> 1.5.1 1. <Spendency> <MoupRoid> org.apache.spark </groupid> <artifactid> spark-sql_2.10 </artifactid> <verserse> 1.5.1 </versewers> </pendency> <epardency> <proupid> org.apache.spark </groupid> <arifactid> spark-sql_2.10 </artifactid> <verserse> 1.5.1 </versión> </versión> </Versión> </Versión>
Configurar rutas Spark y Cassandra en Application.yml
Spark.Master: Spark: // Master: 7077Cassandra.host: 192.168.1.140Cassandra.Keyspace: HFCB
Aquí indicamos específicamente que Spark: // Master: 7077 es un nombre de dominio en lugar de una dirección IP. Puede modificar el archivo de hosts local para mapear la dirección maestra y IP.
Configuración de SparkContext y CassandrasqlContext
@ConfigurationPublic Class SparkCassandraconfig {@Value ("$ {Spark.Master}") String SparkMasterUrl; @Value ("$ {cassandra.host}") cadena cassandrahost; @Value ("$ {cassandra.keyspace}") String CassandraySpace; @Bean public javasparkContext javasparkContext () {SparkConf conf = new SparkConf (true) .set ("Spark.Cassandra.Connection.host", Cassandrahost) // .set ("Spark.Cassandra.auth.userna", "Cassandra") // .set ("Spark.Cassandra.Auth.Password Worthewortworthword", "", "", ")"), "),"), ")") ")") ")") ")") ")") ")") ")") .set ("Spark.submit.deployMode", "Cliente"); JavasparkContext context = new JavasparkContext (SparkMasterUrl, "SparkDemo", conf); contexto de retorno; } @Bean public cassandrasqlContext sqlContext () {cassandrasqlContext CassandrasqlContext = new CassandrasqlContext (javasparkContext (). Sc ()); cassandrasqlContext.setKeySpace (CassandraySpace); return cassandrasqlContext; }}Llamada simple
@RepositoryPublic Class PersonRepository {@autewired cassandrasqlContext CassandrasqlContext; public Long CountPerson () {dataFrame People = cassandrasqlContext.sql ("Seleccione * del orden de persona por id"); devolver gente.count (); }}Inicie y ejecutelo como un programa de arranque de primavera normal.
Dirección del código fuente: https://github.com/wiselyman/spring-park-cassandra.git
Resumir
Lo anterior es un ejemplo del desarrollo de integración de Spring Boot con Spark y Cassandra System introducido por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!