前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0基础怎么学习大数据?成为大数据构架师入门到精通的学习路线

0基础怎么学习大数据?成为大数据构架师入门到精通的学习路线

原创
作者头像
用户2292346
修改2018-06-07 14:32:45
7341
修改2018-06-07 14:32:45
举报

近几年我们经常听到AI人工智能、大数据、机械进修等等,似乎良多企业都已经涉足这些行业停止研究,那么想体味、想进入这些行业我们应该怎样做呢?科多大数据带你来进修一下。

经常有初学者问我,本身想往大数据标的目的生长,该学哪些手艺,进修道路是什么样的,感受大数据很火,就业很好,薪资很高。若是本身很迷茫,为了这些缘故缘由想往大数据标的目的生长,也可以,那么我就想问一下,你的专业是什么,对付计较机/软件,你的乐趣是什么?是计较机专业,对把持体系、硬件、搜集、办事器感乐趣?是软件专业,对软件开发、编程、写代码感乐趣?仍是数学、统计学专业,对数据和数字特别感乐趣。

大数据学习群:716581014

其实这就是想告诉你的大数据的三个生长标的目的,平台搭建/优化/运维/监控、大数据开发/ 设计/ 架构、数据分析/发掘。请不要问我哪个随意,哪个前景好,哪个钱多。

先扯一下大数据的4V特征:

·数据量大,TB->PB

·数据类型繁多,构造化、非构造化文本、日志、视频、图片、地舆位置等;

·商业价值高,可是这种价值必要在海量数据之上,经由过程数据分析与机械进修更快速的发掘出来;

·措置时效性高,海量数据的措置需求不再局限在离线计较傍边。

现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:

·文件存储:Hadoop HDFS、Tachyon、KFS

·离线计较:Hadoop MapReduce、Spark

·流式、实时计较:Storm、Spark Streaming、S4、Heron

·K-V、NOSQL数据库:HBase、Redis、MongoDB

·资源办理:YARN、Mesos

·日志搜集:Flume、Scribe、Logstash、Kibana

·消息体系:Kafka、StormMQ、ZeroMQ、RabbitMQ

·查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid

·分布式和谐办事:Zookeeper

·集群办理与监控:Ambari、Ganglia、Nagios、Cloudera Manager

·数据发掘、机械进修:Mahout、Spark MLLib

·数据同步:Sqoop

·使命调度:Oozie

目炫了吧,上面的有30多种吧,别说精晓了,全数都市使用的,估量也没几个。就我小我而言,首要经历是在第二个标的目的(开发/设计/架构),且听听我的建议吧。

第一章:初识Hadoop

1.1 学会百度与Google

非论碰着什么问题,先试试搜索并本身处理。Google首选,翻不外去的,就用百度吧。

1.2 参考质料首选官方文档

特别是对付入门来说,官方文档永久是首选文档。信托搞这块的大多是文化人,英文拼集就行,其实看不下去的,请参考第一步。

1.3 先让Hadoop跑起来

Hadoop可以算是大数据存储和计较的开山开山祖师,如今大多开源的大数据框架都依靠Hadoop或者与它能很好的兼容。

关于Hadoop,你至少必要搞清楚以下是什么:

·Hadoop 1.0、Hadoop 2.0

·MapReduce、HDFS

·NameNode、DataNode

·JobTracker、TaskTracker

·Yarn、ResourceManager、NodeManager

本身搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。建议先使用安装包呼吁行安装,不要使用办理工具安装。别的:Hadoop1.0晓得它就行了,如今都用Hadoop 2.0.

1.4 试试使用Hadoop

HDFS目录把持呼吁;上传、下载文件呼吁;提交运转MapReduce示例轨范;翻开Hadoop WEB界面,检察Job运转状态,检察Job运转日志。晓得Hadoop的体系日志在哪里。

1.5 你该体味它们的事理了

MapReduce:若何分而治之;HDFS:数据到底在哪里,什么是副本;

Yarn到底是什么,它能干什么;NameNode到底在干些什么;Resource Manager到底在干些什么;

1.6 本身写一个MapReduce轨范

请模仿WordCount例子,本身写一个(照抄也行)WordCount轨范,

打包并提交到Hadoop运转。你不会Java?Shell、Python都可以,有个工具叫Hadoop Streaming。若是你认真完成了以上几步,恭喜你,你的一只脚已经进来了。

第二章:更高效的WordCount

2.1 学点SQL吧

你晓得数据库吗?你会写SQL吗?若是不会,请学点SQL吧。

2.2 SQL版WordCount

在1.6中,你写(或者抄)的WordCount一共有几行代码?给你看看我的:

SELECT word,COUNT(1) FROM wordcount GROUP BY word;

