章节 | 主题 |
---|---|
第01章 | 大数据行业与技术趋势 |
第02章 | HDFS技术原理 |
第03章 | MapReduce和YARN技术原理 |
第04章 | Spark2x技术原理 |
第05章 | HBase技术原理 |
第06章 | Hive简介 |
第07章 | Streaming技术原理 |
第08章 | Flink技术原理 |
第09章 | Loader技术原理 |
第10章 | Flume技术原理 |
第11章 | Kafka技术原理 |
第12章 | ZooKeeper集群分布式协调服务 |
第1章 大数据行业与技术趋势
- 大数据从什么地方来?这些数据有哪些特点?
答:大数据是指利用常用软件工具捕获、管理和处理数据所耗时间超过可容忍时间的数据集。
特点 4V
- 体量巨大(Volume)
- 处理速度(Velocity)
- 类型繁多(Variety)
- 价值密度低(Value)
-
大数据可以应用在哪些社会领域?
答:政治、金融、教育、出行、旅游、政府公共安全、交通规划及体育 -
华为大数据解决方案叫什么?
答:叫FusionInsight
华为大数据解决方案
第2章 HDFS技术原理

HDFS特性
高容错性:认为硬件总是不可靠的。
高吞吐量:为大量数据访问的应用提供高吞吐量支持。
大文件存储:支持存储TB-PB级别的数据。
- HDFS是什么,适合于做什么?
定义:HDFS是Hadoop技术框架中的分布式文件系统,对部署在独立物理机器上的文件进行管理。
适合:1、大文件存储与访问;2、流式数据访问。
不适合:1、大量小文件存储;2、随机写入;3、低延迟读取。
可用于多种场景,如:
- 网站用户行为数据存储
- 生态系统数据存储
- 气象数据存储
-
HDFS包含哪些角色?
角色包括:Client、NameNode、DataNodes、Blocks
HDFS基本系统架构
-
请简述HDFS的读写流程。
HDFS读写流程
HDFS读取流程

第3章 MapReduce和YARN技术原理





- 请简述YARN的工作原理
- Apache Hadoop YARN(Yet Another Resource Negotiator),另一种资源协调者是一种新的Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。










第4章 Spark2x技术原理
- 2009年诞生于美国加州大学伯克利分校AMP实验室。
- ApacheSpark是一种基于内存的快速、通用、可扩展的大数据计算引擎。
- Spark是一站式解决方案,集批处理、实时流处理、交互式查询、图计算与机器学习于一体。

-
Spark的特点有哪些?
image.png
-
Spark相对于MR的优势是什么?
- 基于内存,处理更加高效快速
-
其血统机制可以保证更强的容错性
image.png
image.png
-
Spark 宽依赖窄依赖的区别是什么?
主要看父到子之间的对应关系
一对一是窄依赖
一对多是宽依赖 -
Spark的应用场景有哪些?
Spark应用场景
-
RDD的算子分为:
- Transformation
- Transformation是通过转换从一个或多个RDD生成新的RDD,该操作是lazy的,当调用action算子,才发起job。
- 典型算子:map、flatMap、filter、reduceByKey等。
- Action
- 当代码调用该类型算子时,立即启动job。
- 典型算子:take、count、saveAsTextFile等。
-
SparkCore模块是Spark最核心的模块
image.png
image.png
image.png
image.png
image.png
7.RDD的依赖类型分为

第5章 HBase技术原理
- HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。
- 适合于存储大表数据(表的规模可以达到数十亿行以及数百万列),并且对大表数据的读、写访问可以达到实时级别。
- 利用Hadoop HDFS (Hadoop Distributed File System) 作为其文件存储系统,提供实时读写的分布式数据库系统。
- 利用ZooKeeper作为协同服务。

HBase应用场景
- HBase适合具有如下需求的应用:
- 海量数据(TB、PB) 。
- 不需要完全拥有传统关系型数据库所具备的ACID特性。
- 高吞吐量。
- 需要在海量数据中实现高效的随机读取。
- 需要很好的性能伸缩能力。
- 能够同时处理结构化和非结构化的数据。
HBase在FusionInsight中的位置
- HBase作为一个高可靠性、高性能、面向列、可伸缩的分布式数据库,提供海量数据存储功能,用来解决关系型数据库在处理海量数据时的局限性。

HBase 思考题
-
HBase的Region在split时可以提供服务吗?
答:正在split的Region不可以提供服务,但一张表当中可以有多个Region,当前处于split的Region不影响其他Region提供服务。 -
HBase的Region split有何好处?
答:split可以完成一个负载均衡的过程。


第6章 Hive简介
Hive是基于Hadoop的数据仓库软件,可以查询和管理PB级别的分布式数据。

Hive特性:
- 灵活方便的ETL(extract/transform/load)。
- 支持MapReduce,Tez,Spark等多种计算引擎。
- 可直接访问HDFS文件以及HBase。
- 易用易编程。





第7章 Streaming技术原理
Streaming基于开源Storm,是一个分布式、实时计算框架
Streaming具有以下几种特点:
- 实时响应,低延迟
- 数据不存储,先计算
- 连续查询
- 事件驱动

Streaming是一个实时的分布式的实时计算框架,在实时业务中有广泛应用。
Streaming应用场景
- 实时分析:如实时日志处理、交通流量分析等。
- 实时统计:如网站的实时访问统计、排序等。
- 实时推荐:如实时广告定位、事件营销等。
基本概念
- Topology:Streaming中运行的一个实时应用程序。
- Nimbus:负责资源分配和任务调度
- Supervisor:负责接受Nimbus分配的任务,启动和停止属于自己管理的worker进程。
- Worker:Topology运行时的物理进程。每个Worker是一个JVM进程。
- Spout:在一个Topology中产生源数据流的组件。
- Bolt:在一个Topology中接受数据然后执行处理的组件。
- Task:Worker中每一个Spout/Bolt的线程称为一个task。
- Tuple:Streaming的核心数据结构,是消息传递的基本单元,不可变Key-Value对,这些Tuple会以一种分布式进行创建和处理。
- Stream:一个无边界的连续Tuple序列。
- ZooKeeper:为Streaming服务中各进程提供分布式协作服务。主备Nimbus、Supervisor、Worker将自己的信息注册到ZooKeeper中,Nimbus据此感知各个角色的健康状态。

