spark-sql导入大批量数据

来源:7-4 -目标

weibo_飞的猪头_0

2018-05-13

老师您好, 现在mongodb存储大量的冷数据, 平时很少用到, 硬盘占用500G左右, 索引(订票日期)就需要占用13G的内存, 而且还在不断增加。

目前, 个人觉得使用mongodb存储这类数据比较昂贵,考虑将这些数据以订票日期作为分区使用列式存储到hdfs上, 在需要查询的时候使用sqark-sql将其取出。现在有2个问题

  1. 如何进行数据迁移,可否使用spark-packages网站上mongodb的外部数据源读取成dateframe, 然后回写到hdfs。或者将mongodb数据导出成json文件(不确定并行度),然后sqark-sql读取回写。个人感觉第一种还要好一些, 可以使用sqark中spark.default.parallelism的并行粒度,可以并行导出,像这种大量数据转换的问题, 老师是怎么处理的。

  2. 数据迁移到hdfs之后, 相比于以前节省了内存。同时列式的存储,分区的设置, 可以读取更少的数据, 同时可以利用sqark进行多任务并行处理, 理论时候在查询性能上比以前更好或者不相上下.

写回答

1回答

Michael_PK

2018-05-14

首先:你的这个做法应该是可行的。

对于冷数据来说,一般都是要定期备份走的,不会长期放在集群上的。

spark对接mongodb,可以直接使用packages里面的处理是没有问题的。

迁移到hdfs之后,可以采用列式存储+压缩的方式来提升各方面的性能

0
1
weibo_飞的猪头_0
非常感谢!
2018-05-14
共1条回复

以慕课网日志分析为例 进入大数据Spark SQL的世界

快速转型大数据:Hadoop,Hive,SparkSQL步步为赢

1644 学习 · 1129 问题

查看课程