这便是SQL的魅力,编程必要几十行,甚至上百行代码,我这一句就搞定;使用SQL措置分析Hadoop上的数据,便当、高效、易上手、更是趋向。非论是离线计较仍是实时计较,越来越多的大数据措置框架都在积极供给SQL接口。

2.3 SQL On Hadoop之Hive

什么是Hive?官方给的诠释如下:The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax.

为什么说Hive是数据堆栈工具,而不是数据库工具呢?有的伴侣可能不晓得数据堆栈,数据堆栈是逻辑上的概念,底层使用的是数据库,数据堆栈中的数据有这两个特点:最全的历史数据(海量)、相对不变的;所谓相对不变,指的是数据堆栈不合于业务体系数据库,数据经常会被更新,数据一旦进入数据堆栈,很少会被更新和删除,只会被大量查询。而Hive,也是具备这两个特点,是以,Hive合适做海量数据的数据堆栈工具,而不是数据库工具。

2.4 安装设置装备安排Hive

请参考1.1 和 1.2 完成Hive的安装设置装备安排。可以正常进入Hive呼吁行。

2.5 试试使用Hive

请参考1.1 和 1.2 ,在Hive中建树wordcount表,并运转2.2中的SQL语句。

在Hadoop WEB界面中找到适才运转的SQL使命。看SQL查询成效是否和1.4中MapReduce中的成效同等。

2.6 Hive是怎样工作的

明明写的是SQL,为什么Hadoop WEB界面中看到的是MapReduce使命?

2.7 学会Hive的根基呼吁

建树、删除表;加载数据到表;下载Hive表的数据;请参考1.2,进修更多关于Hive的语法和呼吁。

若是你已经按照《写给大数据开发初学者的话》中第一章和第二章的流程认真完好的走了一遍,那么你应该已经具备以动手艺和知识点:

·MapReduce的事理(仍是阿谁经典的问题问题,一个10G巨细的文件,给定1G巨细的内存,若何使用Java轨范统计出现次数最多的10个单词及次数);

·HDFS读写数据的流程;向HDFS中PUT数据;从HDFS中下载数据;

·本身会写简单的MapReduce轨范,运转出现问题,晓得在哪里检察日志;

·会写简单的SELECT、WHERE、GROUP BY等SQL语句;

·Hive SQL转换成MapReduce的大抵流程;

·Hive中常见的语句:建树表、删除表、往表中加载数据、分区、将表中数据下载到本地;

从上面的进修,你已经体味到,HDFS是Hadoop供给的分布式存储框架,它可以用来存储海量数据,MapReduce是Hadoop供给的分布式计较框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive供给了SQL接口,开发人员只必要编写简单易上手的SQL语句,Hive担任把SQL翻译成MapReduce,提交运转。

此时,你的”大数据平台”是如许的:那么问题来了,海量数据若何到HDFS上呢?

第三章:把别处的数据搞到Hadoop上

这里也可以叫做数据网罗,把各个数据源的数据网罗到Hadoop上。

3.1 HDFS PUT呼吁

这个在前面你应该已经使用过了。put呼吁在实际情形中也斗劲常用,通常配合shell、python等剧本说话来使用。建议谙练把握。

3.2 HDFS API

HDFS供给了写数据的API,本身用编程说话将数据写入HDFS,put呼吁本身也是使用API。

实际情形中一样平常本身较少编写轨范使用API来写数据到HDFS,通常都是使用其他框架封装好的编制。比如:Hive中的INSERT语句,Spark中的saveAsTextfile等。建议体味事理,会写Demo。

3.3 Sqoop

Sqoop是一个首要用于Hadoop/Hive与传统关系型数据库,Oracle、MySQL、SQLServer等之间停止数据交流的开源框架。就像Hive把SQL翻译成MapReduce一样,Sqoop把你指定的参数翻译成MapReduce,提交到Hadoop运转,完成Hadoop与其他数据库之间的数据交流。

本身下载和设置装备安排Sqoop(建议先使用Sqoop1,Sqoop2斗劲复杂)。体味Sqoop常用的设置装备安排参数和编制。

使用Sqoop完成从MySQL同步数据到HDFS;使用Sqoop完成从MySQL同步数据到Hive表;若是后续选型确定使用Sqoop作为数据交流工具,那么建议谙练把握,不然,体味和会用Demo即可。

3.4 Flume

Flume是一个分布式的海量日志网罗和传输框架,由于“网罗和传输框架”,所以它并不合适关系型数据库的数据网罗和传输。Flume可以实时的从搜集和谈、消息体系、文件体系网罗日志,并传输到HDFS上。

是以,若是你的业务有这些数据源的数据,并且必要实时的网罗,那么就应该考虑使用Flume。

下载和设置装备安排Flume。使用Flume监控一个不竭追加数据的文件,并将数据传输到HDFS;Flume的设置装备安排和使用较为复杂,若是你没有充足的乐趣和耐心,可以先跳过Flume。

