HDFS优缺点

HDFS架构简述

一、HDFS简介

HDFS(Hadoop distributed File System):Hadoop分布式文件系统。是基于流数据模式访问和处理超大文件的需要而开发的,可以运行于廉价的服务器上。它所具有的高容错,高可靠性,高可扩展性,高获得性,高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集的应用带来了很多便利。简单来说就是把一个超大号文件按一定大小分割并放置在多台服务器上,这样多台服务器同时工作,效率超高,而且安全性也会提高。

二、HDFS组成结构以及各部分作用

HDFS主要由四个部分组成,分别为Client,nameNode、DataNode、以及Secondary NameNode组成。
2.1Client(客户端)

  • 文件切分:文件上传HDFS的时候,client根据需求将文件切分成一个一个的小数据块(block),然后进行存储。
  • 每个小数据块(block)在其他服务器上都有副本,client会与namenode进行通信,获取文件及其副本位置,为以后做打算。
  • 与DataNode进行通信,读取或写入数据。
  • client可以管理HDFS,比如启动或关闭。

2.2nameNode(管理者)
nameNode在HDFS是管理者的作用,类似于现实世界中的国王地位,客户端和secondary nameNode都是与他进行通信,然后由他发号施令来操作DataNode。主要作用有:

  • 管理HDFS的名称空间
  • 管理数据块(block)映射信息
  • 配置副本策略
  • 处理客户端请求

2.3DataNode(执行者)
DataNode在文档中的角色是slave,翻译过来就是奴隶的意思(所以大家知道他的地位了吧),主要就是存储数据块和读写数据块用的:

  • 存储实际的数据块(block)
  • 执行数据块的读写操作

2.4secondary nameNode
他是nameNode的死忠,帮助nameNode完成一些工作,并且在nameNode要挂的时候给他续命,主要作用如下:

  • 定期合并nameNode中的fsimage(映像文件)和fsedits(日志),并推送给nameNode,避免nameNode中的fsedits过大。
  • 在紧急情况下,可辅助恢复nameNode。

三、副本放置策略

第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点。
第二个副本:放置在于第一个副本不同的 机架的节点上。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

以上转载自 https://blog.csdn.net/a15732111571/article/details/89570865

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

优点:

数据冗余,硬件容错

适合存储大文件

处理流式数据

可构建在廉价机器上

缺点:

不能低延迟的数据访问

不适合存储小文件(原因及解决方法:存储每份数据文件对应一个元数据,多份文件需要存储多份元数据,耗费进程,解决方法:Hadoop Archive 将小文件打包成xxx.har,对于hadoop只有一份元数据,每个文件的名字由har自管理)

转载于:https://www.cnblogs.com/xin-qing3/p/11258374.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python学习_线程Thread学习 GIL锁 队列queue 线程池

进程和线程的目的:提高执行效率IO操作利用极少量CPUIO密集型(不用CPU):多线程计算密集型(用CPU):多进程1、单进程单线程,主进程,主线程2、自定义线程: 主进程: 主线程 子线程进…

html5表单与PHP交互

1、示例代码 前端&#xff1a; <!DOCTYPE html><html><head><meta charset"utf-8"> <title>html5表单与PHP交互</title></head><body><form action"http://localhost/jh.php" method"post"…

文件加密 1

一、 1、NTFS分区才能使用EFS加密&#xff1b; 2、我的电脑&#xff0d;&#xff0d;工具&#xff0d;&#xff0d;文件夹选项&#xff0d;&#xff0d;查看&#xff0d;&#xff0d;取消简单文件共享&#xff1b; 3、右键点击要加密的文件或文件夹&#xff0d;&#xff0d;属性…

Java中抽象类和接口之间的区别

一些受欢迎的访谈问题是“抽象类和接口之间有什么区别”&#xff0c;“什么时候使用抽象类以及什么时候使用接口”。 因此&#xff0c;在本文中&#xff0c;我们将讨论这个主题。 在探讨它们之间的差异之前&#xff0c;让我们先介绍一下它们。 抽象类 创建抽象类以捕获子类的…

【DP】【期望】$P1850$换教室

【DP】【期望】\(P1850\)换教室 链接 题目描述 有 \(2n\) 节课程安排在$ n$ 个时间段上。在第 \(i\)&#xff08;\(1 \leq i \leq n\)&#xff09;个时间段上&#xff0c;两节内容相同的课程同时在不同的地点进行&#xff0c;其中&#xff0c;牛牛预先被安排在教室 \(c_i\)上课…

封装cookie设置和获取的简易方法

