MemSQL 取代 HDFS 与 Spark 结合,性能大幅提升
来源:互联网 发布:淘宝能发布多少个宝贝 编辑:程序博客网 时间:2024/06/14 19:57
Apache Spark是目前非常强大的分布式计算框架。其简单易懂的计算框架使得我们很容易理解。虽然Spark是在操作大数据集上很有优势,但是它仍然需要将数据持久化存储,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和saveToMemsql。
MemSQLRDD用于存储从MemSQL查询的数据集;而saveToMemsql将Spark中的RDD数据写入到MemSQL表中。这两个接口和Spark内置的JDBC接口看起来很类似,而且使用方式也很类似(可以看这里《Spark与Mysql(JdbcRDD)整合开发》)。来看看如何使用MemSQLRDD。我们使用从MemSQL读取表数据,并存储在MemSQLRDD中:
01
import
com.memsql.spark.connector.rdd.MemSQLRDD
02
03
...
04
05
val
rdd
=
new
MemSQLRDD(
06
sc,
07
dbHost,
08
dbPort,
09
dbUser,
10
dbPassword,
11
dbName,
12
"SELECT * FROM iteblog"
,
13
(r
:
ResultSet)
=
> { r.getString(
"test_column"
) })
14
rdd.first()
// Contains the value of "test_column" for the first row
如果你想将RDD写入到Memsql,可以使用saveToMemsql函数:
1
import
com.memsql.spark.connector.
_
2
3
...
4
5
val
rdd
=
sc.parallelize(Array(Array(
"www"
,
"iteblog"
), Array(
"com"
,
"qux"
)))
6
rdd.saveToMemsql(dbHost, dbPort, dbUser, dbPassword,
7
dbName, outputTableName, insertBatchSize
=
1000
)
从上面的例子可以看出,使用Memsql和Spark结合是多么的容易。
转载自过往记忆(http://www.iteblog.com/)
本文链接地址: 《使用Spark和MemSQL Spark连接器运行实时应用》(http://www.iteblog.com/archives/1327)
- MemSQL 取代 HDFS 与 Spark 结合,性能大幅提升
- Java SE 6更新,性能大幅提升
- apache/php 性能大幅提升关键参数
- SQLServer性能优化之 nolock,大幅提升数据库查询性能
- SQLServer性能优化之 nolock,大幅提升数据库查询性能
- 通过log4j日志异步化大幅提升系统性能
- mahoutLucene 2.3:大幅提升索引性能,新增机器学习项目
- FireFox 继续优化 JS处理性能再度大幅提升
- 猎豹浏览器发布2.0版,性能大幅提升
- log4j日志异步化大幅提升系统性能
- 优化临时表,使数据库性能大幅提升
- 发布软件更新 大幅提升Form1+ 3D打印机性能
- iPhone 6s GPU性能为何能够有大幅提升
- gzip压缩tomcat服务器响应包,大幅提升web性能
- gzip压缩tomcat服务器响应包,大幅提升web性能
- log4j日志异步化大幅提升系统性能
- 你又可以大幅提升项目性能啦!
- Visual Studio 15 Preview 5 发布 大幅提升性能
- 框架集
- Python之FTP多线程下载文件之多线程分块下载文件
- 每日学习记录
- jquery的datatables,第一次加载没问题,再次加载datatables弹窗报错:cannot reinitialise datatable
- 最短路径 Dijkstra算法 HDOJ_2544
- MemSQL 取代 HDFS 与 Spark 结合,性能大幅提升
- DOM对象篇
- Error installing libwebp
- OpenGL的几何变换
- F检验 Ftes算法t我的见解
- 大数加法
- Android studio插件大全
- 条件随机场(CRF)及CRF++安装使用
- 使用Jquery操作DOM