写给大数据开发初学者的话3

时间:2022-12-28 20:35:51

见:http://lxw1234.com/archives/2016/11/787.htm



如果你已经按照《写给大数据开发初学者的话2》中第三章和第四章的流程认真完整的走了一遍,那么你应该已经具备以下技能和知识点:

  1. 知道如何把已有的数据采集到HDFS上,包括离线采集和实时采集;
  2. 你已经知道sqoop(或者还有DataX)是HDFS和其他数据源之间的数据交换工具;
  3. 你已经知道flume可以用作实时的日志采集;

从前面的学习,对于大数据平台,你已经掌握的不少的知识和技能,搭建Hadoop集群,

把数据采集到Hadoop上,使用Hive和MapReduce来分析数据,把分析结果同步到其他数据源。

接下来的问题来了,Hive使用的越来越多,你会发现很多不爽的地方,特别是速度慢,

大多情况下,明明我的数据量很小,它都要申请资源,启动MapReduce来执行。

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

其实大家都已经发现Hive后台使用MapReduce作为执行引擎,实在是有点慢。

因此SQL On Hadoop的框架越来越多,按我的了解,最常用的按照流行度依次为SparkSQL、Impala和Presto.

这三种框架基于半内存或者全内存,提供了SQL接口来快速查询分析Hadoop上的数据。关于三者的比较,请参考1.1.

我们目前使用的是SparkSQL,至于为什么用SparkSQL,原因大概有以下吧:

  1. 使用Spark还做了其他事情,不想引入过多的框架;
  2. Impala对内存的需求太大,没有过多资源部署;

5.1 关于Spark和SparkSQL

什么是Spark,什么是SparkSQL。
Spark有的核心概念及名词解释。
SparkSQL和Spark是什么关系,SparkSQL和Hive是什么关系。
SparkSQL为什么比Hive跑的快。

5.2 如何部署和运行SparkSQL

Spark有哪些部署模式?
如何在Yarn上运行SparkSQL?
使用SparkSQL查询Hive中的表。

PS: Spark不是一门短时间内就能掌握的技术,因此建议在了解了Spark之后,可以先从SparkSQL入手,循序渐进。

关于Spark和SparkSQL,可参考 http://lxw1234.com/archives/category/spark

如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:

写给大数据开发初学者的话3

第六章:一夫多妻制

请不要被这个名字所诱惑。其实我想说的是数据的一次采集、多次消费。

在实际业务场景下,特别是对于一些监控日志,想即时的从日志中了解一些指标(关于实时计算,后面章节会有介绍),这时候,从HDFS上分析就太慢了,尽管是通过Flume采集的,但Flume也不能间隔很短就往HDFS上滚动文件,这样会导致小文件特别多。

为了满足数据的一次采集、多次消费的需求,这里要说的便是Kafka。

6.1 关于Kafka

什么是Kafka?

Kafka的核心概念及名词解释。

6.2 如何部署和使用Kafka

使用单机部署Kafka,并成功运行自带的生产者和消费者例子。
使用Java程序自己编写并运行生产者和消费者程序。
Flume和Kafka的集成,使用Flume监控日志,并将日志数据实时发送至Kafka。

关于Kafka,可以参考 http://lxw1234.com/archives/category/kafka

如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:

写给大数据开发初学者的话3

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

 

写给大数据开发初学者的话1


写给大数据开发初学者的话2


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

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

写给大数据开发初学者的话3

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

第六章:一夫多妻制

写给大数据开发初学者的话4

第七章:越来越多的分析任务

第八章:我的数据要实时

写给大数据开发初学者的话5

第九章:我的数据要对外

第十章:牛逼高大上的机器学习