《大数据开发》hadoop-hdfs

Steve_Abelieve Steve_Abelieve     2022-11-23     381

关键词:

快速入门
官方文档

Hadoop

Hadoop 是一个开源的, 可靠的(reliable), 可扩展的(scalable)分布式计算框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集(python java …)。

可扩展: 从单个服务器可以横向扩张到数千台计算机,每台计算机都提供本地计算和存储。

可靠的: 不依靠硬件来提供高可用性(high-availability),而是在应用层检测和处理故障,从而在计算机集群之上提供高可用服务。

HDFS

Hadoop Distributed File System (HDFs):分布式文件系统,用来存储海量数据。

重要的5个守护进程

不同网络服务器运行一组守护进程,每个进程有着特殊的角色。

  1. NameNode(名字节点)
  2. DataNode(数据节点)
  3. Secondary NameNode(次名字节点)
  4. JobTracker(作业跟踪节点)
  5. TaskTracker(任务跟踪节点)

NameNode(名字节点)

Hadoop 分布式计算,分布式存储都是采用了主从结构。分布式存储被称作HDFS。 NameNode位于HDFS主端,指导从端的DataNode执行底层的I/O 任务。
跟踪文件如何被分割成文件块,而这些块又被哪些几点存储,以及分布式文件系统的整体运行状态是否正常。

DataNode(数据节点)
每个集群的从节点都会驻留一个DataNode守护进程,来执行分布式文件系统的繁重工作,将HDFS数据块读取或者写入到本地文件系统的实际文件中。

由NameNode告知客户端每个数据块驻留在哪个DataNode,客户端直接与DataNode守护进程进行通信。来处理与数据块对应的本地文件,而后,DataNode 与其他DatNode进行通信,复制这些数据块以实现数据冗余。

DataNode 不断向NameNode报告,初始化时,DatNode将当前存储的数据块信息告知NameNode,初始映射完成后,DataNode仍不断更新NameNode,为之提供本地修改相关信息,同时接收指令创建、移动或者删除本地磁盘上的数据块。

  1. 管理各个datanode
  2. 管理文件信息,文件名、文件多大、文件被切块、存贮位置信息,即管理元数据信息。
  3. 基于RPC心跳机制控制集群中各个节点(datanode)的状态。
  4. namenode存在单点故障问题,可以在起一个SecondaryNameNode用来保证元数据信息安全。
  5. datanode挂掉后,数据丢失,因此需要控制datanode 的备份,默认3份,本机一份。

Secondary NameNode(次名字节点)

SNN,一个用于检测HDFS集群状态的辅助守护进程,像NameNode一样,每个集群有一个SNN,它通常也独占一台服务器。
SNN与NanmeNode 不同在于它不接收或者记录HDFS的任何实时变化,相反,它与NameNode进行通信,根据集群所配置的时间间隔获取HDFS元数据的快照。
SNN快照有助于减少停机时间并降低数据丢失的风险,
NameNode失效处理需要人工的干预,即手动地重新配置集群,将SNN用作主要的NameNode.

JobTracker(作业跟踪节点)
应用程序和Hadoop之间的纽带,一旦代码提交到集群上,JobTracker将会确定执行计划,包括处理哪些文件,为不同任务分配节点以及监控所有任务的执行。如果任务执行失败,JobTracker将会自动重启任务,但所分配的节点可能会不同,同时受到预定义的重试次数限制。
每个Hadoop集群只有一个JobTracker守护进程,它通常运行在服务器集群的主节点上。

TaskTracker(任务跟踪节点)
管理各个任务在每个从节点上的执行情况。
每个TaskTacker负责执行由JobTacker分配的单项任务。
一个职责是持续不断地与JobTracker进行通信,如果规定时间内,JobTracker没有收到来自的心跳,假定JobTracker已经崩溃了,进行重新提交相应的任务到集群中的其他节点中。

1. 架构图


HDFS 读流程

HDFS 写流程

优点:

1.支持文件存储,TB、PB级别的数据,如每日的用户行为log。
2.高容错性
3.横向扩展的花费呈线性
4.快速响应硬件故障

缺点:

1.类似数据库一样的低延迟访问数据,响应时间毫秒级别。
2.不适合大量存储小文件。
3.不适合多次修改数据,写入文件。

hadoop-hdfs(代码片段)

Hadoop-HDFS1HDFS概述1.1HDFS产出背景及定义1.2HDFS优缺点1.3HDFS组成架构1.4HDFS文件块大小(面试重点)2HDFS的Shell操作(开发重点)2.1基本语法2.2命令大全2.3常用命令实操2.3.1上传2.3.2下载2.3.3HDFS直接操作3HDFS的API操作3.1客... 查看详情

hadoop-hdfs文件系统(代码片段)

目录HDFS文件系统 1、文件系统定义2、大数据时代,面对海量数据,传统的文件存储系统会面临哪些挑战?3、分布式存储系统的核心属性及功能含义一、分布式存储的优点二、元数据记录的功能三、分块存储好处四、... 查看详情

大数据专业应该怎么学习

