太平洋大逃杀亲历者自述,原来大数据如此....

目录

一、Hadoop生态圈组件介绍

1、HDFS(分布式文件系统)

2、MapReduce(分布式计算框架)

3、Spark(分布式计算框架)

4、Flink(分布式计算框架)

5、Yarn/Mesos(分布式资源管理器)

6、Zookeeper(分布式协作服务)

7、Sqoop(数据同步工具)

8、Hive/Impala(基于Hadoop的数据仓库)

9、HBase(分布式列存储数据库)

10、Flume(日志收集工具)

11、Kafka(分布式消息队列)

12、Oozie(工作流调度器)

二、Mapreduce概述

总结来说,Mapreduce就是是一个软件框架,海量数据是它的“菜”,它在大规模集群上以一种可靠且容错的方式并行地“烹饪这道菜”。

三、Spark技术特点与概述

1.Spark的技术特点

2. Spark的知识范畴

3.Spark的架构

四、Mapreduce与Spark的区别 

内存计算

执行速度

API 和编程模型 

扩展性

容错性

五、结构化数据与非结构化数据

结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据。

非结构化数据:不方便用数据库二维逻辑表来表现的数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。

六、Linux简单操作命令实训练习 


一、Hadoop生态圈组件介绍

Hadoop是目前应用最为广泛的分布式大数据处理框架,其具备可靠、高效、可伸缩等特点。

Hadoop的核心组件是HDFS、MapReduce。随着处理任务不同,各种组件相继出现,丰富Hadoop生态圈,目前生态圈结构大致如图所示:

1、HDFS(分布式文件系统)

HDFS是整个hadoop体系的基础,负责数据的存储与管理。HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。

2、MapReduce(分布式计算框架)

MapReduce是一种基于磁盘的分布式并行批处理计算模型,用于处理大数据量的计算。其中Map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间,Reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。

3、Spark(分布式计算框架)

Spark是一种基于内存的分布式并行计算框架,不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

4、Flink(分布式计算框架)

Flink是一个基于内存的分布式并行处理框架,类似于Spark,但在部分设计思想有较大出入。对 Flink 而言,其所要处理的主要场景就是流数据,批数据只是流数据的一个极限特例而已。

5、Yarn/Mesos(分布式资源管理器)

YARN是下一代MapReduce,即MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的。

6、Zookeeper(分布式协作服务)

解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。

7、Sqoop(数据同步工具)

Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。

8、Hive/Impala(基于Hadoop的数据仓库)

Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。

9、HBase(分布式列存储数据库)

HBase是一个建立在HDFS之上,面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。

10、Flume(日志收集工具)

Flume是一个可扩展、适合复杂环境的海量日志收集系统。它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。

11、Kafka(分布式消息队列)

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。实现了主题、分区及其队列模式以及生产者、消费者架构模式。

12、Oozie(工作流调度器)

Oozie是一个可扩展的工作体系,集成于Hadoop的堆栈,用于协调多个MapReduce作业的执行。它能够管理一个复杂的系统,基于外部事件来执行,外部事件包括数据的定时和数据的出现。

二、Mapreduce概述

Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。这个定义里面有着这些关键词,一是软件框架,二是并行处理,三是可靠且容错,四是大规模集群,五是海量数据集。

总结来说,Mapreduce就是是一个软件框架,海量数据是它的“菜”,它在大规模集群上以一种可靠且容错的方式并行地“烹饪这道菜”。

三、Spark技术特点与概述

1.Spark的技术特点

  1. a. spark是继Hadoop的MapReduce之后,最具影响的大数据框架之一。(易用)
  2. b. Spark生态系统是以Spark core(RDD)为核心提供计算框架。(通用)
  3. c. 微批的流计算(快速)
  4. d. 函数式编程思想(代码简洁)

2. Spark的知识范畴

3.Spark的架构

 Spark架构如下图所示,对于Spark架构中各个组件的解释说明如下。

(1)客户端:用户提交作业的客户端。

(2)Driver:负责运行应用程序的main函数并创建SparkContext,应用程序包含 Driver功能的代码和分布在集群中多个节点上的Executor代码。

(3)SparkContext:应用上下文,控制整个生命周期。

(4)Cluser Manager:资源管理器。

(5)Spark Worker:集群中任何可以运行应用程序的节点,运行一个或多个Executor进程。

(6)Executor:运行在Spark Worker上的任务(Task)执行器。

(7)Task:被发送到某个Executor的具体任务。

四、Mapreduce与Spark的区别 

  • 内存计算

    Spark 将数据存储在内存中进行计算;MapReduce 将数据存储在磁盘上由于内存访问速度更快,spark 在处理迭代计算和交互式查询等工作负载时通常比 MapReduce 更高效。

  • 执行速度

      Spark 的内存计算特性基于DAG有向无环图 的执行模型,通常比 MapReduce更快。                  Spark可以在内存中保留数据和计算结果,并通过多个任务合并为更少的阶段来减少磁盘的读          写开销。

  • API 和编程模型 

      Spark提供了丰富的API,包括 scala、Java、Python等。开发起来更加灵活、表达能力更               强。而 MapReduce 使用 Java 编程语言来编写 Map 和 Reduce 函数,需要手动编写更多的           代码来实现处理逻辑。

  • 扩展性

     Spark 有更好的扩展性,可以方便的与其他数据处理框架和工具集成。如:Spark Streaming          用于流处理、Spark SQL 用于查询和结构化数据处理、Spark MLlib用于机器学习等。

  • 容错性

     Spark提供了弹性式分布数据集RDD,具有自动容错和数据恢复机制。能够在节点故障时重新         计算丢失的数据。

     MapReduce 需要在每个任务的开始和结束时将数据写入磁盘,因此在故障情况下需要重新启         动整个计算。

五、结构化数据与非结构化数据

结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据。
非结构化数据:不方便用数据库二维逻辑表来表现的数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。

六、Linux简单操作命令实训练习 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值