大数据学习思路梳理

一、概览

在这里插入图片描述

二、相关组件及需了解掌握的技术栈

2.1、Java基础(10天)

1)java基础语法(1-5日)
目前应用最广泛的是javaSE8,发布于2014年,而最新版为2017年发布的javaSE9;

》【JDK、JRE、JVM】区分:
JDK·:开发者工具,包含JRE,其运行程序用,JRE又包含JVM和运行类库,对java虚拟机,其包含字节码等核心内容,是运行所依赖核心所在。
在这里插入图片描述
在这里插入图片描述

2)面向对象:6日

3)字符串和集合

6)IO流:读写文件

7)接口概念,Lambda,方法引用

8)Stream流,java9的模块化

2.2、常见组件

文件存储: N、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

2.2.1、Hadoop

了解:
Hadoop 1.0、Hadoop 2.0

MapReduce、HDFS

NameNode、DataNode

JobTracker、TaskTracker

Yarn、ResourceManager、NodeManager

1)搭建Hadoop,最好先用安装包命令行安装Hadoop 2.0

2)了解熟悉HDFS目录操作命令;上传、下载文件命令;提交运行MapReduce示例程序;

3)打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。了解Hadoop的系统日志位置

4)原理了解:
MapReduce:如何分而治之;
HDFS:数据到底在哪里,究竟什么才是副本;
Yarn到底是什么,它能干什么;
NameNode到底在干些什么;
Resource Manager到底在干些什么;

2.2.2、Hive

SQL On Hadoop之Hive是一种Sql标准化工具,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行。

Hive官方解释:Apache Hive是一种数据仓库软件,使用它有助于读取,写入和管理驻留在分布式存储中并使用SQL语法查询的大型数据集。

说明:数据仓库是逻辑上的概念,底层使用的是数据库,数据仓库中的数据有这两个特点:最全的历史数据(海量)、相对稳定的;所谓相对稳定,指的是数据仓库不同于业务系统数据库,数据经常会被更新,数据一旦进入数据仓库,很少会被更新和删除,只会被大量查询。而Hive,也是具备这两个特点,因此,Hive适合做海量数据的数据仓库工具,而不是数据库工具。

Hive后台使用MapReduce作为执行引擎,实际运行过程中会发现有加载较慢。因此SQL On Hadoop的框架越来越多采用来处理这种问题,如SparkSQL、Impala和Presto,它们是基于半内存或者全内存,提供了SQL接口来快速查询分析Hadoop上的数据。
我们常用SparkSQL。

1)安装配置Hive,了解Hive命令行使用:创建、删除表;加载数据到表;下载Hive表的数据;

2)了解Hive工作原理

2.2.3、 MapReduce

MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据;

1)MapReduce的原理

2)尝试写简单的MapReduce程序,运行排查出现问题,了解日志位置及如何定位查看;

3)加深的Select、Where、group by等SQL语句的温习学习,最好熟练;在Hive里创建表、删除表、往表中加载数据、分区、将表中数据下载到本地;

4)Hive SQL转换成MapReduce的大致流程;

5)

2.2.4、HDFS

HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据;

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

2)HDFS PUT命令,put命令在实际环境中也比较常用,通常配合shell、python等脚本语言来使用。应熟练掌握

3)HDFS API:

4)HDFS GET命令:把HDFS上的文件GET到本地。需要熟练掌握

2.2.5、Sqoop

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

1)安装Sqoop,了解Sqoop常用的配置参数和方法

2)使用Sqoop完成从MySQL同步数据到HDFS;使用Sqoop完成从MySQL同步数据到Hive表;

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

4)对比学习阿里开源的DataX

DataX用于Hadoop与关系型数据库数据交换;支持多种数据源,及二次开发

2.2.6、Flume

Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。适用需实时数据采集的场景。

1)安装和配置Flume,Flume的配置和使用较为复杂

2)使用Flume监控一个不断追加数据的文件,并将数据传输到HDFS

3)

2.2.7、Spark

什么是Spark,什么是SparkSQL。

Spark有的核心概念及名词解释。

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

SparkSQL为什么比Hive跑的快

如何部署和运行SparkSQL

Spark有哪些部署模式?

如何在Yarn上运行SparkSQL?

使用SparkSQL查询Hive中的表

2.2.8、 数据采集

Hadoop上配置各种数据源,收集数据

2.2.9、Kafka

【一次采集、多次消费】:Kafka应用

1)在某些实际业务场景下,特别是对于一些监控日志,想即时从日志中了解一些指标,这时候,从HDFS上分析就太慢了,尽管是通过Flume采集的,但Flume也不能间隔很短就往HDFS上滚动文件,这样会导致小文件特别多。使用Flume采集的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个消费者同时消费,其中一个消费者,会将数据同步到HDFS。

2)什么是Kafka?Kafka的核心概念及名词解释

3)如何部署和使用Kafka:使用单机部署Kafka,并成功运行自带的生产者和消费者例子。

4)使用Java程序自己编写并运行生产者和消费者程序。

5)Flume和Kafka的集成,使用Flume监控日志,并将日志数据实时发送至Kafka。

6)为什么Spark比MapReduce快:使用SparkSQL代替Hive,更快的运行SQL。使用Kafka完成数据的一次收集,多次消费架构。

2.2.10、多任务调度监控系统: Apache Oozie

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

2)Oozie可以调度哪些类型的任务(程序)?

3)Oozie可以支持哪些任务触发方式?

4)安装配置Oozie。

5)其他:Azkaban,light-task-scheduler,Zeus

2.2.11、Storm

Kafka使用在获取实时指标的业务场景,这里的实时又可分为绝对实时和准实时,绝对实时的延迟要求一般在毫秒级,准实时的延迟要求一般在秒、分钟级。对于需要绝对实时的业务场景,用的比较多的是Storm,对于其他准实时的业务场景,可以是Storm,也可以是Spark Streaming。

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

2)Storm由哪些核心组件构成,各自担任什么角色?

3)Storm的简单安装和部署。

4)自己编写Demo程序,使用Storm完成实时数据流计算。

5)什么是Spark Streaming,它和Spark是什么关系?

6)Spark Streaming和Storm比较,各有什么优缺点?

7)使用Kafka + Spark Streaming,完成实时计算的Demo程序。

2.2.12、数据存储

1)离线: 比如,每天将前一天的数据提供到指定的数据源(DB、FILE、FTP)等;离线数据的提供可以采用Sqoop、DataX等离线数据交换工具。

2)实时:比如,在线网站的推荐系统,需要实时从数据平台中获取给用户的推荐数据,这种要求延时非常低(50毫秒以内)。根据延时要求和实时数据的查询需要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。

3)OLAP分析:OLAP除了要求底层的数据模型比较规范,另外,对查询的响应速度要求也越来越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。如果你的数据模型比较规模,那么Kylin是最好的选择。

4)即席查询:即席查询的数据比较随意,一般很难建立通用的数据模型,因此可能的方案有:Impala、Presto、SparkSQL。

2.2.13、机器学习

在常用实际业务中,多用机器学习来解决的问题大概以下三类:

1)分类问题:包括二分类和多分类,二分类就是解决了预测的问题,就像预测一封邮件是否垃圾邮件;多分类解决的是文本的分类;

2)聚类问题:从用户搜索过的关键词,对用户进行大概的归类。

3)推荐问题:根据用户的历史浏览和点击行为进行相关推荐。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羌俊恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值