Unit3:大数据技术进阶(Hadoop)

Unit3:大数据技术进阶(Hadoop)

本章节学习目标:

1. 了解大数据概论
2. 大数据技术之Hadoop
3. 掌握Hadoop运行环境搭建
4. 熟悉Hadoop运行模式
5. Hadoop编译源码
6. 常见错误以及解决方案


一、大数据概念

1 概论:

大数据是什么?

大数据(Big data)其实很简单,大数据其实就是海量资料巨量资料,这些巨量资料来源于世界各地随时产生的数据,在大数据时代,任何微小的数据都可能产生不可思议的价值。
( 详见:https://baike.baidu.com/item/大数据/1356941?fr=aladdin)

2 特点 :

4V指的是什么?4V有哪些?

  1. 大量(Volume):
    ——随着信息技术的高速发展,数据开始爆发性增长。
  2. 高速(Velocity):
    ——大数据的产生非常迅速,主要通过互联网传输。
  3. 多样(Variety):
    ——广泛的数据来源,决定了大数据形式的多样性。
  4. 低价值密度(Value):
    ——是大数据的核心特征。
3 大数据价值体现

大数据适用于哪些领域?

答:目前大数据已经在营销、金融 、工业、医疗、教育、交通、保险、执法、体育、政府、旅游、物流等领域应用。未来大数据将覆盖全行业。

4 大数据部门组织结构

Unit3:大数据技术进阶(Hadoop)_第1张图片


二、Hadoop论坛

Unit3:大数据技术进阶(Hadoop)_第2张图片

1 Hadoop简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。主要是为了解决海量数据的存储与分析。从广义上来讲,它指的是一个更广泛的概念——Hadoop生态圈。Unit3:大数据技术进阶(Hadoop)_第3张图片
(详见Hadoop官网:hadoop.apache.org/)

2 Hadoop优势
  1. 高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
  2. 高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
  3. 高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
  4. 高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
  5. 低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
3 Hadoop发型版本
  1. Apache版本最原始(最基础)的版本,对于入门学习最好。
  2. Cloudera在大型互联网企业中用的较多。
  3. Hortonworks文档较好。
4 Hadoop构成成分

Hadoop1代与Hadoop2代的区别是什么?

Unit3:大数据技术进阶(Hadoop)_第4张图片

1 HDFS架构

HDFS(Hadoop Distributed File System),它是一个分布式文件系统,用于存储文件,通过目录树来定位文件;适合一次写入,多次读出的场景,且不支持文件的修改;具有高容错性,可以构建在连接的服务器上,主要是为了解决海量数据的存储问题。

1)NameNode:它是一个主管,管理者

  1. 管理HDFS的名称空间
  2. 配置副本策略
  3. 管理数据块Block映射信息
  4. 处理客户端读写请求

2)DataNode:执行实际的操作,执行者

  1. 存储实际的数据块
  2. 执行数据块的读/写操作

3)Client:客户端

  1. 文件切分,文件上传HDFS时,client将文件切分成一个一个的Block,然后进行上传
  2. 与NameNode交互,获取文件的位置信息
  3. 与DataNode交互,读取或者写入数据
  4. client提供一些命令来管理HDFS,比如NameNode格式化
  5. client可以通过一些命令来访问HDFS,比如对HDFS增删查改操作

4)Secondary NameNode:不是NameNode的热备,它不能在NameNode挂掉时替换NameNode并提供服务

  1. 辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode
  2. 在紧急情况下,可辅助恢复NameNode
2 YARN架构

YARN是Hadoop2.0版本新引入的资源管理系统,直接从MR1演化而来。将MR1中JobTracker的资源管理和作业调度两个功能分开,分别由ResourceManager和ApplicationMaster进程来实现。

1)ResourceManager:负责整个集群的资源管理和调度。

  1. 处理客户端请求;
  2. 启动或监控ApplicationMaster;
  3. 监控NodeManager;
  4. 资源的分配与调度。

2)NodeManager:管理一个YARN集群中的每个节点。NodeManager提供针对集群中每个节点的服务,从监督对一个容器的终生管理到监视资源和跟踪节点健康。

  1. 单个节点上的资源管理;
  2. 处理来自ResourceManager上的命令;
  3. 处理来自ApplicationMaster上的命令。

3)ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等。

  1. 负责数据的切分;
  2. 为应用程序申请资源并分配给内部的任务;
  3. 任务的监控与容错。

4) Container: 对任务运行环境进行抽象,封装CPU、内存等多维度的资源以及环境变量、启动命令等任务运行相关的信息。

3 MapReduce架构

MapReduce是一个分布式运算程序的编程框架,是用户开发"基于Hadoop的数据分析应用"的核心框架。它的核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一Hadoop集群上。

Unit3:大数据技术进阶(Hadoop)_第5张图片


三、Hadoop环境搭建

(详见Hadoop官网:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html)


四、Hadoop运行模式

  1. 本地运行模式
  1. 伪分布式运行模式
  1. 全分布式运行模式

五、常见错误以及解决方案

1)防火墙没关闭、或者没有启动
2)主机名称配置错误
3)IP地址配置错误
4)ssh没有配置好
5)root用户和jinghang两个用户启动集群不统一
6)配置hadoop下的etc/hadoop配置文件如xxx.sh文件或者xxx-site.xml文件文件修改不细心
7)未编译源码
8)缺少配置主机名称
9)全局变量hadoop java没有生效


六、面试官拷问:

  1. 请列出正常的hadoop集群中hadoop都分别需要启动哪些进程?他们的作用分别都是什么?请尽量列的详细一些。
  2. NameNode故障处理的两种方式是什么?请分别列举出来,尽可能详细的分析。
  3. Hadoop1.x和Hadoop2.x的区别是什么?Hadoop三种运行模式是什么?
  4. hadoop集群中如何设置黑名单和白名单?作用分别是什么?
  5. 描述namenode和secondaryname的工作机制?
  6. 为什么hdfs不善于存储大量小文件?如果遇到大量小文件需要存储,有什么解决方案来存储这些小文件?
  7. 集群什么时候进入安全模式?安全模式下有什么限制?安全模式下做了什么?集群启动后满足什么条件会退出安全模式?安全模式的相关命令有哪些,有什么作用?
  8. 持续更新…

你可能感兴趣的:(大数据第一阶段,大数据,hadoop,分布式,hdfs,mapreduce)