1.大数据框架结构和全景概览; 2.企业大数据场景和不同数据源整合利用; 3.大数据学习与高薪求职;
一、大数据框架结构和全景概览
似乎一夜之间,大数据(Big Data)变成一个IT行业中最时髦的词汇。
大数据
首先,大数据并不是什么完完全全的新生事物,Google的搜索服务就是一个典型的大数据运用,根据每个用户的需求,Google实时从全球海量的数字资产(或数字垃圾)中快速找出最可能的答案,呈现给你,就是一个最典型的大数据服务。只不过过去这样规模的数据量处理和有商业价值的应用太少,在IT行业没有形成成型的概念。现在随着全球数字化、网络宽带化、互联网应用于各行各业,累积的数据量越来越大,越来越多企业、行业和国家发现,可以利用类似的技术更好地服务客户、发现新商业机会、扩大新市场以及提升效率,才逐步形成大数据这个概念。
理解大数据的两个例子:
1、 炒股。2011年好莱坞有部高智商电影《永无止境》,讲述一位落魄的作家库珀,服用了一种可以迅速提升智力的神奇蓝色药物,然后他将这种高智商用于炒股。那库珀是怎么炒股的呢?就是他能在短时间掌握无数公司资料和背景,也就是将世界上已经存在的海量数据(包括公司财报、电视新闻、近二三十年的报纸、互联网、小道消息等)挖掘出来,串联起来,甚至将Face Book、Twitter的海量社交数据挖掘出来,得到普通大众对某种股票的感情倾向,通过海量信息的挖掘、分析,使一切内幕都不再是内幕,使一切趋势都尽在眼前,结果在10天内他就赢得了200万美元,神奇的表现让身边的职业投资者目瞪口呆。这部电影简直是展现大数据魔力的教材性电影,推荐没有看过的IT人士看一看。当然说这个例子,不是鼓励大家去炒股,中国的股市还是坑太多,不建议大家盲目入股,成为踩坑的牺牲者。
2、 航班的晚点。大家知道中国的航班晚点非常多,相比之下美国航班准点情况好很多。那是因为中国比美国雾霾多,天气不好的天数多么?当然不是。这其中,美国航空管制机构一个好的做法发挥了积极的作用,说起来也非常简单,就是美国会定期公布每个航空公司、每一班航空过去一年的晚点率和平均晚点时间,这样客户在购买机票的时候就很自然会选择准点率高的航班,从而通过市场手段牵引各航空公司努力提升准点率。这个简单的方法比任何管理手段(如中国政府的宏观调控手段)都直接和有效。
从这些案例来看,大数据并不是很神奇的事情。在企业、行业和国家的管理中,通常只有效使用了不到20%的数据(甚至更少),如果把剩余80%沉睡的数据价值都激发起来,世界会变得怎么样呢?当然更美好更超出你的想象。
单个的数据并没有价值,但越来越多的数据累加,量变就会引起质变。然而数据再多,但如果被屏蔽或者没有被使用,也是没有价值的。因此我们需要把海量的数据整合起来、串联起来,从中挖掘出巨大的商业价值。大数据是互联网深入发展的下一波应用,是互联网发展的自然延伸。目前,可以说大数据的发展到了一个临界点,因此才成为IT行业中最热门的词汇之一。
下面说说大数据技术架构,提到大数据就不能不说Hadoop。当然大数据不是只有Hadoop,下面让我们具体了解下大数据的整体框架结构和全景概览。Hadoop是一个能够对大量数据进行分布式处理的软件框架。Hadoop原本来自于谷歌一款名为MapReduce的编程模型包。谷歌的MapReduce框架可以把一个应用程序分解为许多并行计算指令,跨大量的计算节点运行非常巨大的数据集。使用该框架的一个典型例子就是在网络数据上运行的搜索算法。Hadoop[3] 最初只与网页索引有关,迅速发展成为分析大数据的领先平台。
图1文件系统-数据管理-业务计算-分析工具
这个图从下往上看,一层一层剖析:
A 基础文件系统
所有集群服务器安装Linux的Ubuntu发行版本,文件默认基于Ext4和NFS。分布式文件管理采用HDFS/HADOOP框架,这是大数据系统的标配,不多介绍了。
B 数据管理
大数据源,就形式而言,主要是结构化和非结构化(以文本为主)两类。这里综合使用多种系统实现所有数据的管理和检索。
Cassandra:完成所有结构化大数据(基础源数据)的存储检索与运算支持。可轻松扩展到未来支持千亿规模的数据。相比常见的HBase方案,我们选择Cassandra是因其在可靠性(无中心结构)、社区更新支持以及与Spark配合方面都具有更具有优势,更适合HCR业务情况。
Postgre/Mysql:开源关系型数据库,存储中间统计结果数据和业务数据。虽然有了Cassandra,但数据体系中传统关系数据库仍然很重要:研究员分析所需的大量中间计算/统计结果更适合关系数据库存储,其多字段检索能力(这对Cassandra则很困难)对于多维分析十分重要。集群部署+分区的模式使得其轻松应对10亿级的数据。
Infobright: 结构化数据仓库方案,其数据压缩和聚合统计的功能很强。使用的免费社区版在百亿数据内性能不错,很适合结构化大数据下的多维统计分析与深入钻取场景。
Elastic Search:管理和检索所有非结构化数据(非结构化业务数据和互联网数据为主)。分布式架构对百亿级数据集合支持良好,易于管理使用,其他扩展资源(如Cassandra插件)也很丰富。
C 业务计算
业务计算是大数据技术体系的核心。包含了对所有业务逻辑计算/分析的支持。
这里面比较多,重点讲两个
分布式计算体系: 采用Spark(未使用Hadoop/MR)。相比后者,Spark更先进,轻量高效(尤其业务中存在大量机器学习处理时),代码开发快,对人员要求统一,这都是我们所关注的。而其子模块Spark Sql可快速实现对大数据的类sql检索与分析,比Hive具有更强性能和功能。相关的机器学习库MLib提供的机器学习算法在业务中大量用于挖掘处理,比Hadoop下的Mahout快很多。都有效支持了业务处理分析。
数据流支持工具:Kettle作为经典ETL工具,用于各类源数据引入时的快速ETL处理,可视化界面方便易用。而Kafka的数据订阅机制,统一满足了多个上层业务模型对主题数据流的共享需求。
Storm:流式计算框架,用于满足未来实时分析业务的需要,当前尚未有很多上线实用的例子。
D 分析工具
分析工具是HCR大数据技术体系的最上层,主要由各种工具组成,支持各级数据研究人员完成对大数据的快速探索。
大数据全景概览,看图不多说了。结合云的IAAS、 PAAS 、SAAS三层做了进一步的分解重构。
图2大数据全景平台
二、企业大数据场景和不同数据源整合利用
大数据问题的分析和解决通常很复杂。如果您花时间研究过大数据企业解决方案,那么您一定知道它真的不是一个简单的任务。为了简化各种大数据类型的复杂性,一般我们依据来源,对各种参数进行了分类,方便为任何大数据解决方案中涉及的各层和高级组件提供一个逻辑清晰的架构。
下面是一个平台化企业从数据源获取数据----清洗整合----数据分析处理----数据应用服务的整体结构图。
图3平台化企业
从左边红色一列,我们看到企业现在的数据源除了有内部来自生产、销售、服务、售后等结构化的数据外,还有内部非结构化包括社会化媒体和其他数据集,以及来自外部的丰富媒介产生的数据及日志信息等。那么面对不同应用场景如何整合不同的数据源呢?
图4元数据
如上图,可以得知:
首先是建立大数据的标准(对业务信息的数据、编码、属性进行标准定义),其次注意各异构数据之间按照一定的规范进行数据交换与集成,然后对于数据资源进行分级分权共享、发布,并将合规的数据对外开放和使用,同时维护核心数据的共享与统一,最后实现大数据变成企业资产的一部分将数据的应用价值变现。
不同数据源的收集和整合利用:
目前市面上存在很多数据收集系统,使用比较广泛的有sqoop、logstash、flume。sqoop一般用在从关系型数据库导数据到hdfs中;logstash一般结合elasticsearch和kibana一起使用;而使用最广泛而且功能最强大的是flume。flume是分布式的可靠的可用的系统,高效的从不同数据源收集聚合迁移大量数据到一个集中的数据存储,使用基于事务的数据传递方式来保证事件传递的可靠性。
我们结合一个移动业务的客户流失分析分析系统来说一下如何利用收集来的数据。
图5
图6
数据从接入系统进入kafka集群后,将分别进入实时处理的jstorm集群和离线处理的yarn和hdfs集群。
对于实时处理我们需要高稳定性和响应速度,我们选择了单独搭建jstorm集群来满足我们实时处理的需求。一方面,单独的jstorm集群更便于维护,减少了因为资源争用而造成的影响实时系统稳定性的问题;另一方面,jstorm也支持我们做任何时间粒度实时计算的需求。
对于离线计算平台,我们选择了yarn和hdfs,我们在yarn之上构建支持了不同数据计算引擎,包括spark、map-reduce和用于OLAP的kylin,通过组合这些不同的计算引擎来满足我们各方面数据处理的需求。
最后通过分析基于用户移动互联网访问行为的分析结果,形成详细的户兴趣爱好列表,可进行客户流失的行为分析,方便个性化推荐和即时、精准的广告投放,而不断减少客户的反感和抱怨,增加客户的粘度。
在这个章节的最后,总结一下自己对大数据的看法。
第一,大数据使企业真正有能力实现从以往的自我为中心改变为以客户为中心。企业是为客户而生,目的是为股东获得利润。只有服务好客户,才能获得利润。但过去,很多企业是没有能力做到以客户为中心的,原因就是相应客户的信息量不大,挖掘不够,系统也不支持。大数据的使用能够使对企业的经营对象从客户的粗略归纳(就是所谓提炼归纳的“客户群”)还原成一个个活生生的客户,这样经营就有针对性,对客户的服务就更好,投资效率就更高。
第二,大数据一定程度上将颠覆了企业的传统管理方式。现代企业的管理方式是从上至下,依赖于层层级级的组织和严格的流程,依赖信息的层层汇集、收敛来制定正确的决策,再通过决策在组织的传递与分解,以及流程的规范,确保决策得到贯彻,确保每一次经营活动都有质量保证,也确保一定程度上对风险的规避。这其实是一种有用而笨拙的方式。在大数据时代,我们可能重构企业的管理方式,通过大数据的分析与挖掘,大量的业务本身就可以自决策,不必要依靠膨大的组织和复杂的流程。
第三,大数据另外一个重大的作用是改变了商业逻辑,提供了从其他视角直达答案的可能性。现在人的思考或者是企业的决策,事实上都是一种逻辑的力量在主导起作用。我们去调研,去收集数据,去进行归纳总结,最后形成自己的推断和决策意见,这是一个观察、思考、推理、决策的商业逻辑过程。人和组织的逻辑形成是需要大量的学习、培训与实践,代价是非常巨大的。但是否这是唯一的道路呢?大数据给了我们其他的选择,就是利用数据的力量,直接获得答案。
第四,通过大数据,我们可能有全新的视角来发现新的商业机会和重构新的商业模式。我们现在看这个世界,比如分析家中食品腐败,主要就是依赖于我们的眼睛再加上我们的经验,但如果我们有一台显微镜,我们一下就看到坏细菌,那么分析起来完全就不一样了。大数据就是我们的显微镜,它可以让我们从全新视角来发现新的商业机会,并可能重构商业模型。
流失模型的建立取决于客户属性的质量(客户主数据,比如生日、性别、位置和收入)和客户的社交行为和使用偏好等。
首先选择flume作为不同数据源的采集系统。采用flume采集数据,同时入库到多个存储组件中,提供给计算层作为数据源。
三、大数据学习与高薪求职
个人技能:
熟悉LINUX 、shell、Python、C/C++、Java
熟悉相关算法和相关技术、常用的机器学习模型、自然语言处理、数据挖掘方法
爱学习爱思考要坚持要使出洪荒之力
高薪求职:
1、 经验很重要
当被问到公司招聘具备Hadoop技能的IT人员都有哪些要求时,HR回答,“经验是最重要的”。当你渴望找到一份与数据相关工作时,你也就迈进了大数据的就业市场――虽然你总有一天会积累起经验,但是此刻才最重要。假如你有必要的经验,那就要适当地展示出来。
2、 了解招聘中常用的术语
在简历、履历和其他求职文件中,一些专业词汇和术语往往能够吸引招聘人员和人事经理的眼球。举三个有代表性的例子:大规模设计和建造可扩展性分布式数据存储、系统和管道;实现xxxx节点的Hadoop集群;从零开始或者从底层开始构建。
3、 持续关注不断发展的行业环境
Hadoop在中国是一个相对年轻的技术,和整个大数据行业一样。因此,要想在大数据行业或者相关行业得到较好的发展,及时关注最新的行业趋势和变化特别重要。
坚持关注数据大会,比如51cto的WOT数据峰会和Hadoop技术大会。关注这些数据大会都是非常有利于了解行业前沿技术,关注最新的发展,明确个人的发展方向。
Q&A
1、湖南-小刘-Java:从事大数据工作的工资每月大概多少啊
孙老师:起步15K,高级的40k--50K每月。
2、安徽-梅轩-Python:老师问一下 我想找个机器学习的工作 但是没有工作经验 我还没毕业。。直接找这方面的工作有点难 我是不是应该先去其他的地方积累工作经验项目经验啥的?
孙老师:是的,需要参与一个完整的项目,积累经验就好办了。
安徽-梅轩-Python:第一次学了Python不要我,又学了机器学习算法,还不要我,又去熟悉了一些集群式分布式啥的。想用tensorflow框架发现自己电脑带不起来。
3、郑州-李赛 自己摸索,多实践算不算经验呀?毕竟个人不好搞到大量数据,少量数据没法做咯.
孙老师:也算,就是可能缺乏真实场景,遇到的问题不多。个人的大数据确实不多,如果你的微信朋友圈有5000人,每天管理挖掘这些信息也算个人大数据了。
4、广州-狄钦dQ-PHP:看了下前面4点关于大数据的观点,都是与企业商业运作有关,个人的话似乎联系不多,实现项目又要从何入手?
孙老师:先从Hadoop开始,理解其核心,然后再拓展到其他
5、湖南-小刘-Java:从事大数据对Python学习的版本有要求吗?大数据中Python是用2.x还是3.x的版本
孙老师:版本更新快,现在基本3.x的版本。TensorFlow是Google去年发布的机器学习平台,对机器配置要求要高些,建议笔记本选高配的
6、广州-狄钦dQ-PHP:什么学习建议或学习路线的吗?图1可以作为参考么?关于学习计划的制定。
孙老师:对的,这个图很全面了,先从LINUX打基础,再往上深入。
7、
北京-安卓-阳阳:打基础,得打多久?
广州-胖子-数据库:相学习好大数据,Java和数据库都要熟练,linux 和shell也要熟练,这四个都不是简单的懂就可以的,学习的越扎实,对后面越有好处。
8、安徽-梅轩-Python:大数据是不是也分好多具体的岗位呢?感觉大数据算IT里面门槛比较高的了。
广州-胖子-数据库:横着看,每一层都是一个行业或者岗位
广州-狄钦dQ-PHP:从那张图来看,没有几年的功夫都不能说会…感觉不是直招岗位,得在原来岗位摸爬滚打几年才有机会。
9、广州-yuliya 运营:我想问下底层数据一般如何获取?基于搜索的二次筛选。
孙老师:底层数据的获取可以有多种方式,比如网络嗅探和协议抓包、函数回调等办法都可以获取得到。
基于搜索的二次筛选:
通过搜索引擎的关键字进行第一次检索,然后再基于搜索结果以关键字为搜索条件进行二次搜索筛选,缩小范围,从而提高搜索精确度。当然也可以自己设计算法,实现多级嵌套搜索。