1.1 大数据技术概要
1.1.1 大数据产生的背景
2001年后,互联网迅速发展,数据量成倍递增。进入2012年,大数据(big data)一词越来越多地被提及,人们用它来描述和定义信息爆炸时代产生的海量数据,并命名与之相关的技术发展与创新。在现今的社会,大数据的应用越来越彰显他的优势,它占领的领域也越来越大,电子商务、O2O、物流配送等,各种利用大数据进行发展的领域正在协助企业不断地发展新业务,创新运营模式。有了大数据这个概念,对于消费者行为的判断,产品销售量的预测,精确的营销范围以及存货的补给已经得到全面的改善与优化。
“大数据”在互联网行业指的是这样一种现象:互联网公司在日常运营中生成、累积的用户网络行为数据。这些数据的规模是如此庞大,以至于不能用G或T来衡量。
大数据到底有多大?一组名为“互联网上一天”的数据告诉我们,一天之中,互联网产生的全部内容可以刻满1.68亿张DVD;发出的邮件有2940亿封之多(相当于美国两年的纸质信件数量);发出的社区帖子达200万个(相当于《时代》杂志770年的文字量);卖出的手机为37.8万台,高于全球每天出生的婴儿数量37.1万……
截止到2012年,数据量已经从TB(1024GB=1TB)级别跃升到PB(1024TB=1PB)、EB(1024PB=1EB)乃至ZB(1024EB=1ZB)级别。国际数据公司(IDC)的研究结果表明,2008年全球产生的数据量为0.49ZB,2009年的数据量为0.8ZB,2010年增长为1.2ZB,2011年的数量更是高达1.82ZB,相当于全球每人产生200GB以上的数据。而到2012年为止,人类生产的所有印刷材料的数据量是200PB,全人类历史上说过的所有话的数据量大约是5EB。IBM的研究称,整个人类文明所获得的全部数据中,有90%是过去两年内产生的。而到了2020年,全世界所产生的数据规模将达到今天的44倍。每一天,全世界会上传超过5亿张图片,每分钟就有20小时时长的视频被分享。然而,即使是人们每天创造的全部信息——包括语音通话、电子邮件和信息在内的各种通信,以及上传的全部图片、视频与音乐,其信息量也无法匹及每一天所创造出的关于人们自身的数字信息量。
大数据带给我们的三个颠覆性观念转变:是全部数据,而不是随机采样;是大体方向,而不是精确制导;是相关关系,而不是因果关系。
1.1.2 大数据的五大特征
数据量大(Volume)
第一个特征是数据量大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。
类型繁多(Variety)
第二个特征是数据类型繁多。包括网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。
价值密度低(Value)
第三个特征是数据价值密度相对较低。如随着物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,如何通过强大的机器算法更迅速地完成数据的价值“提纯”,是大数据时代亟待解决的难题。
速度快、时效高(Velocity)
第四个特征是处理速度快,时效性要求高。这是大数据区分于传统数据挖掘最显著的特征。
既有的技术架构和路线,已经无法高效处理如此海量的数据,而对于相关组织来说,如果投入巨大采集的信息无法通过及时处理反馈有效信息,那将是得不偿失的。可以说,大数据时代对人类的数据驾驭能力提出了新的挑战,也为人们获得更为深刻、全面的洞察能力提供了前所未有的空间与潜力。
真实性(Veracity):数据的质量。
数据的质量较高。
1.1.3 大数据的应用
- 阿里巴巴的Hadoop集群拥有150个用户组、4500个集群用户,为淘宝、天猫、一淘、聚划算、CBU、支付宝提供底层的基础计算和存储服务。
- 中国移动于2010年5月正式推出大云BigCloud 1.0,集群节点达到了1024个。华为对Hadoop的HA方案及HBase领域也有深入研究,并已经向业界推出了自己的基于Hadoop的大数据解决方案。
- 目前全球范围内大多数在线旅游网站都使用了Cloudera公司提供的Hadoop发行版,Expedia作为全球最大的在线旅游公司之一也在使用Hadoop。在国内目前比较受欢迎的一些旅游网站如携程、去哪儿网等也采用了大数据技术存储和计算。
- 一般金融服务或政府机构会使用Hadoop存储所有的客户交易数据,包括一些非结构化的数据,能够帮助机构发现客户的异常活动,预防欺诈行为。国内支付宝、微信钱包作为庞大的互联网支付平台,诈骗、黑客、病毒的防护十分重要,为了线上资金的安全,阿里巴巴和腾讯在大数据技术检测方面的技术日臻成熟。
- 除企业IT基础机构的管理外,Hadoop还可以用于处理机器生成的数据以便识别出来自恶意软件或网络中的攻击。国内奇虎360安全软件在应用方面也使用Hadoop的HBase组件进行数据存储,缩短异常恢复的时间。
- 目前网络社交已经成为人们日常生活的一部分,网络社交平台每天产生的数据量十分庞大。腾讯和脸书等互联网社交巨头,在数据库存储方面均利用了Hadoop生态系统中的Hive组件进行数据存储和处理。
1.2 Hadoop简介
Hadoop是一个由Apache基金会开发的开源的、可靠的、可扩展的、用于分布式计算的分布式系统基础架构。Apache Hadoop的logo如图:
1.2.1 Hadoop的产生和发展
Hadoop的项目创始人道格·卡廷。
Hadoop起源于开源的网络搜索引擎Nutch,Nutch项目开始于2002年,当时互联网第一轮泡沫刚刚结束,道格·卡廷和迈克·卡法雷拉认为网络搜索引擎由一家互联网公司垄断十分可怕,信息的入口将被公司掌握,因此决定开发一个可以代替当时主流搜索产品的开源搜索引擎,并将该项目命名为Nutch。Nutch致力于提供开源搜索引擎所需的全部工具集。但后来,两位开发者发现这一架构的灵活性不足,只能支持几亿条数据的抓取、索引和搜索,不足以解决数十亿网页的搜索问题。
2003年,谷歌公司发表的The Google File System论文描述了谷歌公司产品的架构GFS( Google File System,谷歌文件系统)。Nutch的开发者们发现GFS架构能够满足网页抓取和搜索过程中生成的超大文件存储需求,更重要的是,GFS能够节省系统管理所使用的大量时间。于是在2004年,Nutch的开发者们借鉴谷歌新技术开始进行开源版本的实现,即Nutch分布式文件系统(Nutch Distributed File System,NDFS)。不同的是,谷歌公司使用的是C++语言,而Nutch的开发者们使用的是Java语言。
2004年,谷歌公司又发表了MapReduce:Simplified Data Processing on Large Clusters,向全世界介绍了MapReduce框架。Nutch的开发者们发现谷歌公司的MapReduce框架可以解决大规模数据的处理问题,因此Nutch的开发者们基于谷歌公司发表的MapReduce:Simplified Data Processing on Large Clusters论文,模仿了谷歌公司的MapReduce框架的设计思路,使用Java设计并实现了一套新的MapReduce并行处理软件系统,在Nutch上开发了一个可工作的MapReduce框架。
2006年,道格·卡廷加入雅虎公司,并将NDFS和MapReduce框架移出了Nutch,命名为Hadoop,改名称源于道格·卡廷儿子的一直玩具大象。雅虎公司为Hadoop项目组织了一个专门的团队,并提供了资源,致力将Hadoop发展为可以处理海量数据的分布式框架。
道格·卡廷加入雅虎公司后,Hadoop项目得到了迅速发展。Hadoop集群规模从一开始的几十台机器发展至上前台机器,中间进行了很多工程性质的工作。此外,雅虎公司逐步将公司的广告系统的数据挖掘工作也迁移到Hadoop上,进一步促进了Hadoop系统的发展。
2007年,开发人员在100个亚马逊公司的虚拟机服务器上使用Hadoop转换处理了4TB的图片数据,加深了人民对Hadoop的印象。
2008年,以为谷歌公司的工程师发现要将当时的Hadoop放至任意一个集群中运行是一件很困难的事情,因此于几个好朋友成立了一家专注于商业化Hadoop的公司Cloudera。同年,Facebook团队发现大多数分析人员白那些MapReduce程序难度较大,而对SQL语句更加熟悉,因此Facebook团队在Hadoop的基础上开发了一个数据仓库工具Hive,专门将SQL语句转换为Hadoop的MapReduce程序。
2008年1月,Hadoop已成为Apache软件基金会的顶级项目之一。
2008年4月,Hadoop打破了世界记录,成为当时最快的TB级数据排序系统。在一个有910个节点的集群中,Hadoop在209s内完成了对1TB数据的排序,刷新了前一年的记录297s。
2009年,道格·卡廷加入Cloudera公司,致力于Hadoop软件的多用途技术开发。
2011年,雅虎公司将Hadoop项目独立并成立了一个子公司Hortonworks,专门提供Hadoop相关的服务。
2012年,Hortonworks推出了与原框架很大不同的YARN框架的第一个版本,从此对Hadoop的研究又迈进一个新的层面。
2013年,大型IT公司,如EMC、Microsoft、Interl、Teradata、Cisco等都明显增加了Hadoop方面的投入,Hortonworks公司宣传要100%开源软件,Hadoop2.0转型基本上无可阻挡。
2014年,Hadoop2.x的更新速度非常快,从Hadoop2.3.0至Hadoop2.6.0,极大地完善了YARN框架和整个集群的功能。很多Hadoop的研发公司如Cloudera、Hortonworks等都与其他企业合作,共同开发Hadoop的新功能。
2016年,Hadoop及其生态圈组件(如Hive、HBase、Spark等)在各行各业落地并且得到广泛的应用,YARN框架也在持续发展以支持更多的应用。
2017年,Hadoop3.0开始计划发布,并于2017年12月发布的3.0.0的GA(General Availability,正式发布)版本,该版本修复了6242个问题,Hadoop3.x正式开始使用。
2018年,Hortonworks目前已被Cloudera公司收购。
1.2.2 Hadoop生态圈
狭义上说Hadoop就是一个软件。广义上说,Hadoop通常是一个更广泛的概念——Hadoop生态圈,包括:Hadoop、Hive、HBase、Flume、Kafka、Sqoop、Spark、Flink等。
1.2.3 发行版本
Hadoop有三大发行版本:Apache、Cloudera、Hortonworks。
Apache版本最原始(最基础)的版本,对于入门学习最好。2006
Cloudera内部集成了很多大数据框架,对应产品CDH。2008
Hortonworks文档较好,对应产品HDP。2011
Hortonworks现在已经被Cloudera公司收购,推出新的品牌CDP。
1.2.4 官方资源
资源:
1)Apache Hadoop
官网地址:http://hadoop.apache.org
下载地址:https://hadoop.apache.org/release/3.1.3.html
2)Cloudera Hadoop
官网地址:https://www.cloudera.com/downloads/cdh
下载地址:https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_6_download.html
3)Hortonworks Hadoop
官网地址:https://hortonworks.com/products/data-center/hdp/
下载地址:https://hortonworks.com/downloads/#data-platform
1.3 Google的"三驾马车"
Google公司的三篇论文:GFS、MapReduce、BigTable,奠定了大数据技术的基石,具有划时代的意义,被称为Google公司的"三驾马车":
Google-Bigtable中文版_1.0.pdf
Google-File-System中文版_1.0.pdf
Google-MapReduce中文版_1.0.pdf
1.3.1 GFS的思想
GFS 也就是 google File System,Google公司为了存储海量搜索数据而设计的专用文件系统,描述了一个分布式文件系统的设计思路。从交互实体上划分,分布式文件系统有两个基本组成部分,一个是客户端(Client),一个是服务端(Server)。
先考虑第一个问题,如果客户端把文件上传到服务器,但是服务端的硬盘不够大,怎么办?
显然可以增加硬盘或多增加主机。另一个问题是数据存储的可靠性如何保证?如果把文件存在硬盘上,一旦硬盘损坏,数据会丢失。对于这个问题,可以采用数据冗余存储的方式来解决,即同一文件多保存几份。
而事实上事情并没有这么简单。多增加硬盘或主机后,这些主机和硬盘如何被管理起来,或者它们怎么样才能有效运行?数据冗余的数据应该如何存放。
GFS解决这些问题的思路是这样的,增加一个管理节点,管理这些存放数据的主机。存放数据的主机称为数据节点。而上传的文件会按固定的大小进行进行分块。数据节点上保存的是数据块,而非独立的文件。数据块冗余度默认是3。上传文件时,客户端先连接管理节点,管理节点生成的数据块的信息,包括文件名、文件大小、上传时间、数据块的位置信息等。这些信息称为数据的元信息,它会保存在管理节点。客户端获取这些元信息后,就开始把数据块一个个上传。客户端把数据块先上传到第一个数据节点,然后,在管理节点的管理下,通过水平复制,复制几份数据块到其他节点,最终达到冗余度的要求。水平复制需要考虑两个要求:可靠性、可用性。
对于GFS架构,论文提到如下几个要点:
- GFS Master节点管理所有的文件系统元数据,包括命名空间、访问控制信息、文件和块的映射信息以及当前块的位置信息。
- GFS存储的文件都被分割成固定大小的块,每个块都会被复制到多个块服务器上(可靠性),块的冗余度默认为3。
- GFS Master还管理着系统范围内的活动,比如块服务器之间的数据迁徙等。
- GFS Master与每个块服务器通信(发送心跳包),发送指令,获取状态。
论文也提到"副本的位置"的要求,即块副本位置选择的策略要满足两大目标:最大化数据可靠性和可用性。
1.3.2 MapReduce的思想
MapReduce采用“分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个子节点共同完成,然后整合各个子节点的中间结果,得到最终的计算结果。简而言之, MapReduce就是"分散任务,汇总结果"。
1.3.3 BigTable的思想
HBase是一个分布式的、面向列的开源数据库。它是Hadoop之上提供了类似于BigTable的能力,它是对Google公司的BigTable论文思想的实现。
1.4 Hadoop生态系统
Hadoop的HDFS、MapReduce、HBase分别是对Google公司GFS、MapReduce、BigTable思想的开源实现。
Hadoop有三个基本组件:HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)负责分布式存储,MapReduce负责分布式计算,YARN(Yet Another Resource Negotiator,另一种资源协调者)为MapReduce提供硬件资源调度。
1.4.1 Hadoop版本发展
Hadoop1.0的核心组件是HDFS和MapReduce,Hadoop生态圈里的很多组件都是基于HDFS和MapReduce发展而来的。之后出现了Hadoop2.0,Hadoop2.0在Hadoop1.0的基础上做了改进。Hadoop2.0的核心组件分别是:HDFS、MapReduce、YARN。Hadoop3.0和Hadoop2.0在组件上没有变化。从Hadoop3.x系列版本发布开始,Hadoop版本不断地优化、更新。
1.4.2 Hadoop的特点
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点 :
- 高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖 。
- 高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
- 高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
- 高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
- 低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。
Hadoop缺点:
- Hadoop不适用于低延迟数据访问。
- Hadoop不能高效存储大量小文件。
- Hadoop不支持用户写入并任意修改文件。
1.4.3 Hadoop三大核心
HDFS架构概述
HDFS是指适合运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System)。
NameNode 和 DataNode
NameNode(nn):存储文件的元数据,如文件名、文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。
HDFS 具有主/从架构。HDFS 集群由单个 NameNode 组成,这是一个管理文件系统命名空间并控制客户端对文件的访问的主服务器。此外,还有许多 DataNode,通常集群中每个节点一个,用于管理附加到它们运行的节点的存储。HDFS 公开了一个文件系统命名空间,并允许将用户数据存储在文件中。在内部,一个文件被分成一个或多个块,这些块存储在一组 DataNode 中。NameNode 执行文件系统命名空间操作,例如打开、关闭和重命名文件和目录。它还确定块到 DataNode 的映射。DataNode 负责处理来自文件系统客户端的读取和写入请求。DataNodes 还执行块创建、删除、
MapReduce架构概述
MapReduce是Hadoop的核心计算框架,是用于大规模数据集(大于1TB)并行运算的编程模型,主要包括Map(映射)和Reduce(规约)两个阶段。MapReduce的核心思想是,当启动一个MapReduce任务时,Map端将会读取HDFS上的数据,将数据映射成所需要的键值对类型并传至Reduce端。Reduce端接收Map端键值对类型的中间数据,并根据不同键进行分组,对每一组键相同的数据进行处理,得到新的键值对并输出至HDFS。
MapReduce作业通常将输入数据集拆分为独立的块,这些块由map任务以完全并行的方式处理。该框架对映射的输出进行排序,然后将其输入到reduce 任务。通常,作业的输入和输出都存储在文件系统中。该框架负责调度任务、监视它们并重新执行失败的任务。
一个完整的MapReduce过程包含数据的输入与分片、Map阶段数据处理、Shuffle&Sort阶段数据整合、Reduce阶段数据处理、数据输出等阶段。
读取输入数据:从HDFS分布式文件系统中读取的,根据所设置的分片大小对文件重新分片(Split)。
Map阶段:数据将以键值对的形式被读入,键的值一般为每行首字符与文件最初始位置的偏移量,即中间所隔字符个数,值为该行的数据记录。根据具体的需求对键值对进行处理,映射成新的键值对,将新的键值对传输至Reduce端。
Shuffle&Sort阶段:将同一个Map中输出的键相同的数据先进行整合,减少传输的数据量,并且在整合后将数据按照键进行排序。
Reduce阶段:针对所有键相同的数据,对数据进行规约,形成新的键值对。
输出阶段:将数据文件输出至HDFS,输出的文件个数和Reduce的个数一致,如果只有一个Reduce,那么输出的只有一个数据文件,默认命名为“part-r-00000”。
YARN架构概述
YARN是Hadoop的资源管理器,提交应用至YARN上执行可以提高资源在集群的利用率,加快执行速率。
目的是使得Hadoop数据处理能力超越MapReduce。YARN的另一个目标就是拓展Hadoop,使得YARN不仅可以支持MapReduce计算,而且还可以很方便地管理如Hive、HBase、Pig、Spark/Shark等组件的应用程序。
YARN主要由ResourceManager、NodeManager、ApplicationMaster和Client Application这4部分构成。
ResourceManager(RM): 一个全局的资源管理器,负责整个系统的资源管理和分配,ResourceManager主要由两个组件构成,即调度器(Scheduler)和应用程序管理器(Applications Manager,ASM)。
NodeManager(NM): 每个节点上的资源和任务管理器。一方面,会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;另一方面,将接收并处理来自ApplicationMaster的Container启动或停止等各种请求。
ApplicationMaster(AM): 与ResourceManager调度器协商以获取资源(用Container表示)。将得到的任务进行进一步的分配。与NodeManager通信以启动或停止任务。监控所有任务运行状态,并在任务运行失败时重新为任务申请资源并重启任务。
Client Application: Client Application是客户端应用程序,客户端将应用程序提交到RM时,首先将创建一个Application上下文件对象,再设置AM必需的资源请求信息,最后提交至RM。
YARN 的基本思想是将资源管理和作业调度/监控的功能拆分为单独的守护进程。这个想法是拥有一个全局 ResourceManager ( RM ) 和每个应用程序的 ApplicationMaster ( AM )。应用程序可以是单个作业,也可以是作业的 DAG。
ResourceManager 和 NodeManager 构成了数据计算框架。ResourceManager 是在系统中所有应用程序之间仲裁资源的最终权威。NodeManager 是每台机器的框架代理,负责容器、监控它们的资源使用(cpu、内存、磁盘、网络)并将其报告给 ResourceManager/Scheduler。每个应用程序的 ApplicationMaster 实际上是一个特定于框架的库,其任务是从 ResourceManager 协商资源并与 NodeManager(s) 一起执行和监视任务。
ResourceManager ( RM ) :整个集群资源(内存、CPU等)的老大。
NodeManager(NM):单个节点服务器资源的老大。
ApplicationMaster ( AM ):单个任务运行的老大。
Container:容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源,如:内存、CPU、网络等。
HDFS、YARN、MapReduce三者关系
1.4.4 Hadoop其他组件
除了HDFS、MapReduce、YARN三大核心组件外,Hadoop生态圈的其他组件还有ZooKeeper、MySQL、Hive、HBase、Flume、Kafka、Sqoop、Spark、Flink等。如图:
1)Sqoop:
● Sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
应用场景:
● 对于结构化数据库,采用Sqoop进行数据传输是合适的,可以实现结构化数据库中的数据并行批量入库至HDFS进行存储。
2)Flume:
● Flume是Cloudera提供的一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输系统。
● 支持在日志系统中定制各类数据发送方,用于收集数据。
● 可以对数据进行简单处理,并传输至各种数据接收方。
应用场景:
● 日志文件的采集。
3)Kafka:
● Kafka是一种高吞吐量的分布式发布订阅消息系统;
4)Spark:
● Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。
5)Flink:
● Flink是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。
6)Oozie:
● Oozie是基于Hadoop的调度器,编写xml格式的文件制定调度流程,可以调度MapReduce、Pig、Hive、Shell等任务。
● 当一个工作任务中需要调用几个任务时,一个任务完成再启动另一个是比较麻烦的,在这种情况下即可使用Oozie将任务串联,通过Oozie调动整个任务进程。
7)Hbase:
● HBase是一个针对非结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。
● 提供了对大规模数据的随机、实时读写访问。
● 保存的数据可以使用MapReduce进行处理。
● 将数据存储和并行计算很好地结合在一起。
应用场景:
● 大数据量(TB级数据)且有快速随机访问的需求,如淘宝交易记录等;
● 及时响应用户的需求;
● 业务场景简单,不需要关系型数据库中的很多特殊操作,如交叉查询、连接查询等。
8)Hive:
● Hive是建立在Hadoop上的数据仓库基础构架。
● 提供了一系列的工具,可存储、查询和分析存储在Hadoop中的大规模数据。
● 定义了一种类SQL语言为HQL(Hive Query Language),HQL语句在Hive的底层将被转换为复杂的MapReduce程序,运行在Hadoop大数据平台上。
应用场景:
● 数据集的批处理作业,如网络日志分析。
9)ZooKeeper:
● ZooKeeper可解决分布式环境下的数据管理问题,如统一命名、状态同步、集群管理、配置同步等。
● ZooKeeper的使用主要是为了保证集群各项功能正常进行,并在出现异常时能够及时通知处理,保持数据一致性,是对整个集群的监控。
1.5 大数据学习流程
大数据技术是一门综合技术,要求开发者既具备良好的Java基础,又对数据敏感,并掌握主流的大数据开发、数据挖掘等技术。
第一阶段:大数据准备工作
学习大数据首先要有Java语言基础、MySQL数据库基础并对Java Web有一定的了解。
第二阶段:学习大数据必备技能
重点学习Hadoop。
第三阶段:项目提升
学习其他组件。
第四阶段:后续提高。
1.6 学习资源
教材试读:https://book.yunzhan365.com/ftzrz/ascf/mobile/index.html
推荐教材试读:https://book.yunzhan365.com/ftzrz/upot/mobile/index.html
版权归原作者 Mr 李小四 所有, 如有侵权,请联系我们删除。