
大数据平台选型有三种选择:1、使用云平台,优点是建设周期短、运维成本低,缺点费用贵、数据安全性;2、使用商业化的大数据平台,优点搭建部署方便、稳定性好,缺点是成本高、不够灵活;3、自己造轮子,优点就是根据需要定制部署,缺点周期长、成本高、坑特别多。
公司高层视数据如命,使用公有云平台是不可能的,大数据团队刚建成、预算不足,只能走向自主建设这条艰辛路。经历了大数据平台从有到无,功能越来越完善,稳定性和性能逐步提升,支持的业务越来越多。体会到自主建设一个生产级别的大数据平台,要踩了很多坑。所以记录一下大数据平台的技术演进历程,一来用于总结经验,二来也给其他正准备自己建设大数据平台的同学提供参考。
数据源,支持多种数据源,可以实现对公司的各个业务线的数据进行接入整合;
接入层,业务mysql定时同步和基于canel的实时同步结合,日志数据实时接入,互联网海量数据实时爬取清洗;
存储层,hdfs分布式文件系统实现海量数据存储,hbase提供数据实时读写,kafka消息队列实现数据缓存;
计算层,离线计算引擎用于数据挖掘和机器学习模型训练,实时计算引擎实现日志的实时分析和处理,深度学习引擎用于人工智能算法的运行;
分析层,实时SQL用于探索性分析和多维分析,机器学习算法用于商机的分类和推荐,NLP分析实现自然语言处理,深度学习算法用于图片水印和违禁图片识别;
数据服务层,对外提供数据服务;
数据应用层,个性推荐为PC端和单品通app端提供推荐服务;用户画像可以抽象出标签化的用户模型是提升会员质量的基础;用户行为分析对用户访问网站的规律进行分析可用于智能推荐;统计报表对数据进行挖掘分析,提供报表作为决策的依据,实现商业智能;运营支持对运营部门的需求提供大数据支持;数据大屏方便用户直观的了解运营情况,包括实时交易图、统计大屏和基地大屏。
需要采集的数据有三类:1、业务数据,主要存储是关系型数据;2、日志类,主要存储是文件;3、爬虫抓取类,主要存储是文件。
公司业务使用的mysql,最初业务数据同步使用sqoop定时同步,主要问题有三个:数据同步有延时,同步后的数据有串行、对业务库压力大。所以想找到更好替代方案,这个时候confluent 的kafka connect 进入我们的视野,看完官网的介绍和原理,设计理念特别好,支持各种数据源,完全满足我们的需求,经过部署测试,稳定性太差,根本无法用到生产环境。最后又把目光又回到了sqoop上,利用sqoop的job实现增量同步,同时对并行度进行优化基本可以满足要求。对业务压力大的问题并没有解决,考虑专门创建一个mysql备库用于我们同步数据,这时候闪现了一个想法可以考虑直接读取mysql的binlog日志进行同步,先在github上找找有没有开源的轮子,在万能的github上找到了canal。计算平台 推荐最后的方案就是通过sqoop+canal的方案,sqoop用于第一次全量同步,canal用于增量同步。
可选的方案有三个:flume、logstash、filebeat。最后的选择的是filebeat直接接入kafka,没有使用logstash原因是对服务器压力太大,flume更侧重数据传输。
爬虫抓取类
hdfs、hive、hbase启用安全策略,开发了专门的元数据管理平台,对数据进行管理,包括数据所属人,数据的用途。

引用账号和队列,每个产品线对应一个用户组,每个用户对应一个队列,针对队列设置配额。
性能优化
1、?? 系统盘和数据盘分开。避免使用一个磁盘的两个分区作为系统盘和数据盘,这样可以避免数据盘负载太高导致系统变卡。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-62842-1.html
所以眼不见并不代表没有
应该是他儿子去和人