บทความนี้แสดงให้เห็นถึงตัวอย่างของการใช้ Spark เป็นเครื่องมือวิเคราะห์ Cassandra เป็นที่เก็บข้อมูลและใช้ Spring Boot เพื่อพัฒนาไดรเวอร์
1. ข้อกำหนดเบื้องต้น
สร้างคีย์สเปซ
สร้าง keyspace hfcb ด้วยการจำลอง = {'class': 'simplestrategy', 'การจำลอง _factor': 3};สร้างตาราง
สร้าง Table Person (คีย์หลักข้อความ ID, ข้อความแรก _name, ข้อความ last_name);
แทรกข้อมูลทดสอบ
แทรกเข้าไปในบุคคล (id, first_name, last_name) ค่า ('1', 'wang', 'yunfei'); แทรกลงในบุคคล (id, first_name, last_name) ค่า ('2', 'peng', 'chao'); (id, first_name, last_name) ค่า ('4', 'จาง', 'jie'); แทรกลงในบุคคล (id, first_name, last_name) ค่า ('5', 'liang', 'wei');2. การติดตั้ง Spark-Cassandra-Connector
ในการเปิดใช้งาน Spark-1.5.1 เพื่อใช้ Cassandra เป็นที่เก็บข้อมูลคุณต้องเพิ่มการพึ่งพาแพ็คเกจ JAR ต่อไปนี้ (ตัวอย่างในการวางแพ็คเกจใน/opt/spark/managed-lib/directory ซึ่งสามารถกำหนดได้):
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.
ในไดเรกทอรี/opt/spark/conf ให้สร้างไฟล์ Spark-env.sh ใหม่และป้อนเนื้อหาต่อไปนี้
spark_classpath =/opt/spark/managed-lib/*
3. การพัฒนาแอปพลิเคชันสปริงบูต
เพิ่ม Spark-cassandra-connector และ Spark Dependencies
<Ependency> <sderctId> com.datastax.spark </groupId> <ratifactid> Spark-Cassandra-Connector_2.10 </artifactid> <version> 1.5.1 </version> </serverency> <dependency> <ratiD> org.apache.spark </Groupid> </perctency> <predency> <roupId> org.apache.spark </groupId> <ratifactid> Spark-SQL_2.10 </ArtifactId> <Sersion> 1.5.1 </Sident> </predency> </dermentency>
กำหนดค่าเส้นทาง Spark และ Cassandra ใน application.yml
Spark.Master: Spark: // Master: 7077Cassandra.host: 192.168.1.140Cassandra.keyspace: HFCB
ที่นี่เราระบุว่า Spark: // Master: 7077 เป็นชื่อโดเมนมากกว่าที่อยู่ IP คุณสามารถแก้ไขไฟล์โฮสต์โลคัลเป็นแผนที่หลักและที่อยู่ IP
การกำหนดค่า SparkContext และ CassandrasqlContext
@ConfigurationPublic คลาส sparkcassandraconfig {@value ("$ {spark.master}") สตริง Sparkmasterurl; @Value ("$ {cassandra.host}") สตริง cassandrahost; @Value ("$ {cassandra.keyspace}") สตริง CassandRakeyspace; @Bean สาธารณะ javasparkContext javasparkContext () {SparkConf conf = ใหม่ SparkConf (จริง) .set ("Spark.cassandra.connection.host", Cassandrahost) // .set ("Spark.cassandra.auth.auth.auth.auth.a .set ("Spark.submit.deployMode", "ไคลเอนต์"); javasparkContext context = new JavasparkContext (SparkMasterUrl, "SparkDemo", conf); บริบทกลับ; } @Bean สาธารณะ cassandrasqlContext sqlContext () {cassandrasqlcontext cassandrasqlcontext = ใหม่ cassandrasqlcontext (javasparkcontext (). sc ()); cassandrasqlcontext.setkeyspace (CassandRakeSpace); ส่งคืน cassandrasqlcontext; -โทรง่าย
@RepositoryPublic Class PersonRepository {@autoWired CassandrasqlContext CassandrasqlContext; Public Long Countperson () {dataFrame people = cassandrasqlcontext.sql ("เลือก * จากคำสั่งซื้อบุคคลโดย ID"); คืนผู้คนนับ (); -เริ่มต้นและดำเนินการเหมือนโปรแกรมการบูตสปริงปกติ
ที่อยู่ซอร์สโค้ด: https://github.com/wiselyman/spring-spark-cassandra.git
สรุป
ข้างต้นเป็นตัวอย่างของการพัฒนาการรวมของสปริงบูตด้วยระบบ Spark และ Cassandra ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!