《当MongoDB遇见Spark》要点:
本文介绍了当MongoDB遇见Spark,希望对您有用。如果有疑问,可以联系我们。
相关主题:非关系型数据库
适宜读者人群
正在使用Mongodb的开发者
传统Spark生态系统 和 MongoDB在Spark生态的角色
传统Spark生态系统
Spark生态系统
那么Mongodb作为一个database, 可以担任什么样的角色呢? 就是数据存储这部分, 也就是图中的黑色圈圈HDFS的部分, 如下图
用MongoDB替换HDFS后的Spark生态系统
Spark+Mongodb生态系统
为什么要用MongoDB替换HDFS
存储方式上, HDFS以文件为单位,每个文件64MB~128MB不等, 而MongoDB作为文档数据库则表现得更加细颗粒化
MongoDB支持HDFS所没有的索引的概念, 所以在读取上更加快
MongoDB支持的增删改功能比HDFS更加易于修改写入后的数据
HDFS的响应级别为分钟, 而MongoDB通常是毫秒级别
如果现有数据库已经是MongoDB的话, 那就不用再转存一份到HDFS上了
可以利用MongoDB强大的Aggregate做数据的筛选或预处理
MongoDB Spark Connector介绍
支持读取和写入,即可以将计算后的结果写入MongoDB
将查询拆分为n个子任务, 如Connector会将一次match,拆分为多个子任务交给spark来处理, 减少数据的全量读取
MongoDB Spark 示例代码
计算用类型Type=1的message字符数并按userid进行分组
开发Maven dependency配置
这里用的是mongo-spark-connector_2.11 的2.0.0版本和spark的spark-core_2.11的2.0.2版本
<dependency>
示例代码
import com.mongodb.spark._ import org.apache.spark.{SparkConf, SparkContext} import org.bson._ val conf = new SparkConf()
维易PHP培训学院每天发布《当MongoDB遇见Spark》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。