大数据在近几年受到越来越多的关注,如何将大数据快速落地于生产实践,产生相应的经济价值一直是一个值得关注的问题。当谈到大数据,人们首先想到的是,是不是的linux,是不是的学习java,这给大数据技术的应用带来一定的困难。如果,有一款通用的大数据平台,只需要针对具体的业务系统修改数据库和算法即可快速使用,那就会加速大数据技术的普及。而且很多的爱好者,均有兴趣开发一套大数据分析平台,那么对于初学者如何开发一套简易的数据分析平台呢?
首先,通过分析网上大量的大数据平台框架,可以对其进行简单的抽象,都包含数据采集层,存储层,数据分析层和业务展现层,网上找的大数据系统架构都差不多,如下所示:(侵删)
也就是说,如果想开发一套大数据系统,就得包含这些“层”,通过对这些“层”所包含的技术进行分解,并总结就可以得到开发大数据系统的技术体系。
数据采集层
数据的获得是大数据的基础,如果有现成的数据库,需要存入HDFS中,那么就需要用到Sqoop,如果是需要对系统的日志进行收集,则需要使用Flume与Kafka,如果是来此一些传感器的数据,则需要使用一些通信协议,将数据传输至数据库中。建议熟悉使用MYSQL
存储层
存储的话需要掌握的是HDFS的几条命令,还有Hbase,hive的安装与使用,数据的存储方式则是一个需要重点研究的对象,因为数据可能具有多源异构特性,时间差异。存储的时候则需要考虑需要用何种方式对其存储,个人觉得基于元数据的存储数个不错的选择,看项目特性吧,有业务针对性的解决问题最重要。
数据分析层
对于一个简单的数据分析平台,分析是关键的一步,可以使用Spark Sql ,进行数据的抽取与统计,同时对于建模分析来说,可以使用Spark的mllib.当然还有很多的机器学习库可以使用
业务展现层
业务展现层,我认为是产品沟通用户的关键一步,因此,需要搭建一个用于交互的服务器。搭建这个服务器的话一般采用的是C/S架构,也就是传统的web开发,如果用java做,那么就会用到传说中的三大框架,如果用python做的话,那么flask和Django是个不错的选择。搭建好服务器之后,显示界面就需要进行考虑,首先需要掌握的就是基本的HTML,CSS,js知识,了解如何搭建一个页面,当然,现在很多的开源框架可供我们使用,仅需要根据需要进行百度就可以找到答案。
总结下学习的顺序
做大数据首先的学会搭建大数据平台,将多台计算机组成一个集群,因此
1.集群搭建(HADOOP,SPARK及相关开发工具的搭建)
2.熟悉大数据生态系统的相关操作组件,并从wordcount开始学习大数据
3.了解相应的java开发和scala基础语言
4.联系sparksql的写法,以及熟悉mllib的示例程序
5.对需要解决的业务问题进行详细了解,并制定对应的交互措施
6.学习三大框架或者是一种服务器,建议是flask(简单,快速)
7.根据设计的需要编写对应的静态页面(html,css,js)
8.对于可视化部分(D3.js,Echart..),需要制定相应的协议,统一格式
9系统的调试
10对系统的扩展
总结
开发数据分析平台是一个很有意思的事情,需要解决各种问题。欢迎coder进行交流