3.5 阿里开源的DataX

之所以引见这个,是由于我们公司今朝使用的Hadoop与关系型数据库数据交流的工具,就是之前基于DataX开发的,很是好用。

可以参考我的博文《异构数据源海量数据交流工具-Taobao DataX 下载和使用》。如今DataX已经是3.0版本,支撑很多数据源。你也可以在其之上做二次开发。有乐趣的可以研究和使用一下,比力一下它与Sqoop。

第四章:把Hadoop上的数据搞到别处去

Hive和MapReduce停止分析了。那么接下来的问题是,分析完的成效若何从Hadoop上同步到其他体系和应用中去呢?其实,这里的编制和第三章根基同等的。

4.1 HDFS GET呼吁

把HDFS上的文件GET到本地。必要谙练把握。

4.2 HDFS API

同3.2.

4.3 Sqoop

同3.3.使用Sqoop完成将HDFS上的文件同步到MySQL;使用Sqoop完成将Hive表中的数据同步到MySQL。

4.4 DataX

同3.5. 若是你认真完成了上面的进修和理论,此时,你的”大数据平台”应该是如许的:

若是你已经按照《写给大数据开发初学者的话2》中第三章和第四章的流程认真完好的走了一遍,那么你应该已经具备以动手艺和知识点:

晓得若何把已有的数据网罗到HDFS上,网罗离线网罗和实时网罗;你已经晓得sqoop(或者还有DataX)是HDFS和其他数据源之间的数据交流工具;你已经晓得flume可以用作实时的日志网罗。

已经面的进修,对付大数据平台,你已经把握的不少的知识和手艺,搭建Hadoop集群,把数据网罗到Hadoop上,使用Hive和MapReduce来分析数据,把分析成效同步到其他数据源。

接下来的问题来了,Hive使用的越来越多,你会创造良多不爽的地方,特别是速度慢,大多情形下,明明我的数据量很小,它都要申请资源,启动MapReduce来实行。

第五章:快一点吧,我的SQL

其实大师都已经创造Hive后台使用MapReduce作为实行引擎,其实是有点慢。是以SQL On Hadoop的框架越来越多,按我的体味,最常用的按照流行度依次为SparkSQL、Impala和Presto.这三种框架基于半内存或者全内存,供给了SQL接口来快速查询分析Hadoop上的数据。关于三者的斗劲,请参考1.1.

我们今朝使用的是SparkSQL,至于为什么用SparkSQL,缘故缘由概略有以下吧:使用Spark还做了其他工作,不想引入过多的框架;Impala对内存的需求太大,没有过多资源安排。

5.1 关于Spark和SparkSQL

什么是Spark,什么是SparkSQL。

Spark有的焦点概念及名词诠释。

SparkSQL和Spark是什么关系,SparkSQL和Hive是什么关系。

SparkSQL为什么比Hive跑的快。

5.2 若何安排和运转SparkSQL

Spark有哪些安排形式?

若安在Yarn上运转SparkSQL?

使用SparkSQL查询Hive中的表。Spark不是一门短时辰内就能把握的手艺,是以建议在体味了Spark之后,可以先从SparkSQL动手,按部就班。

关于Spark和SparkSQL,若是你认真完成了上面的进修和理论,此时,你的”大数据平台”应该是如许的。

第六章:一夫多妻制

请不要被这个名字所勾引。其实我想说的是数据的一次网罗、屡次斲丧。

在实际业务场景下,特别是对付一些监控日志,想即时的从日志中体味一些目标(关于实时计较,后面章节会有引见),这时辰,从HDFS上分析就太慢了,虽然是经由过程Flume网罗的,但Flume也不能间隔很短就往HDFS上滚动文件,如许会导致小文件特别多。

为了满够数据的一次网罗、屡次斲丧的需求,这里要说的便是Kafka。

6.1 关于Kafka

什么是Kafka?Kafka的焦点概念及名词诠释。

6.2 若何安排和使用Kafka

使用单机安排Kafka,并成功运转自带的消费者和斲丧者例子。使用Java轨范本身编写并运转消费者和斲丧者轨范。Flume和Kafka的集成,使用Flume监控日志,并将日志数据实时发送至Kafka。

若是你认真完成了上面的进修和理论,此时,你的”大数据平台”应该是如许的。

这时,使用Flume网罗的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个斲丧者同时斲丧,其中一个斲丧者,就是将数据同步到HDFS。

若是你已经按照《写给大数据开发初学者的话3》中第五章和第六章的流程认真完好的走了一遍,那么你应该已经具备以动手艺和知识点:

·为什么Spark比MapReduce快。

·使用SparkSQL庖代Hive,更快的运转SQL。