...存储+分布式调度+数据分析的结合:数据存储:Hadoop-HDFS用户高可靠性的来存储原始数据;分布式调度:Hadoop-YARN用户分布式任务调度管理分配任务;数据分析:Hadoop-MapReduce任务处理分析引擎。学习大数据需要掌握什... 查看详情

hadoop-hdfs压测针对hdfs进行读写性能测试(代码片段)

【Hadoop-HDFS压测】针对HDFS进行读写性能测试1)测试工具2)写入数据测试3)读取数据测试4)清除数据1)测试工具Hadoop自身集成的工具包:hadoop-mapreduce-client-jobclient-3.1.1.jar注意:1、如果是Apache版本安装的Hadoop默认在lib目录下,如... 查看详情

hadoop-hdfs-读写流程

          查看详情

一文带你了解大数据技术之hdfs

大数据技术之Hadoop-HDFS概述1.HDFS产出背景及定义2.HDFS优缺点3.HDFS组成架构4.HDFS文件块大小1.HDFS产出背景及定义1)HDFS产生背景随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管... 查看详情

hadoop-hdfs

HDFS-写文件1.客户端将文件写入本地磁盘的N#x4E34;时文件中2.当临时文件大小达到一个block大小时,HDFSclient通知NameNode,申请写入文件3.NameNode在HDFS的文件系统中创建一个文件,并把该blockid和要写入的DataNode的列表返回给客户端4.客... 查看详情

hadoop-hdfs简介中文文档中英对照文档下载

hadoop-hdfs文档下载链接(含jar包、源码、pom)组件名称中文-文档-下载链接中英对照-文档-下载链接hadoop-hdfs-2.5.1.jarhadoop-hdfs-2.5.1-API文档-中文版.ziphadoop-hdfs-2.5.1-API文档-中英对照版.ziphadoop-hdfs-2.6.5.jarhadoop-hdfs-2.6.5-API文档 查看详情

hadoop-hdfs-环境搭建配置解读(代码片段)

官网:http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-common/SingleCluster.htmlHadoopMapReduceNextGeneration-SettingupaSingleNodeCluster.HadoopMapReduceNextGeneration-SettingupaSingleNode 查看详情

大数据开发及和大数据相关的技术

...随着互联网技术飞速的发展,目前有不少朋友询问关于大数据方面的问题,比如什么是大数据开发啊,和大数据相关的技术是什么呢等问题,我们今天就浅谈一下大数据开发及和大数据相关的技术的问题。     首先,大... 查看详情

大数据技术系列:图解大数据平台开发

导言在前面的文章《「大数据技术体系」学习实践导览》中,概要式的梳理了大数据平台的业务目标,大数据平台的架构框架,大数据平台中常用的技术及工具,数据治理四方面的内容,算是对自身所了解大数据知识体系的抛砖... 查看详情

❤️大数据开发必备:推荐7款大数据开发神器工作效率提升1000%推荐收藏(代码片段)

...码农的意思,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。manor学习大数据开发满打满算也有一年了,其中也发现不少好用的大数据开发提升效率的软件,推荐给刚入门/入行的你:适用windows... 查看详情

❤️大数据开发必备:推荐7款大数据开发神器工作效率提升1000%推荐收藏(代码片段)

...码农的意思,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。manor学习大数据开发满打满算也有一年了,其中也发现不少好用的大数据开发提升效率的软件,推荐给刚入门/入行的你:适用windows... 查看详情

学习大数据必须了解的大数据开发课程大纲

大数据开发最核心的课程就是Hadoop框架,几乎可以说Hadoop就是大数据开发。这个框架就类似于Java应用开发的SSH/SSM框架,都是Apache基金会或者其他Java开源社区团体的能人牛人开发的贡献给大家使用的一种开源Java框架。Java语言是... 查看详情

大数据开发如何入门你必须知道这些

大数据开发如何入门你必须知道这些昨天和三个学计算机专业的学生聊天时聊到了大数据开发方面的话题,他们三个人中,有两个已经进入企业开始工作,另外一个还是大二学生,但已经开设了自己的工作室。他们都是从事程序... 查看详情

大数据未来的就业规划?

大数据的就业前景目前来看是不错的,随着大数据往各垂直领域延伸发展,对统计学、数学专业的人才,数据分析、数据挖掘、人工智能等偏软件领域的需求加大,大数据领域从业人员薪资水平将持续增长,人才供不应求。1大... 查看详情

大数据开发工程师是做什么的?岗位要求高吗?

大数据开发工程师是做什么的?岗位要求高吗?大数据开发工程师要负责数据仓库建设、ETL开发、数据分析、数据指标统计、大数据实时计算平台及业务开发、平台建设及维护等工作内容。熟练掌握数据仓库、hadoop生态... 查看详情

大数据开发入门你必须知道的事情

昨天和三个学计算机专业的学生聊天时聊到了大数据开发方面的话题,他们三个人中,有两个已经进入企业开始工作,另外一个还是大二学生,但已经开设了自己的工作室。他们都是从事程序开发方面工作的。大数据开发自然都... 查看详情