NO.1 学大数据如何零基础入门?
答:学习任何东西都一样,一开始就是一道坎,我很喜欢看书,特别是容易入门的书。对于大数据,我的具体研究方向是大规模数据的机器学习应用,所以首先要掌握以下基本概念。
*微积分(求导,极值,极限)
*线性代数(矩阵表示、矩阵计算、特征根、特征向量)
*概率论+统计(很多数据分析建模基于统计模型)、统计推断、随机过程
*线性规划+凸优化、非线性规划等
*数值计算、数值线代等
当然一开始只要有微积分、线代以及概率论基本上就可以入门机器学习,我强烈推荐几本书,这几本书不需要看完,只需要对其中重要知识点(求导、矩阵计算、条件概率)掌握后,当工具书使用即可,为后面学习机器学习以及大数据工具铺垫基础。{大数据时代},{深入浅出数据分析},{深入浅出统计学}
大数据工具
学习大数据最好的编程语言肯定是Java,Scala也可以。当时我给自己制定的计划如下,可参考一下。
初始大数据
学习内容:Hadoop分布式系统
学习目标:Hadoop、HDFS、MapReduce、Yarn
完成项目:电影票房实时统计、J2EE网站反爬虫
大数据数据库
学习内容:HIVE+HBase
学习目标:Hadoop、HDFS、MapReduce、HBase
完成项目:基于HIVE和HBase用户行为分析客户风险等级
实时数据采集处理
学习内容:实时数据采集处理
学习目标:flume、kafka、storm、数据可视化
完成项目:实时计算+可视化图形
Spark数据分析
学习内容:Spark数据分析
学习目标:Scala、Spark
完成项目:实时票房计算
机器学习课程
经过以上的各种磨练,你已经可以自己制定适合自己的学习计划。当然,对于机器学习的课程,我强烈推荐周志华教授的西瓜书《机器学习》,同时也看李航教授的《统计学习方法》,这两本书难度不高,但已经涵盖大多数工业应用场景,而且对国人来讲是很好的中文教材,非常值得一看。
学习这种事情,最好是十年前开始进行,其次是现在,永远不要觉得晚。
NO.2大数据主要用于哪些方面?
大数据的运用很广泛,尤其是现在各地云计算、大数据中心建立好以后,用大数据代替人工做出相应的判断,能更好的解决一些比较实际的问题,主要大家看得见的运用其实还是在医疗卫生,交通出行,金融社交等领域,下面是一些介绍:
一、电商行业
电商行业是最早利用大数据进行精准营销,它根据客户的消费习惯提前生产资料、物流管理等,有利于精细社会大生产。由于电商的数据较为集中,数据量足够大,数据种类较多,因此未来电商数据应用将会有更多的想象空间,包括预测流行趋势,消费趋势、地域消费特点、客户消费习惯、各种消费行为的相关度、消费热点、影响消费的重要因素等。
二、金融行业
大数据在金融行业应用范围是比较广的,它更多应用于交易,现在很多股权的交易都是利用大数据算法进行,这些算法现在越来越多的考虑了社交媒体和网站新闻来决定在未来几秒内是买出还是卖出。
三、医疗行业
医疗机构无论是病理报告、治愈方案还是药物报告等方面都是数据比较庞大行业,面对众多病毒、肿瘤细胞都处于不断进化的过程,诊断时会发现对疾病的确诊和治疗方案的确定是很困难的,而未来,我们可以借助大数据平台收集不通病例和治疗方案,以及病人的基本特征,可以建立针对疾病特点的数据库。
四、农牧渔
未来大数据应用到农牧渔领域,这样可以帮助农业降低菜贱伤农的概率,也可以精准预测天气变化,帮助农民做好自然灾害的预防工作,也能够提高单位种植面积的高产出;牧农也可以根据大数据分析安排放牧范围,有效利用农场,减少动物流失;渔民也可以利用大数据安排休渔期、定位捕鱼等,同时,也能减少人员损伤。
五、生物技术
基因技术是人类未来挑战疾病的重要武器,科学家可以借助大数据技术的应用,从而也会加快自身基因和其它动物基因的研究过程,这将是人类未来战胜疾病的重要武器之一,未来生物基因技术不但能够改良农作物,还能利用基因技术培养人类器官和消灭害虫等。
六、改善城市
大数据还被应用改善我们日常生活的城市。例如基于城市实时交通信息、利用社交网络和天气数据来优化最新的交通情况。目前很多城市都在进行大数据的分析和试点。
七、改善安全和执法
大数据现在已经广泛应用到安全执法的过程当中。想必大家都知道美国安全局利用大数据进行恐怖主义打击,甚至监控人们的日常生活。而企业则应用大数据技术进行防御网络攻击。警察应用大数据工具进行捕捉罪犯,信用卡公司应用大数据工具来槛车欺诈性交易。
在传统领域大数据同样将发挥巨大作用:帮助农业根据环境气候土壤作物状况进行超精细化耕作;在工业生产领域全盘把握供需平衡,挖掘创新增长点;交通领域实现智能辅助乃至无人驾驶,堵车与事故将成为历史;能源产业将实现精确预测及产量实时调控。
个人的生活数据将被实时采集上传,饮食、健康、出行、家居、医疗、购物、社交,大数据服务将被广泛运用并对用户生活质量产生革命性的提升,一切服务都将以个性化的方式为每一个“你”量身定制,为每一个行为提供基于历史数据与实时动态所产生的智能决策。
NO.3大数据与金融科技?
回答一:首先你的数学学得怎么样,如果数学好,又是工科出身,有数据思维,这个专业是很好的。因为数据已经逐渐成为经济发展的新引擎,如同过去一个世纪的石油天然气一样,会给经济发展提供源源不断的动力。任何工作都有压力,大数据和金融科技不属于直接编程的学科,主要还是数据处理。对数据的收集和分析能力是核心。如果有能力去这个专业,个人建议抓住机会。
回答二;金融科技2.0时代,有三大法宝,或者叫三驾马车——大数据,人工智能和区块链技术。我分别介绍一下:
1. 大数据主要来自物联网和互联网数据,使用方法是利用大数据刻画用户画像,分为静态的生活画像和动态的行为画像,找到目标客户群体。再利用大数据重塑征信体系,利用大数据征信甄别出低风险客户,最后再展开精准营销。
2. 人工智能主要在于利用机器学习来完成人脑力不所及的工作,比如在上千股票的所有历史中,找到跟你关注股票相近的一段K线走势,可以参见“优理宝”这个APP。
3. 区块链技术最牛B。比特币只是他的一个应用而已,最重要的在于实现“智能合约”,全网公开,全网监督,强制执行。
大数据只是金融科技中的一方面,建议多研究区块链技术,这个应用比AI更广。
NO.4Hadoop与Spark相比有存在优势的方面吗?
这里有三种不同角度看待的回答,我觉得比较好,就一起收集来了
回答一:Hadoop
Hadoop就是解决了大数据的可靠存储和处理。现在的Hadoop主要包含两个框架:
大规模存储系统HDFS:在由普通PC组成的集群上提供高可靠的文件存储,通过将块保存成多个副本的办法来解决服务器或硬盘坏掉的问题。以低功耗、高性能的方式储存数据,并且能优化大数据的种类和读取速度。
计算引擎YARN:可以承载任何数量的程序框架,原始的框架是MR,通过Mapper和Reducer的抽象提供一个编程模型,可以在一个或上百个PC组成的不可靠集群上并发的、分布式的处理大量数据集,而把并发、分布式和故障恢复等计算细节隐藏起来。
Hadoop的局限和不足
抽象层次低,需要手工编写代码来完成,使用上难以上手。
只提供两个操作,Map和Reduce,表达力欠缺。
一个Job只有Map和Reduce两个阶段(Phase),复杂的计算需要大量的Job完成,Job之间的依赖关系是由开发者自己管理的。
处理逻辑隐藏在代码细节中,没有整体逻辑
中间结果也放在HDFS文件系统中
ReduceTask需要等待所有MapTask都完成后才可以开始
时延高,只适用Batch数据处理,对于交互式数据处理,实时数据处理的支持不够
对于迭代式数据处理性能比较差
Spark
Apache Spark是一个新兴的大数据处理的引擎,主要特点是提供了一个集群的分布式内存抽象,以支持需要工作集的应用。
这个抽象就是RDD(Resilient Distributed Dataset),RDD就是一个不可变的带分区的记录集合,RDD也是Spark中的编程模型。Spark提供了RDD上的两类操作,转换和动作。转换是用来定义一个新的RDD,包括map, flatMap, filter, union, sample, join, groupByKey, cogroup,ReduceByKey, cros, sortByKey, mapValues等,动作是返回一个结果,包括collect, reduce,count, save, lookupKey。
在Spark中,所有RDD的转换都是是惰性求值的。RDD的转换操作会生成新的RDD,新的RDD的数据依赖于原来的RDD的数据,每个RDD又包含多个分区。那么一段程序实际上就构造了一个由相互依赖的多个RDD组成的有向无环图(DAG)。并通过在RDD上执行动作将这个有向无环图作为一个Job提交给Spark执行。
Spark对于有向无环图Job进行调度,确定阶段(Stage),分区(Partition),流水线(Pipeline),任务(Task)和缓存(Cache),进行优化,并在Spark集群上运行Job。RDD之间的依赖分为宽依赖(依赖多个分区)和窄依赖(只依赖一个分区),在确定阶段时,需要根据宽依赖划分阶段。根据分区划分任务。
Spark支持故障恢复的方式也不同,提供两种方式,Linage,通过数据的血缘关系,再执行一遍前面的处理,Checkpoint,将数据集存储到持久存储中。
Spark为迭代式数据处理提供更好的支持。每次迭代的数据可以保存在内存中,而不是写入文件。
Spark解决了Hadoop的那些不足
1、HadoopSpark抽象层次低,需要手工编写代码来完成,使用上难以上手=>基于RDD的抽象,实数据处理逻辑的代码非常简短。
2、只提供两个操作,Map和Reduce,表达力欠缺=>提供很多转换和动作,很多基本操作如Join,GroupBy已经在RDD转换和动作中实现。
3、一个Job只有Map和Reduce两个阶段(Phase),复杂的计算需要大量的Job完成,Job之间的依赖关系是由开发者自己管理的=>一个Job可以包含RDD的多个转换操作,在调度时可以生成多个阶段(Stage),而且如果多个map操作的RDD的分区不变,是可以放在同一个Task中进行。
4、处理逻辑隐藏在代码细节中,没有整体逻辑=>在Scala中,通过匿名函数和高阶函数,RDD的转换支持流式API,可以提供处理逻辑的整体视图。代码不包含具体操作的实现细节,逻辑更清晰。
5、中间结果也放在HDFS文件系统中=>中间结果放在内存中,内存放不下了会写入本地磁盘,而不是HDFS。
6、ReduceTask需要等待所有MapTask都完成后才可以开始=> 分区相同的转换构成流水线放在一个Task中运行,分区不同的转换需要Shuffle,被划分到不同的Stage中,需要等待前面的Stage完成后才可以开始。
回答二:
首先,我们要思考Hadoop为什么会流行起来?Hadoop之所以流行是因为它解决了互联网,移动互联网快速数据积累与原有传统数据分析方案无法适应的痛点。
我在《领域修炼方法-论软件架构设计的思想及其适应性》一文中曾论述过,随着信息技术的不断发展,很多解决软件架构设计的具体技术已经过时或者消亡,但是,软件架构设计的模式、思想是不会过时的。Hadoop作为解决大数据分析痛点的一种具体技术同样逃脱不了这一命运。Hadoop什么时候出现的?时间要追溯到2016年1月。Spark什么时候出现的?时间是2009年。显而易见,Spark是建立在Hadoop这一巨人的肩膀之上的开拓创新,其在解决Hadoop能够解决的问题同时,肯定还能够弥补Hadoop的不足。因此,从这一点上来说,Hadoop相比于Spark不存在优势。
Hadoop与Spark相比完全没有任何优势了吗?答案是否定的。这是由于互联网特别是移动互联网、物联网快速发展起来以后,数据规模成几何级的增长而且这一趋势还在持续,这一现实需求使得大数据分析仍处于上升期,因此Hadoop的发展同样处于上升期。既然Hadoop和Spark同处于上升期,那么作为首先出现的Hadoop就具有先发优势,其实际行业应用更广,体系发展的更快更完善,不足之处不断的有新的补充方案加入进来。这一点从Apache的顶级项目就可以看出来,Hadoop生态体系相关的顶级项目有近20个,而Spark相关的只有三四个。
企业的技术选型是以解决当前的业务痛点为前提的,因此,选择一个成熟完善的体系解决当前业务痛点,还是选择一个相对不够完善的方案,投入更多的资源?答案显而易见,这就是Hadoop相比于Spark的优势。
至于这一优势能否弥补Saprk架构能够解决更多数据分析场景的优势,在于企业当前端所面临的实际需求。其实大多数时候,两者相互配合是一种更完善的方案。
7、时延高,只适用Batch数据处理,对于交互式数据处理,实时数据处理的支持不够=>通过将流拆成小的batch提供Discretized Stream处理流数据。
回答三:
Hadoop和Spark均是大数据框架,都提供了一些执行常见大数据任务的工具。但确切地说,它们所执行的任务并不相同,彼此也并不排斥。
虽然在特定的情况下,Spark据称要比Hadoop快100倍,但它本身没有一个分布式存储系统。而分布式存储是如今许多大数据项目的基础。它可以将PB级的数据集存储在几乎无限数量的普通计算机的硬盘上,并提供了良好的可扩展性,只需要随着数据集的增大增加硬盘。
因此,Spark需要一个第三方的分布式存储。也正是因为这个原因,许多大数据项目都将Spark安装在Hadoop之上。这样,Spark的高级分析应用程序就可以使用存储在HDFS中的数据了。
与Hadoop相比,Spark真正的优势在于速度。Spark的大部分操作都是在内存中,而Hadoop的MapReduce系统会在每次操作之后将所有数据写回到物理存储介质上。这是为了确保在出现问题时能够完全恢复,但Spark的弹性分布式数据存储也能实现这一点。
另外,在高级数据处理(如实时流处理和机器学习)方面,Spark的功能要胜过Hadoop。在Bernard看来,这一点连同其速度优势是Spark越来越受欢迎的真正原因。实时处理意味着可以在数据捕获的瞬间将其提交给分析型应用程序,并立即获得反馈。在各种各样的大数据应用程序中,这种处理的用途越来越多,比如,零售商使用的推荐引擎、制造业中的工业机械性能监控。Spark平台的速度和流数据处理能力也非常适合机器学习算法。
这类算法可以自我学习和改进,直到找到问题的理想解决方案。这种技术是最先进制造系统(如预测零件何时损坏)和无人驾驶汽车的核心。Spark有自己的机器学习库MLib,而Hadoop系统则需要借助第三方机器学习库,如Apache Mahout。
实际上,虽然Spark和Hadoop存在一些功能上的重叠,但它们都不是商业产品,并不存在真正的竞争关系,而通过为这类免费系统提供技术支持赢利的公司往往同时提供两种服务。例如,Cloudera就既提供Spark服务也提供Hadoop服务,并会根据客户的需要提供最合适的建议。
Bernard认为,虽然Spark发展迅速,但它尚处于起步阶段,安全和技术支持基础设施方还不发达。在他看来,Spark在开源社区活跃度的上升,表明企业用户正在寻找已存储数据的创新用法。
NO.5 大数据Spark技术是否可以替代Hadoop?
Spark技术从之前和当前的技术路线上看不是为了替代Hadoop,更多的是作为Hadoop生态圈(广义的Hadoop)中的重要一员来存在和发展的。
首先我们知道Hadoop(狭义的Hadoop)有几个重点技术HDFS、MR(MapReduce), YARN。
这几个技术分别对应分布式文件系统(负责存储), 分布式计算框架(负责计算), 分布式资源调度框架(负责资源调度)。
我们再来看Spark的技术体系 ,主要分为以下:
- Spark Core :提供核心框架和通用API接口等,如RDD等基础数据结构;
- Spark SQL : 提供结构化数据处理的能力, 分布式的类SQL查询引擎;
- Streaming: 提供流式数据处理能力;
- MLLib: 提供分布式机器学习常用的算法包;
- GraphX : 提供图计算能力
从上面就可以看出,Spark主要是提供各种数据计算能力的(官方称之为全栈计算框架),本身并不过多涉足存储层和调度层(尽管它自身提供了一个调度器),它的设计是兼容流行的存储层和调度层。也就是说, Spark的存储层不仅可以对接Hadoop HDFS,也可以对接Amazon S2; 调度层不仅可以对接Hadoop YARN也可以对接(Apache Mesos)。
因此,我们可以说Spark更多的是补充Hadoop MR单一批处理计算能力, 而不是完全替代Hadoop的。
NO.6 Hadoop、spark、SaaS、PaaS、IaaS、云计算概念区分?
Hadoop & Spark
首先二者均不是属于产品类别,理解为生态系统或者也有人将其称为“大数据通用处理平台”也是可以的,这种称呼也更为准确
Hadoop是由Apache基金会所开发的分布式系统基础架构
Hadoop主要包括:
Hadoop分布式文件系统:一个分布式的、面向块的、不可更新的、高度伸缩性的、可运行在集群中普通硬盘上的文件系统
MapReduce框架:一个基本的在集群中一组标准硬件上执行的分布式计算框架
YARN :Hadoop生态集群中默认的资源管理器
Hive :构建在MapReduce框架之上的类SQL查询引擎
Hbase:基于HDFS的键值对存储系统为Hadoop提供了联机事务处理(OLTP)能力
Spark而言是专为大规模数据处理而设计的快速通用的计算引擎,实际上现阶段其还不够成熟
Spark主要包括:
Spark Core :用于通用分布式数据处理的引擎
Spark Sql :运行在Spark上的SQL查询语句支持一系列SQL函数和HiveQL
Spark Streaming:基于spark的微批处理引擎
MLlib:构建在spark之上的机器学习库
三剑客:IaaS 、PaaS、SaaS
其实就是云计算的三类分层服务:
基础设施在最下端:Infrastructure-as-a-Service(IaaS)
平台在中间:Platform-as-a-Service(PaaS)
软件在顶端:Software-as-a-Service(SaaS)
IaaS :Infrastructure as a Service
基础设施即服务
把计算基础(服务器、网络技术、存储和数据中心空间)作为一项服务提供给客户。它也包括提供操作系统和虚拟化技术、来管理资源。消费者通过Internet可以从完善的计算机基础设施获得服务。
PaaS:Platform as a Service
平台即服务
PaaS实际上是指将软件研发的平台作为一种服务,供应商提供超过基础设施的服务,一个作为软件开发和运行环境的整套解决方案,即以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。
SaaS:Software as a Service
软件即服务
是一种交付模式,其中应用作为一项服务托管,通过Internet提供给用户;帮助客户更好地管理它们的IT项目和服务、确保它们IT应用的质量和性能,监控它们的在线业务。
云计算:Cloud Computing
当需要的时候,扭开水龙头,水就来了,我只需要操心交水费就是了!
当你需要用一个软件时,你不用跑去电脑城,打开应用商店,它就下载下来了,你只需要交钱就是了;
当你想看报纸的时候,你不用跑去报刊亭,只要打开头条新闻,新闻唾手可得;
当你想看书的时候,你不用跑去书城,只需要打开阅读软件,找到这样的一本书,在手机上阅读;
当你想听音乐的时候,你不用再跑去音像店苦苦找寻CD光碟,打开音乐软件,就能聆听音乐;
云计算,像在每个不同地区开设不同的自来水公司,没有地域限制,优秀的云软件服务商,向世界每个角落提供软件服务——就像天空上的云一样,不论你身处何方,只要你抬头,就能看见!
“云计算”的五大特点:
1.大规模、分布式 2.虚拟化 3.高可用性和扩展性 4.按需服务,更加经济 5.安全
“云计算”已经深深植入到我们生活中的点点滴滴,平时常用的那些APP或网站,基本都离不开“云计算”作为背后的强大服务和技术支持,如剁手党爱恨交加的淘宝、京东,社交痴迷党的微信、微博等等。
于此同时,越来越多的企业机构乃至政务部门,开始使用基于云的平台服务,生活因“云计算”正在发生着革命性的变革和改变!
关注微信公众号,每天持续更新哦!
添加微信还可以观看大数据往期视频哦,
网友评论