千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:深圳千锋IT培训  >  行业资讯  >  深圳大数据培训学习班学员分享:hadoop学习心得

深圳大数据培训学习班学员分享:hadoop学习心得

来源:千锋教育
发布人:千锋老师
时间: 2018-10-22 16:40:00

  本文由深圳大数据培训学习班学员分享。Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

  它实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。

  HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它

  提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

  Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

rdfhgf片1

  一、Hadoop之优点

  Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。

  1.Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。

  2.Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。

  3.Hadoop 还是可伸缩的,能够处理 PB 级数据。

  此外,Hadoop 依赖于社区服务,因此它的成本比较低,任何人都可以使用。并且Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:

  1.高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。

  2.高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

  3.高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,

  因此处理速度非常快。

  4.高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重

  新分配。

  5.低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市

  相比,hadoop是开源的,项目的软件成本因此会大大降低。Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。

  二、hadoop大数据处理的意义

  Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取,变形和加载(ETL)方面上的天然优势。Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像ETL这样的批处理操作相对合适,因为类似这样操作的批处理结果可以直接走向存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。

  三、核心架构

  Hadoop 由许多元素构成。其最底部是 Hadoop Distributed File Syste(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS(对于本文)的上一层是MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。

  四、HDFS

  对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的,这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个 NameNode,因此这是 HDFS 的一个缺点。

  存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机(DataNode)。这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。

  五、NameNode

  NameNode 是一个通常在 HDFS 实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。注意,这里需要您了解集群架构。而实际的 I/O事务并没有经过 NameNode,只有表示 DataNode 和块的文件映射的元数据经过 NameNode。当外部客户机发送请求要求创建文件时,NameNode 会以块标识和该块的第一个副本的 DataNode IP 地址作为响应。这个 NameNode 还会通知其他将要接收该块的副本的 DataNode。

  NameNode 在一个称为 FsImage 的文件中存储所有关于文件系统名称空间的信息。这个文件和一个包含所有事务的记录文件(这里是 EditLog)将存储在 NameNode 的本地文件系统上。FsImage 和 EditLog 文件也需要复制副本,以防文件损坏或 NameNode 系统丢失。

  NameNode本身不可避免地具有SPOF(Single Point Of Failure)单点失效的风险,主备模式并不能解决这个问题,通过Hadoop Non-stop namenode才能实现100% uptime可用时间。

  六、DataNode

  DataNode 也是一个通常在 HDFS实例中的单独机器上运行的软件。Hadoop 集群包含一个 NameNode 和大量 DataNode。DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。

  DataNode 响应来自 HDFS 客户机的读写请求。它们还响应来自 NameNode 的创建、删除和复制块的命令。NameNode 依赖来自每个 DataNode 的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode 可以根据这个报告验证块映射和其他文件系统元数据。如果 DataNode 不能发送心跳消息,NameNode 将采取修复措施,重新复制在该节点上丢失的块。

  可见,HDFS 并不是一个万能的文件系统。它的主要目的是支持以流的形式访问写入的大型文件。如果客户机想将文件写到 HDFS 上,首先需要将该文件缓存到本地的临时存储。如果缓存的数据大于所需的 HDFS 块大小,创建文件的请求将发送给 NameNode。NameNode 将以 DataNode 标识和目标块响应客户机。

  同时也通知将要保存文件块副本的 DataNode。当客户机开始将临时文件发送给第一个 DataNode 时,将立即通过管道方式将块内容转发给副本 DataNode。客户机也负责创建保存在相同 HDFS名称空间中的校验和(checksum)文件。

  在最后的文件块发送之后,NameNode 将文件创建提交到它的持久化元数据存储(在 EditLog 和 FsImage 文件)。

  七、Linux 集群

  Hadoop 框架可在单一的 Linux 平台上使用(开发和调试时),官方提MiniCluster作为单元测试使用,不过使用存放在机架上的商业服务器才能发挥它的力量。这些机架组成一个 Hadoop 集群。它通过集群拓扑知识决定如何在整个集群中分配作业和文件。Hadoop 假定节点可能失败,因此采用本机方法处理单个计算机甚至所有机架的失败。

  八、hdfs的架构

  Namenode,主master,管理hdfs的名称空间,管理数据块映射信息;配置副本策略;处理客户端读写请求Secondary Namenode:NameNode 的热备份,定期合并fsimage和fsedits,推送NameNode;当Namenode出现故障,快速切换为新的NameNode。

  PS:

  1. fsimage:filesystem image 的简写,文件镜像。客户端修改文件时候,先写到

  editlog,成功后才更新内存中的metadata信息。只有当对文件操作成功的时候,才会写到editlog。

  fsimage是文件meta信息的持久化的检查点。当namenode失败的时候,文件metadata信息可以通过:加载fsimage文件到内存中,在editlog中应用相应的操作,这一操作也是namenode刚启动要干的事情。fsimage文件中包含文metadata信息,不包含文件块位置的信息。namenode把文件块位置信息存储在内存中,这些位置信息是,在 datanode加入集群的时候,namenode询问datanode得到的,并且间断的更新。

  fsimage保存了最新的元数据检查点,在HDFS启动时加载fsimage的信息,包含了整个HDFS文件系统的所有目录和文件的信息。 对于文件来说包括了数据块描述信息、修改时间、访问时间等;对于目录来说包括修改时间、访问权限控制信息(目录所属用户,所在组)等。editlog主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到editlog中。

  2.datanode:奴隶,Slave(有多个);存储实际的数据块;执行数据块读 ,写。

  3.client:与 NameNode 交互,获取文件位置信息;与 DataNode 交互,读取或者写入数据;管理 HDFS、访问 HDFS。

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

  5.ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等。每个应用程序对应一个ApplicationMaster。目前可以支持多种计算框架运行在YARN上面比如MapReduce、Storm、Spark、Flink等。

  千锋深圳大数据培训机构老师的回答是:大数据技术是个好东西,但就不知道你能不能运用的炉火纯青了,运用的好,很有前途;学不会,一文不值!

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

前端培训哪个机构比较好?千锋好吗

2022-11-17

软件测试培训一般多久?学什么?

2022-11-16

python培训管用吗?学完好找工作吗?

2022-11-15

最新文章NEW

html培训教程有用吗?小白怎么入行?

2022-11-28

前端培训速成班深圳这里有吗?哪家好

2022-11-25

哪里的python培训班好?怎么入行

2022-11-23

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>