初入大数据领域或者转行进入大数据领域的朋友,需要了解的第一件事不是说各种组件框架生态相关的东西,也不是各种编程语言基础。
而是,了解清楚以下几个问题:
1 大数据领域到底包含了哪些东西,解决了哪些问题?
2 自己的实际基础是什么,如何结合自己的基础以及兴趣爱好,在整个大数据领域链路 中,找到最好的切入点。
只有解决了上面两个问题,才能给自己最精确的定位,找准方向深入下去。
推荐一个大数据学习群 119599574每天晚上20:10都有一节【免费的】大数据直播课程,专注大数据分析方法,大数据编程,大数据仓库,大数据案例,人工智能,数据挖掘都是纯干货分享,
第一个问题,大数据领域的范围。
现在一说起大数据,简单起来就是一个词,但其实这个方向已经可以形成一个技术领域了,包含了方方面面的技术点,也提供了各种不同的技术岗位。所以,不同的岗位,对应的需求,工作内容都是不同的。
我们可以根据数据从下到上,从无到有,到产生价值整个数据业务流程来拆解,并且与此同时,来看看每个环节我们需要的技术储备以及能做的事有哪些。
数据的几大基本业务流程:
收集 -> 传输 -> 转换/清洗 ->存储 -> 再加工 -> 挖掘/统计 -> 上层应用输出
总的来说,可以分以下几个大块。
第一环:数据的收集
在收集阶段,我们来看看数据主要有哪几种存在方式:
1 第三方开放数据集
2 业务数据
3 服务日志
4 行为上报数据
首先针对于第三方开放数据,目前爬取第三方开放数据的形式已经逐渐被认可,并且将会越来越多的人以及企业从互联网开放数据集中获取原始数据。
所以,针对于开放数据的获取,爬虫已经可以单独形成一个体系了,包括不同的爬虫框架,以及近年来对于分布式爬虫的技术需求等,在语言方面主要还是python以及java为主,辅助其他相关脚本知识。
如果数据是业务数据,那么通常在传统的路子中,业务数据一般存储在传统的数据库中,那么,对于传统数据库相关的技术知识不可避免的需要有所了解,最起码简单的数据库操作得会吧。
其次,我们需要对数据进行统一化处理,又不可避免的涉及到数据的迁移,即从传统数据存储介质中迁移到诸如hadoop生态中,那么涉及的迁移框架诸如sqoop之类的,又是不能不懂一些。
在语言以及基础要求上,对SQL相关的知识需要补充,以及linux操作,简单的python需要掌握。
最后,如果是数据上报的形式,你需要对整个数据上报的流程熟悉,怎么进行埋点、怎么收集上报的数据,上报过来怎么进行传输接受落地,这里就不多说,最终这种上报过来的数据反倒相对规整。
再来看第二环:数据的传输
数据的传输到底在什么时候会涉及到呢?
诸如上面说到的数据上报,在大数据模式下,通常上报过来的数据我们都不会马上进行落地的,因为涉及到不同部分其效率不一样,在峰值波动的情况下,直接落地十有八九都会导致系统宕机。
所以,数据的传输在大数据领域中有着不可替代的左右,会出现在各种系统耦合之间,一方面用作数据的传输,另一方面用作数据的缓冲、系统解耦。
在hadoop生态中,最有名的莫过于kafka与flume的组合搭配了,收集数据,并进行数据传输,此外还有不少类似的消息队列存在,诸如ActiveMQ、阿里的RocketMQ等等。
第三环:数据的存储
生态中最最核心的存储组件莫过于HDFS了,这是支撑hadoop能够做大批量数据处理的基础支撑,便捷而强悍的横向扩展能力。
除此之外,还有各种基于此之上不同形式的数据存储方式,诸如hive、HBase、甚至ES、Solr勉强都算,以及不可忽略的传统类型的SQL存储方式。
我们需要理解的是,不同的存储方式应对于实际的应用场景是不同的,HDFS作为最基础的分布式文件系统,我们就不多说。
诸如,Hive其更作用更多用于类传统式的SQL查询操作,其对于效应效率要求并不高,但对于数据规模的支撑性良好;而HBase则更偏向于即席查询,要求有更高的响应效率,但对于查询的复杂性支持上则相对较弱。
而我们说诸如ES、Solr都也勉强算是一种数据存储的组织方式,其实也是有一定道理的,因为他们本身也支持这种分布式的数据存储,只不过他们是为了应对于自己框架的检索需求而设计的数据存储组织。
此外,还有例如Redis,也算是目前大数据生态中不可缺少的数据存储方式之一,基于内容,应对于高效的数据存储与读取,在很多的实际应用场景中都用的到。
第四环:数据的再加工
其实这一层主要要说就是基于Hadoop的MR框架以及Spark,当然,也有其他的一些分布式数据处理框架。
大规模的数据清洗转换、再加工,都离不开分布式处理框架的支持。我们需要对杂乱的数据进行标准化、对残缺的数据进行补全、对原始的数据进行深度加工提取高级属性等等。
简单的,我们可以通过一些处理脚本来做,但针对于大规模的数据量级,我们依然需要依赖MR或者spark这种框架来处理。而针对于一些实时的场景,我们也不可避免的需要掌握诸如storm以及spark streaming之类的实时框架。所以,在这一环,我们不止需要了解不同的大数据处理框架,我们还需要在基于框架的基础上,做数据应用开发,进行数据处理。
最后一环:数据应用价值输出
前面我们做了很多事,包括数据的收集、传输、处理、存储等等,但这些都是手段,都不是我们的目的。
我们的目的是让数据产生价值,这也是企业做大数据的核心目的。
我们可以用数据来做什么:
1 基于统计分析、数据预测,做数据化运营、决策,提升效率、效果,这是最常见的应用场景。
2 做推荐,在主体之外产生衍生价值,提升单位价值转换。
3 画像体系,至于说画像能做什么,只要能做的准,能做的事可多了。
4 基于数据化、智能化的搜索。
5 实现业务的数据化、自动化、智能化。