思考题
-
Streaming是如何保障消息可靠性?
消息可靠性


第8章 Flink技术原理
- Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。
- Flink与Storm类似,属于事件驱动型实时流系统。

Flink应用场景
- Flink最适合的应用场景是低时延的数据处理场景:高并发处理数据,时延毫秒级,且兼具可靠性。
- 典型应用场景有:
- 互联网金融业务
- 点击流日志处理
- 舆情监控
Flink关键特性
- 低时延
- 提供ms级时延的处理能力。
- Exactly Once
- 提供异步快照机制,保证所有数据真正只处理一次。
- HA
- JobManager支持主备模式,保证无单点故障。
- 水平扩展能力
-
TaskManager支持手动水平扩展。
Hadoop兼容性
-




FusionInsight HD提供大数据处理环境,基于社区开源软件增强,按照场景选择业界最佳实践。
Flink是批处理和流处理结合的统一计算框架,用于高并发pipeline处理数据,时延毫秒级的场景响应,且兼具可靠性。
Flink思考题
-
Flink的特点有哪些?
Flink特点
-
Flink的常用窗口类型有哪些?
Tumbling Windows


第9章 Loader技术原理
什么是Loader
Loader是实现FusionInsightHD与关系型数据库、文件系统之间交换数据和文件的数据加载工具。提供可视化向导式的作业配置管理界面;提供定时调度任务,周期性执行Loader作业;在界面中可指定多种不同的数据源、配置数据的清洗和转换步骤、配置集群存储系统等。

Loader特点

思考题
-
判断题:FusionInsight的Loader仅支持从关系型数据库与Hadoop的HDFS的HBase之间的数据导入、导出。(F)
-
判断题:Loader作业必须配置转换步骤。( F)


第10章 Flume技术原理
-
Flume是开源日志系统。是一个分布式、可靠和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
-
Flume是流式日志采集工具,Flume提供对数据进行简单处理并且写到各种数据接受方(可定制)的能力,Flume提供从本地文件(spooling directory source)、实时日志(taildir、exec)、REST消息、Thrift、Avro、Syslog、Kafka等数据源上收集数据的能力。

思考题
1.Flume是什么,可以用来干什么?
答:Flume是流式日志采集工具,Flume提供对数据进行简单处理并且写到各种数据接受方(可定制)的能力,Flume提供从本地文件(spooling directory source)、实时日志(taildir、exec)、REST消息、Thrift、Avro、Syslog、Kafka等数据源上收集数据的能力。

2.Flume有哪些关键特性?







3.Source/Channel/Sink分别有什么作用?



4.Flume可以级联:即可以多个Flume之间可以传输数据。(T or R)
答:T
第11章 Kafka技术原理
Kafka定义:Kafka是一个高吞吐、分布式、基于发布订阅的消息系统,利用Kafka技术可在廉价PC Server上搭建起大规模消息系统。

- Kafka应用场景简介
- Kafka和其他组件比较,具有消息持久化、高吞吐、实时等特性,适用于离线和实时的消息消费,如网站活性跟踪、聚合统计系统运营数据(监控数据)、日志收集等大量数据的数据收集场景。



1、Kafka是如何保障数据可靠的?
答:
- 存储端Kafka基于partition的副本机制实现存储端的消息保障
- 传输端有最少一次和至少一次的保障策略
Kafka所有消息都会被持久化到硬盘中,同时Kafka通过对Topic Partition设置Replication来保障数据可靠。


2、Kafka客户端提供的Shell命令可以对Topic进行哪些操作?
答:create/delete/list/describe
第12章 ZooKeeper集群分布式协调服务
-
ZooKeeper分布式服务框架主要是用来解决分布式应用中经常遇到的一些数据管理问题,提供分布式、高可用性的协调服务能力。
-
安全模式下ZooKeeper依赖于Kerberos和LdapServer进行安全认证,非安全模式则不依赖于Kerberos与Ldap。ZooKeeper作为底层组件广泛被上层组件使用并依赖,如Kafka,HDFS,HBase,Storm等。


ZooKeeper基于开源Apache ZooKeeper作为底层组件为上层组件提供服务,主要用于解决分布式应用中经常遇到的一些数据管理问题。

ZooKeeper关键特性
- 最终一致性:无论哪个server,对外展示的均是同一个视图。
- 实时性:保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。
- 可靠性:一条消息被一个server接收,它将被所有server接受。
- 等待无关性:慢的或者失效的client不会干预快速的client的请求,使得每个client都能有效的等待。
- 原子性:更新只能成功或者失败,没有中间状态。
- 顺序一致性:客户端所发送的更新会按照它们被发送的顺序进行应用。




思考题
-
ZooKeeper在集群中的位置及作用?
答:ZooKeeper处于底层的位置,为上层组件和应用提供分布式协调的服务。 -
ZooKeeper为什么建议奇数部署?
答:为了更好的完成容灾以及性能达到最大化,ZooKeeper通常采用奇数台的部署。 -
ZooKeeper一致性的含义是什么?
答:无论连接哪一个Server它所拿到的视图和数据都是一致的。
第13章 FusionInsight HD解决方案介绍


e
网友评论