![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
BigData-Review
整理我面试大数据岗准备的问题
庐州小白
这个作者很懒,什么都没留下…
展开
-
Hive 中实现数据透视
假设我们现在有一张名为“Scores”的Hive表。NAME SCORE A 1 A 3 A 1 A 5 B 3 B 5 B 1 B 3 B 5 我们现在需要统计出A,B两个人获得分数为1,3,5的票数分别是多少,即最终的结果为下表。NAME 1 3 5 A 2 1 1 B 1 2 2 这其实就一个简单的透视表。为了出现这样的效果。由于原创 2021-06-10 19:00:26 · 1149 阅读 · 0 评论 -
11. Spark 执行原理
一、先学会WordCount我们依然把WordCount当作我们的基本用例,虽然前文已经给了WordCount代码,但是我们想试着写一下。还记得之前MapReduce的WordCount代码吗?明明简单的WordCount结果由于僵化的两阶段编程,导致代码又臭又长,反观Spark,言简意赅,极具美感。第一次写,一定会懵,但是无所谓,我们先思考再动手。我们需要写一个Spark的代码,我们前文说过,Driver进程是Application执行起点,它会执行Application的main函数。所以我们知原创 2020-12-02 17:03:39 · 330 阅读 · 1 评论 -
10. Spark 架构
上图展示了Spark的架构的简单示意。我们不妨先这样认识Spark,它有几个重要的部分:Master Node:它是集群部署时候的概念,是整个集群的控制器,负责集群的正常运行,管理Worker Node。Worker Node:它是计算节点,会接收Master Node的命令,并进行状态汇报。Executors:每个Worker Node上都有一个Executor,它负责完成任务的执行,是一个线程池。Spark集群部署后,需要在主从节点启动Master进程和Worker进程。运行Master进.原创 2020-12-02 16:58:41 · 149 阅读 · 0 评论 -
9. Spark RDD
RDD的全称是Resilient Dirstributed DataSets,叫做弹性分布式数据集。首先,需要明确的一点,它是一个 抽象 数据集,言下之意是,它并不是一个包含数据本体的变量或者集合,而是一个仅保存数据描述的抽象集合,这个集合中存储了该数据的一些信息(数据位置、分区等)。其次,他是一个 分布式 的,也就是,这些数据可能存储在集群上的任何地方,并不是在本地。再者,他是 弹性 的,言下之意是,它既可以保存在内存中,也可能会因为内存空间不足而转而存储到磁盘上的。RDD解决的第一个问题就是数据原创 2020-11-16 20:08:28 · 122 阅读 · 0 评论 -
8. Spark的安装和配置
第1.1节 为什么需要Spark一、MapReduce计算模式的弊端首先,MapReduce的设计是为了用于高吞吐量的批数据处理作业的,本身的延迟就相对较高其次,数据是存储与HDFS中的,数据共享效率低。我们在前面WordCount的例子中可以看到,Job最后的结果必须要落盘。在MapRduce的Shuffle流程中,我们曾经介绍过,MapReduce的数据在Map端处理完成之后也都是存储在磁盘上的,没有很好的利用内存。当然,这一点其实是时代的限制,因为MapReduce模式在设计时,内存还是十分昂原创 2020-11-03 19:48:00 · 162 阅读 · 0 评论 -
7. WordCount
第5.1节 IDEA配置MapReduce编程环境现在Hadoop可以通过配置在Windows下编程。一、解压安装包、配置环境变量(Linux可跳过此步)从官网下载Hadoop二进制包,解压到你想安装的目录即可。由于Hadoop原生不支持Windows,所以需要一个win工具包,你可以从此处下载。将对应版本或者相近版本的 hadoop/bin 目录下的文件全部复制到刚刚解压的Hadoop文件的bin目录下即可。配置Window下的Hadoop路径。右键点击 我的电脑 ,打开 属性 , 打开 高级原创 2020-10-27 17:25:40 · 305 阅读 · 0 评论 -
6. MapReduce中作业(Job)、任务(task)的一生概览
本节内容完全来自深入理解大数据:大数据处理与编程实践 机械工业出版社没啥好说的,直接上内容一、作业首先, 用户程序客户端通过作业客户端接口程序JobClient提交一个用户程序。然后JobClient向JobTracker提交作业执行请求并获得一个Job ID。JobClient同时也会将用户程序作业和待处理的数据文件信息准备好并存储在HDFS中。JobClient正式向JobTracker提交和执行该作业。JobTracker接受并调度该作业,并进行作业的初始化准备工作, 根据待处理数原创 2020-10-27 17:17:06 · 2649 阅读 · 1 评论 -
5. MapReduce中Shuffle
shuffle翻译为中文就叫 ”洗牌“,把一组有一定规则的数据尽量转换成一组无规则的数据,越随机越好。MapReduce中的Shuffle更像是洗牌的逆过程,把一组无规则的数据尽量转换成一组具有一定规则的数据。有些抽象,当前不理解也没关系,先了解一下shuffle的流程。本节内容参考了如下内容[1] MapReduce:详解Shuffle(copy sort merge)过程 https://blog.csdn.net/xiaolang85/article/details/8528892[2] Map原创 2020-10-23 11:40:01 · 253 阅读 · 0 评论 -
4. MapReduce基本原理
我们前面提了一嘴MapReduce。说它是一个采用了分治思想的分布式计算框架,本节我们就进一步细致讨论一下MapReduce。大数据背景下,数据量巨大,这点没有问题。数据巨大带来的问题就是计算耗时、传输耗时。计算耗时无法避免,因为那么大的数据就是需要进行计算的。我们只能想办法提升算力或者优化算法来提升计算的速度。传输耗时却可以避免,或者说优化。MapReduce中采用了计算向数据偏移的策略,尽量维持数据不动,在本地计算,这叫数据本地性。但是很多场合我们无法避免移动数据,但是我们也应该尽量选择靠近的节原创 2020-10-22 14:13:02 · 324 阅读 · 0 评论 -
3. HDFS原理深聊一下
HDFS 是一个分布式文件系统,我们在前面也稍微讨论了一下集中式文件系统的一些弊端,我们还是从之前的那张HDFS架构图出发。当我们开始关注线条所代表的数据流向后,其实上图就可以看作是一个HDFS数据读写的流程图了。在探讨具体的读写之前,我们先看看不同节点中存储的数据。第3.1节 再谈不同的节点应用程序所在的Client端先过滤掉,因为这个端只是承载了与用户的交互作用,其实就是一台接口机。用户在这台机器写代码、调用API与HDFS进行交互。我们前面说过,NameNode是集群的主控节点,管理HDF原创 2020-10-19 13:36:45 · 501 阅读 · 2 评论 -
2. Hadoop的安装(这你都没装好,我就服了)
为了方便后面使用Hadoop的shell命令,我先介绍Hadoop的安装。Hadoop有多种安装模式,这里介绍伪分布式的安装。我测试过Ubutun、Centos和WSL,都可以正常安装Hadoop的所有版本。所有一般不会出现版本对应的问题。Hadoop是基于Java语言进行编写的,在Hadoop程序执行过程中会调用起系统环境的java虚拟机(JVM),所以我们的系统中需要安装JDK。直接搜索JDK进入官网下载即可。考虑到目前的Hadoop基本上都是基于JDK1.8的,建议下载JDK1.8,高版本的Ja原创 2020-10-13 16:23:14 · 321 阅读 · 3 评论 -
1. Hadoop原理简述
第1.1节 Hadoop架构Hadoop系统由两部分组成,分别是分布式文件系统HDFS (Hadoop Distributed File System) 和分布式计算框架MapReduce。其中,分布式文件系统主要用于大规模数据的分布式存储,而MapReduce则构建在分布式文件系统之上,对存储在分布式文件系统中的数据进行分布式计算。下图简单展示了Hadoop系统的架构。从图中可以清晰的看出Hadoop系统由MapReduce和HDFS两个部分组成。虚实线代表了其中的数据流向,在后期HDFS和MapR原创 2020-10-13 16:18:29 · 3323 阅读 · 2 评论