加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

学Hadoop你必须要知道的

发布时间:2019-08-07 02:24:26 所属栏目:教程 来源:大数据三十四号
导读:文章目录: 一、理论知识 1.Hadoop的整体印象 2.Hadoop的优势 3.Hadoop可以做什么 4.Hadoop结构 4.1 Hadoop存储--HDFS 4.2 Hadoop计算--MapReduce 4.3 Hadoop资源管理--YARN 5.Hadoop生态 二、Hadoop实际操作 本文内容诸多借鉴,在借鉴处会表示出处,可在出
副标题[/!--empirenews.page--]

学Hadoop你必须要知道的

文章目录:

一、理论知识

1.Hadoop的整体印象

2.Hadoop的优势

3.Hadoop可以做什么

4.Hadoop结构

4.1 Hadoop存储--HDFS

4.2 Hadoop计算--MapReduce

4.3 Hadoop资源管理--YARN

5.Hadoop生态

二、Hadoop实际操作

本文内容诸多借鉴,在借鉴处会表示出处,可在出处查看详情。

一、理论知识

  • 参考Hadoop是什么,能干什么,怎么使用

1.Hadoop的整体印象

一句话概括:Hadoop就是存储海量数据和分析海量数据的工具。

Hadoop是由java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce。

HDFS是一个分布式文件系统:引入存放文件元数据信息的服务器Namenode和实际存放数据的服务器Datanode,对数据进行分布式储存和读取。

MapReduce是一个计算框架:MapReduce的核心思想是把计算任务分配给集群内的服务器里执行。通过对计算任务的拆分(Map计算/Reduce计算)再根据任务调度器(JobTracker)对任务进行分布式计算。

2.Hadoop的优势

  • 高可靠性 : Hadoop 按位存储和处理数据的能力值得人们信赖。
  • 高扩展性 : Hadoop 是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以干计的节点中。
  • 高效性 : Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
  • 高容错性 : Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分。
  • 低成本 : 与一体机、商用数据仓库以及 QlikView、 Yonghong Z- Suites 等数据集市相比,Hadoop 是开源的,项目的软件成本因此会大大降低。Hadoop 带有用 Java 语言编写的框架,因此运行在 linux 生产平台上是非常理想的, Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。

3.Hadoop可以做什么

  • 可以大数据存储:分布式存储
  • 日志处理:擅长日志分析
  • ETL:数据抽取到oracle、mysql、DB2、mongdb及主流数据库
  • 机器学习: 比如Apache Mahout项目
  • 搜索引擎:Hadoop + lucene实现
  • 数据挖掘:目前比较流行的广告推荐,个性化广告推荐

Hadoop是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式。

实际应用:

Flume+Logstash+Kafka+Spark Streaming进行实时日志处理分析

学Hadoop你必须要知道的

酷狗音乐的大数据平台

学Hadoop你必须要知道的

4.Hadoop结构

  • 参考Hadoop 系列(一)基本概念

4.1 Hadoop存储–HDFS

Hadoop 的存储系统是 HDFS(Hadoop Distributed File System)分布式文件系统,对外部客户端而言,HDFS 就像一个传统的分级文件系统,可以进行创建、删除、移动或重命名文件或文件夹等操作,与 Linux 文件系统类似。

Hadoop HDFS 的架构是基于一组特定的节点构建的(见图s),这些节名称节点(NameNode,仅一个),它在 HDFS 内部提供元数据服务;第二名称节点(Secondary NameNode),名称节点的帮助节点,主要是为了整合元数据操作(注意不是名称节点的备份);数据节点(DataNode),它为 HDFS 提供存储块。由于仅有一个 NameNode,因此这是 HDFS 的一个缺点(单点失败,在 Hadoop2.x 后有较大改善)。存储在 HDFS 中的文件被分成块,然后这些块被复制到多个数据节点中(DataNode),这与传统的 RAID 架构大不相同。块的大小(通常为 128M)和复制的块数量在创建文件时由客户机决定。名称节点可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。

(1)名称节点(NameNode)

它是一个通常在HDFS架构中单独机器上运行的组件,负责管理文件系统名称空间和控制外部客户机的访问。NameNode决定是否将文件映射到DataNode上的复制块上。对于最常见的3个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。

(2)数据节点(DataNode)

数据节点也是一个通常在HDFS架构中的单独机器上运行的组件。Hadoop集群包含一个NameNode和大量DataNode。数据节点通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。

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

(3)第二名称节点(Secondary NameNode)

第二名称节点的作用在于为HDFS中的名称节点提供一个Checkpoint,它只是名称节点的一个助手节点,这也是它在社区内被认为是Checkpoint Node的原因。

如下图所示,fsimage 是 NameNode 启动时对整个文件系统的快照;edits 是在 NameNode 启动后对文件系统的改动序列。

只有在NameNode重启时,edits才会合并到fsimage文件中,从而得到一个文件系统的最新快照。但是在生产环境集群中的NameNode是很少重启的,这意味着当NameNode运行很长时间后,edits文件会变得很大。而当NameNode宕机时,edits就会丢失很多改动。

学Hadoop你必须要知道的

如图 1-4 所示,Secondary NameNode 会定时到 NameNode 去获取名称节点的 edits,并及时更新到自己 fsimage 上。这样,如果 NameNode 宕机,我们也可以使用 Secondary-NameNode 的信息来恢复 NameNode。并且,如果 Secondary NameNode 新的 fsimage 文件达到一定阈值,它就会将其拷贝回名称节点上,这样 NameNode 在下次重启时会使用这个新的 fsimage 文件,从而减少重启的时间。

学Hadoop你必须要知道的

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读