博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Spark和MemSQL Spark连接器运行实时应用
阅读量:5977 次
发布时间:2019-06-20

本文共 1540 字,大约阅读时间需要 5 分钟。

  hot3.png

  Apache 是目前非常强大的分布式计算框架。其简单易懂的计算框架使得我们很容易理解。虽然是在操作大数据集上很有优势,但是它仍然需要将数据持久化存储,HDFS是最通用的选择,和Spark结合使用,因为它基于磁盘的特点,导致在实时应用程序中会影响性能(比如在Spark Streaming计算中)。而且Spark内置就不支持事务提交(commit transactions)。

  本文介绍的MemSQL 数据库号称是世界上最快的分布式内存数据库(The World's Fastest In-Memory Database)!它是由Eric Frenkiel(前Facebook员工)和Nikita Shamgunov(前微软SQL Server高级工程师)创建的一款基于内存的分布式关系数据库,它通过将数据存储在内存中,并将SQL语句预编译为C++而获得极速的执行效率。它兼容MySQL,且速度要比MySQL快30倍,能实现每秒150万次事务。

  最近在其官方发布的一个MemSQL Spark Connector可以很好地和Spark一起使用,使得Spark用户可以快速地读写数据库中的数据。MemSQL 天生就适合Spark,因为它可以高效地处理大量的读写,而Spark经常需要这样的操作,而且MemSQL可以提供大量的空间足以提供给Spark创建新的数据。

  MemSQL Spark Connector提供了所有Spark和MemSQL交互的各种接口,而且其中做了许多的优化措施,比如并行地从MemSQL读取数据;当 MemSQL和Spark运行在一个物理节点上,Spark直接将数据写入其中。MemSQL提供了两个最主要的组建:MemSQLRDD和saveTo。

  MemSQLRDD用于存储从MemSQL查询的数据集;而saveTo将Spark中的RDD数据写入到MemSQL表中。这两个接口和Spark内置的JDBC接口看起来很类似,而且使用方式也很类似(可以看这里)。来看看如何使用MemSQLRDD。我们使用从MemSQL读取表数据,并存储在MemSQLRDD中:

import com.memsql.spark.connector.rdd.MemSQLRDD...val rdd = new MemSQLRDD(    sc,    dbHost,    dbPort,    dbUser,    dbPassword,    dbName,    "SELECT * FROM iteblog",    (r: ResultSet) => { r.getString("test_column") })rdd.first()  // Contains the value of "test_column" for the first row

如果你想将RDD写入到,可以使用saveToMemsql函数:

import com.memsql.spark.connector._...val rdd = sc.parallelize(Array(Array("www", "iteblog"), Array("com", "qux")))rdd.saveToMemsql(dbHost, dbPort, dbUser, dbPassword,     dbName, outputTableName, insertBatchSize=1000)

 

本文翻译自: http://blog.memsql.com/memsql-spark-connector

/

转载于:https://my.oschina.net/data99/blog/685814

你可能感兴趣的文章
ruby动态new对象
查看>>
《JavaScript启示录》——导读
查看>>
如何让你的 Linux 系统干净整洁
查看>>
《JavaScript高效图形编程(修订版)》——6.10 用画布sprites取代DHTMLsprite
查看>>
Linux中grep命令的12个实践例子
查看>>
使用Docker Compose部署基于Sentinel的高可用Redis集群
查看>>
Mybatis 3学习笔记(一)
查看>>
MySQL · 引擎特性 · InnoDB COUNT(*) 优化(?)
查看>>
Guice系列之用户指南(十)
查看>>
树与森林的存储、遍历和树与森林的转换
查看>>
mongodb的读写分离
查看>>
Android自定义属性
查看>>
介绍几个好用的android自定义控件
查看>>
阿里云服务器 Windows连接不成功 提示“你的凭证不工作” 解决方法
查看>>
NVIDIA Jetson TK1学习与开发(八):图文详解OpenGL在Jetson TK1上的安装和使用
查看>>
【性能优化】直方图
查看>>
Visual C#之核心语言
查看>>
[J2ME]Nokia播放音乐时发生MediaException的解决办法
查看>>
【转】CSS 与 HTML5 响应式图片
查看>>
代码重构(五):继承关系重构规则
查看>>