• MemSQL 取代 HDFS 与 Spark 结合,性能大幅提升


    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://blog.memsql.com/memsql-sparkconnector/

    转载自过往记忆(http://www.iteblog.com/)
    本文链接地址: 《使用Spark和MemSQL Spark连接器运行实时应用》(http://www.iteblog.com/archives/1327)

    注:转载文章均来自于公开网络,仅供学习使用,不会用于任何商业用途,如果侵犯到原作者的权益,请您与我们联系删除或者授权事宜,联系邮箱:contact@dataunion.org。转载数盟网站文章请注明原文章作者,否则产生的任何版权纠纷与数盟无关。

     

     
  • 相关阅读:
    利用 XNA 实现 Windows Phone 7 上的电流效果【转载】
    windowsphone 程序员开发工具【http://mobile.csdn.net/a/20120610/2806537.html 转载】
    windows phone xna 3d开发
    关于Windows7升级到Windows8喇叭出现红色叉号的问题
    iphone 学习笔记
    安装android开发环境
    关于编译android程序,期待模拟器,中文路径的问题【转载】
    html css develope iphone application
    windows phone 触控手势
    Iphone 基础教程
  • 原文地址:https://www.cnblogs.com/donaldlee2008/p/5568889.html
Copyright © 2020-2023  润新知