(function() {var tool {expires: "expires", // 过期时间expirespath: "path", // 路径domain: "domain", // 域secure: "secure" // 安全设置 bool};//设置function setCookie(k, v, options) {if (!options) {document.cookie k…

高并发服务器逻辑处理瓶颈,如何解决?

https://mp.weixin.qq.com/s/GHHHvgURdZpNJ1Ec6RHgPg 高并发衡量指标 响应时间&#xff1a;系统对请求做出响应的时间&#xff0c;即一个http请求返回所用的时间&#xff1b;吞吐量&#xff1a;单位时间内处理的请求数量&#xff1b;QPS&#xff08;TPS&#xff09;&#xff1a…

Oracle学习笔记:blank_trimming的含义

blank_trimming 静态初始化参数控制 【字符串的尾随空格】是否自动截断&#xff01;以便【字符类型】的 【列】或【变量】之间在运算时不用考虑尾随空格的长度&#xff01;这样就和sql-92的标准兼容了 例子&#xff1a; DECLARE v_char1 VARCHAR2(2); v_char2 VARCHAR2(…

InterruptedException和中断线程的说明

如果没有将InterruptedException检查为异常&#xff0c;则可能甚至没人会注意到它-这实际上可以防止这些年来的几个错误。 但是由于必须对其进行处理&#xff0c;因此许多人不正确或不加考虑地处理它。 让我们以一个线程的简单示例为例&#xff0c;该线程定期进行一些清理&…

映射网络驱动器会自动断开的解决方法

映射的网络驱动器在一段时间自动断开&#xff0c;是由于服务器服务自动断开连接功能的默认超时期限造成的&#xff0c;我们可以通过以下两种方法来更改断开时间&#xff1a; 方法一&#xff1a;修改注册表编辑相应的键值来增加默认超时期限在注册表中找到下面的注册表项&#x…

一行上自动控制数据长度,并换行

有的在开发中&#xff0c;遇到传来的数据太长&#xff0c;渲染到页面上会超出可视页面&#xff0c;出现横向滚动条&#xff0c;想解决一个办法就是数据到一定程度换行。 div{word-wrap: break-word;word-break: break-all;width:90%; /*可以根据情况调整*/ } 更多专业前端知识…

springboot(十)-监控应用

微服务的特点决定了功能模块的部署是分布式的&#xff0c;大部分功能模块都是运行在不同的机器上&#xff0c;彼此通过服务调用进行交互&#xff0c;前后台的业务流会经过很多个微服务的处理和传递&#xff0c;出现了异常如何快速定位是哪个环节出现了问题&#xff1f; 在这种框…

【概率DP】$P2059$ 卡牌游戏

【概率DP】P2059 卡牌游戏 链接 题目描述 N个人坐成一圈玩游戏。一开始我们把所有玩家按顺时针从1到N编号。首先第一回合是玩家1作为庄家。每个回合庄家都会随机&#xff08;即按相等的概率&#xff09;从卡牌堆里选择一张卡片&#xff0c;假设卡片上的数字为X&#xff0c;则庄…

基于角色的访问控制'的权限管理的数据库的设计实现

RBAC基于角色的访问控制的权限管理系统数据库设计与实现 use [master] go -- 检查数据库 [RBAC]是否存在,如果存在则删除(只测试用,不然会丢数据.) -- Search from the sysdatabase to see that if the [RBAC] database exist. -- If exists then drop it else create it. if…

Thymeleaf –片段和angularjs路由器局部视图

百里香叶许多很酷的功能之一就是能够渲染模板片段–我发现这是与AngularJs一起使用的特别有用的功能。 可以将AngularJS $ routeProvider或AngularUI路由器配置为返回不同“路径”的部分视图&#xff0c;使用百里香叶返回这些部分视图确实效果很好。 考虑一个简单的CRUD流&am…

web3.js_1.x.x--API(一)event/Constant/deploy/options

/* 事件是使用EVM日志内置功能的方便工具&#xff0c;在DAPP的接口中&#xff0c;它可以反过来调用Javascript的监听事件的回调。事件在合约中可被继承。当被调用时&#xff0c;会触发参数存储到交易的日志中&#xff08;一种区块链上的特殊数据结构&#xff09;。 这些日志与合…

1022: 淘金(2017年中南大学研究生复试机试题 )

1022: 淘金 时间限制: 1 Sec 内存限制: 128 MB提交: 205 解决: 75[提交] [状态] [讨论版] [命题人:外部导入]题目描述 在一片n*m的土地上&#xff0c;每一块1*1的区域里都有一定数量的金子。这一天&#xff0c;你到这里来淘金&#xff0c;然而当地人告诉你&#xff0c;如果你…

CSS 定位 四种定位

absolute 生成绝对定位的元素&#xff0c;相对于static定位以外的第一个父元素进行定位。元素的位置通过“left”&#xff0c;“top”&#xff0c;“right”以及“bottom”属性进行定位。fixed 生成固定定位的元素&#xff0c;相对于浏览器窗口进行定位。元素的位置通过“left…

Apache CXF 3.0:CDI 1.1支持可替代Spring

在几周前刚刚发布Apache CXF 3.0时 &#xff0c;该项目又迈出了满足JAX-RS 2.0规范要求的又一个重要步骤&#xff1a;与CDI 1.1集成。 在此博客文章中&#xff0c;我们将看几个有关Apache CXF 3.0和Apache CXF 3.0如何协同工作的示例。 从3.0版开始&#xff0c; Apache CXF包含…

用堆来求中位数

维护一个大根堆和一个小根堆。使得大根堆堆顶&#xff08;最大的元素&#xff09;比小根堆堆顶&#xff08;最小的元素&#xff09;小&#xff0c;且两个堆的元素个数的差小于等于1。这样元素多的那个堆的堆顶就是已读入数的中位数。如果读入偶数个数&#xff0c;则中位数为两个…