网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

SpringBoot与Spark、Cassandra系统集成开发的示例分析

这篇文章将为大家详细讲解有关Spring Boot与Spark、Cassandra系统集成开发的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

公司主营业务:成都网站设计、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出大安免费做网站回馈大家。

1.前置条件

  • 安装Spark(本文使用Spark-1.5.1,如安装目录为/opt/spark)

  • 安装Cassandra(3.0+)

创建keyspace

CREATE KEYSPACE hfcb WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 };

创建table

CREATE TABLE person (
 id text PRIMARY KEY,
 first_name text,
 last_name text
);

插入测试数据

insert into person (id,first_name,last_name) values('1','wang','yunfei');
insert into person (id,first_name,last_name) values('2','peng','chao');
insert into person (id,first_name,last_name) values('3','li','jian');
insert into person (id,first_name,last_name) values('4','zhang','jie');
insert into person (id,first_name,last_name) values('5','liang','wei');

2.spark-cassandra-connector安装

让Spark-1.5.1能够使用Cassandra作为数据存储,需要加上下面jar包的依赖(示例将包放置于 /opt/spark/managed-lib/ 目录,可任意):

cassandra-clientutil-3.0.2.jar
cassandra-driver-core-3.1.4.jar
guava-16.0.1.jar
cassandra-thrift-3.0.2.jar 
joda-convert-1.2.jar
joda-time-2.9.9.jar
libthrift-0.9.1.jar
spark-cassandra-connector_2.10-1.5.1.jar

在 /opt/spark/conf 目录下,新建 spark-env.sh 文件,输入下面内容

SPARK_CLASSPATH=/opt/spark/managed-lib/*

3.Spring Boot应用开发

添加 spark-cassandra-connector 和 spark 依赖


   com.datastax.spark
   spark-cassandra-connector_2.10
   1.5.1
  
  
   org.apache.spark
   spark-core_2.10
   1.5.1
  
  
   org.apache.spark
   spark-sql_2.10
   1.5.1
  

在 application.yml 中配置 spark 与 cassandra 路径

spark.master: spark://master:7077
cassandra.host: 192.168.1.140
cassandra.keyspace: hfcb

此处特别说明 spark://master:7077 是域名形式而不是ip地址,可修改本地 hosts 文件将 master 与 ip 地址映射。

配置 SparkContext 和 CassandraSQLContext

@Configuration
public class SparkCassandraConfig {
 @Value("${spark.master}")
 String sparkMasterUrl;
 @Value("${cassandra.host}")
 String cassandraHost;
 @Value("${cassandra.keyspace}")
 String cassandraKeyspace;
 @Bean
 public JavaSparkContext javaSparkContext(){
  SparkConf conf = new SparkConf(true)
    .set("spark.cassandra.connection.host", cassandraHost)
//    .set("spark.cassandra.auth.username", "cassandra")
//    .set("spark.cassandra.auth.password", "cassandra")
    .set("spark.submit.deployMode", "client");
  JavaSparkContext context = new JavaSparkContext(sparkMasterUrl, "SparkDemo", conf);
  return context;
 }
 @Bean
 public CassandraSQLContext sqlContext(){
  CassandraSQLContext cassandraSQLContext = new CassandraSQLContext(javaSparkContext().sc());
  cassandraSQLContext.setKeyspace(cassandraKeyspace);
  return cassandraSQLContext;
 }
 }

简单调用

@Repository
public class PersonRepository {
 @Autowired
 CassandraSQLContext cassandraSQLContext;
 public Long countPerson(){
  DataFrame people = cassandraSQLContext.sql("select * from person order by id");
  return people.count();
 }
}

启动即可如常规Spring Boot程序一样执行。

关于“Spring Boot与Spark、Cassandra系统集成开发的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


标题名称:SpringBoot与Spark、Cassandra系统集成开发的示例分析
本文链接:http://bjjierui.cn/article/jigsis.html

其他资讯