·使用Kafka完成数据的一次搜集,屡次斲丧架构。

·本身可以写轨范完成Kafka的消费者和斲丧者。

已经面的进修,你已经把握了大数据平台中的数据网罗、数据存储和计较、数据交流等大局部手艺,而这其中的每一步,都必要一个使命(轨范)来完成,各个使命之间又存在必定的依靠性,比如,必需等数据网罗使命成功完成后,数据计较使命才能起头运转。若是一个使命实行失败,必要给开发运维人员发送告警,同时必要供给完好的日志来便当查错。

第七章:越来越多的分析使命

不仅仅是分析使命,数据网罗、数据交流同样是一个个的使命。这些使命中,有的是按时触发,有点则必要依靠其他使命来触发。当平台中有几百上千个使命必要维护和运转时辰,仅仅靠crontab远远不够了,这时便必要一个调度监控体系来完成这件事。调度监控体系是整个数据平台的中枢体系,近似于AppMaster,担任分配和监控使命。

7.1 Apache Oozie

1. Oozie是什么?有哪些功能?

2. Oozie可以调度哪些类型的使命(轨范)?

3. Oozie可以支撑哪些使命触发编制?

4. 安装设置装备安排Oozie。

7.2 其他开源的使命调度体系

Azkaban,light-task-scheduler,Zeus,等等。别的,我这边是之前零丁开发的使命调度与监控体系,详细请参考《大数据平台使命调度与监控体系》。若是你认真完成了上面的进修和理论,此时,你的”大数据平台”应该是如许的:

第八章:我的数据要实时

在第六章引见Kafka的时辰提到了一些必要实时目标的业务场景,实时根基可以分为绝对实时和准实时,绝对实时的耽误要求一样平常在毫秒级,准实时的耽误要求一样平常在秒、分钟级。对付必要绝对实时的业务场景,用的斗劲多的是Storm,对付其他准实时的业务场景,可所以Storm,也可所以Spark Streaming。固然,若是可以的话,也可以本身写轨范来做。

8.1 Storm

1. 什么是Storm?有哪些可能的应用场景?

2. Storm由哪些焦点组件构成,各自担当什么脚色?

3. Storm的简单安装和安排。

4. 本身编写Demo轨范,使用Storm完成实时数据流计较。

8.2 Spark Streaming

1. 什么是Spark Streaming,它和Spark是什么关系?

2. Spark Streaming和Storm斗劲,各有什么优错误错误?

3. 使用Kafka + Spark Streaming,完成实时计较的Demo轨范。

至此,你的大数据平台底层架构已经成型了,其中网罗了数据网罗、数据存储与计较(离线和实时)、数据同步、使命调度与监控这几大模块。接下来是时辰考虑若何更好的对外供给数据了。

第九章:我的数据要对外

通常对外(业务)供给数据访谒,大要上包含以下方面。

·离线:比如,天天将前一天的数据供给到指定的数据源(DB、FILE、FTP)等;离线数据的供给可以接纳Sqoop、DataX等离线数据交流工具。

·实时:比如,在线网站的保举体系,必要实时从数据平台中获取给用户的保举数据,这种要求延时很是低(50毫秒以内)。按照延时要乞降实时数据的查询必要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。

·OLAP分析:OLAP除了要求底层的数据模子斗劲标准,别的,对查询的相应速度要求也越来越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。若是你的数据模子斗劲规模,那么Kylin是最好的选择。

·即席查询:即席查询的数据斗劲随意,一样平常很难建立通用的数据模子,是以可能的方案有:Impala、Presto、SparkSQL。

这么多斗劲成熟的框架和方案,必要连系本身的业务需求及数据平台手艺架构,选择适宜的。准绳只需一个:越简单越不变的,就是最好的。

若是你已经把握了若何很好的对外(业务)供给数据,那么你的“大数据平台”应该是如许的:

第十章:牛逼高峻上的机械进修

关于这块,我这个外行人也只能是简单引见一下了。数学专业毕业的我很是忸捏,很悔怨那时没有好勤学数学。在我们的业务中,碰着的能用机械进修处理的问题概略这么三类:

·分类问题:网罗二分类和多分类,二分类就是处理了预测的问题,就像预测一封邮件是否垃圾邮件;多分类处理的是文本的分类;

·聚类问题:从用户搜索过的关头词,对用户停止概略的归类。

·保举问题:按照用户的历史阅读和点击举动停止相干保举。

大多数行业,使用机械进修处理的,也就是这几类问题。入门进修线路,数学根本;机械进修实战,懂Python最好;SparkMlLib供给了一些封装好的算法,以及特征措置、特征选择的编制。

机械进修确实牛逼高峻上,也是我进修的方针。那么,可以把机械进修局部也加进你的“大数据平台”了。

大数据学习加群:716581014

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档