技术选型调研
- 大方向任务
- 分布式平台
- 选出几个可行的方案
- 分析优缺点
- 任务细分:
- 数据源存储的问题
- 支持分布式的深度学习组件
- 业内端到端的解决方案有哪些——可借鉴的架构方案
方案路线
- hdfs -> mapreduce -> hive(on spark/Tez) -> 提取小批量数据 -> 预建模预分析:sklearn/Tensorflow
- hdfs -> yarn -> spark -> spark mllib/TensorFlowonSpark/BigDL
数据存储
分布式文件系统–HDFS
分布式关系型数据库–Hive
优点:
- 将sql转化为MapReduce,适用于离线批处理环境
- Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合
- Hive 优势在于处理大数据
- Hive 支持用户自定义函数,用户可以根据自己的需求来实现自己的函数
缺点:
- 基于MapReduce,速度慢
- Hive调优比较困难,粒度较粗
- 迭代式算法无法表达
- 由于 MapReduce 数据处理流程的限制,效率更高的算法却无法实现
分布式非关系型数据库–HBase
优点:
- 容量大:Hbase单表可以有百亿行、百万列,数据矩阵横向和纵向两个维度所支持的数据量级都非常具有弹性
- 列存储:其数据在表中是按照某列存储的,这样在查询只需要少数几个字段的时候,能大大减少读取的数量,可以动态增加列
- 高可用,依赖于Zookeeper
- 写入速度快,适用于读少写多的场景
- 稀疏性,为空的列并不占用存储空间,表可以设计的非常稀疏。不需要null填充
缺点:
- 不能支持条件查询,只支持按