当前位置: 首页 > 编程日记 > 正文

Hadoop自学笔记(二)HDFS简单介绍


1. HDFS Architecture


一种Master-Slave结构。包括Name Node, Secondary Name Node,Data Node Job Tracker, Task TrackerJobTrackers: 控制全部的Task Trackers 。这两个Tracker将会在MapReduce课程里面具体介绍。以下具体说明HDFS的结构及其功能。

Name Node:控制全部的Data Node

存储了整个文件系统的信息。

全部新建文件,删除,拷贝等,都会在此更新。存储了Block Mapping.

Secondary Name Node:简单来说,是Name Node的一个备份。

Data Node: 真实进行全部操作的地方。比方一个用户要读取一份文件。用户会先和NameNode沟通,然后Name Node告诉用户这份文件在哪一个Data Node上面,然后用户从此Data Node中读取。Data Node还负责拷贝数据(当然也要报告Name Node)。

上述四个部分能够放到一台机器上面,也能够分别放在不同机器上面。

HDFS特征:

数据丢失保护:每份数据都会存储好几份。默认3份。

假设丢失一个block,能够从其它备份中恢复。假设丢失整个Rack,可是因为同一个数据的备份不会存储到同一Rack。因此也能够恢复。

相同,假设从一个Rack内部读取数据要比跨Rack读取数据速度更快,HDFS会首先试图从一个Rack读取全部所需数据,这个能够称为Rack Awareness。相同这样同一时候获得了可靠的数据存储,以及高数据吞吐量。


2. HDFS Internals


Name Node: 内存中存储了全部文件名称,备份数。以及文件所在的block id。另一个Edit Log,用于存储操作日志,当机器重新启动的时候,会生成一个FsImage文件,整合了Edit Log文件里的内容,相当于把内存持久化。

重新启动后再读取到内存中。

用户读写文件都是和Name Node交互。从Name Node中获取数据存储的Blocks,然后从对应的Block读取出文件。

Secondary Name Node: 为了防止Name Node奔溃或者丢失。

每小时把Name Node中的Edit Log读取过来,然后生成FsImage,等Name Node丢失后。能够用于恢复。

Data Node: 直接和Name Node进行交互。其实。Name Node并不和Data Node进行交互,也不和Secondary Name Node交互, 而是后二者主动和Name Node进行交互。

Data Node3秒钟向Name Node报告一次。假设10秒钟没报告,就觉得是出问题了,開始进行恢复操作。每个Block默认大小是64M. 这样能够保证在大文件的情况下,Name Node不会太庞大,并且提升读取速度。

Block越大,Name Node中的metaData越小。

每个Blockid,同一份block(备份)的id相同,例如以下图。存储在不同的rack上面。

并且还会把相同一份文件的block放到尽量相近的位置便于读写操作。假设时间长了Blocks的位置混乱了,能够使用rebalancing 工具来又一次排序使其恢复到最优位置。

每隔3秒钟Data Node就会向Name Node报告自己的BlocksData Node内部包括了一个Block Scanner用来汇报。假设Name Node发现有block备份多了,就删除;假设发现某一block备份不足,就将该任务放到一个队列中,这个队列依照优先级来复制备份不足的block。备份最少的block优先级最高。


3. HDFS interaction


Ubuntu里面能够依照例如以下图所看到的输入命令,然后与HDFS进行交互,其命令大部分和Shell命令一样。叫FS Shell。除了Shell以外。另一个Web UI用来交互。

假设想知道每个命令能够去google搜索Hadoop Command Guide,然后就能够找到这些命令的具体使用方法。

转载于:https://www.cnblogs.com/liguangsunls/p/7202435.html

相关文章:

如何为Linux设置Docker和Windows子系统:爱情故事。 ?

Do you sometimes feel you’re a beautiful princess turned by an evil wizard into a frog? Like you don’t belong? I do. I’m a UNIX guy scared to leave the cozy command line. My terminal is my castle. But there are times when I’m forced to use Microsoft …

再谈Spring Boot中的乱码和编码问题

编码算不上一个大问题,即使你什么都不管,也有很大的可能你不会遇到任何问题,因为大部分框架都有默认的编码配置,有很多是UTF-8,那么遇到中文乱码的机会很低,所以很多人也忽视了。 Spring系列产品大量运用在…

UDP 构建p2p打洞过程的实现原理(持续更新)

UDP 构建p2p打洞过程的实现原理(持续更新) 发表于7个月前(2015-01-19 10:55) 阅读(433) | 评论(0) 8人收藏此文章, 我要收藏赞08月22日珠海 OSC 源创会正在报名,送机械键盘和开源无码内裤 摘要 UDP 构建p2p打洞过程…

Vue父组件网络请求回数据后再给子组件传值demo示例

QQ技术交流群 173683866 526474645 欢迎加入交流讨论&#xff0c;打广告的一律飞机票 这里demo使用延迟执行模拟网络请求&#xff1b;父组件给子组件需要使用自定义属性 Prop &#xff0c;下面是示例代码&#xff1a; <!DOCTYPE html> <html> <head> <me…

gulp-sass_如果您是初学者,如何使用命令行设置Gulp-sass

gulp-sassby Simeon Bello通过Simeon Bello I intern at a tech firm presently, and few days ago I got a challenge from my boss about writing an article. So I decided to write something on Gulp-sass. Setting it up can be frustrating sometimes, especially when…

MyEclipse快捷键

MyEclipse快捷键 Ctrl1 快速修复CtrlD: 删除当前行 CtrlQ 定位到最后编辑的地方 CtrlL 定位在某行 CtrlO 快速显示 OutLine CtrlT 快速显示当前类的继承结构 CtrlW 关闭当前Editer CtrlK 快速定位到下一个 CtrlE 快速显示当前Editer的下拉列表CtrlJ 正向增量查找(按下C…

关于UNION和UNION ALL的区别

今天在运行程序的时候发现个问题&#xff0c;就是计算和的时候两条数据一样的话自动去除重复的&#xff0c;可是我这个程序需要重复的数据也算进来呀&#xff0c;然后就找原因&#xff0c;最后在sql语句中找到了是union和union all的问题&#xff0c;简单总结一下下。 当使用到…

html 写一个日志控件 查看log

QQ技术交流群 173683866 526474645 欢迎加入交流讨论&#xff0c;打广告的一律飞机票 使用场景&#xff0c; 示例访问&#xff1a;https://weixin.njkeren.cn/test1.html?user12 得到的效果图 实现代码 <!DOCTYPE html> <html><head><meta charset&q…

python开源项目贡献_通过为开源项目做贡献,我如何找到理想的工作

python开源项目贡献by Utsab Saha由Utsab Saha 通过为开源项目做贡献&#xff0c;我如何找到理想的工作 (How I found my dream job by contributing to open source projects) One of the concerns I often hear about from my coding students is, “How am I going to land…

JSON解析与XML解析的区别

JSON与XML的区别比较 1.定义介绍 (1).XML定义扩展标记语言 (Extensible Markup Language, XML) &#xff0c;用于标记电子文件使其具有结构性的标记语言&#xff0c;可以用来标记数据、定义数据类型&#xff0c;是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(d…

[matlab]Monte Carlo模拟学习笔记

理论基础&#xff1a;大数定理&#xff0c;当频数足够多时&#xff0c;频率可以逼近概率&#xff0c;从而依靠概率与$\pi$的关系&#xff0c;求出$\pi$ 所以&#xff0c;rand在Monte Carlo中是必不可少的&#xff0c;必须保证测试数据的随机性。 用蒙特卡洛方法进行计算机模拟的…

vue 网络请求 axios vue POST请求 vue GET请求 代码示例

QQ技术交流群 173683866 526474645 欢迎加入交流讨论&#xff0c;打广告的一律飞机票 1.安装 axios 和 vue-axios 和 qs &#xff08;qs是为了解决post默认使用的是x-www-from-urlencoded 请求&#xff0c;导致请求参数无法传递到后台&#xff09; $ npm install --save axio…

bff v2ex_语音备忘录的BFF-如何通过Machine Learning简化Speech2Text

bff v2exby Rafael Belchior通过拉斐尔贝尔基奥尔(Rafael Belchior) 语音备忘录的BFF-如何通过Machine Learning简化Speech2Text (The voice memo’s BFF — how to make Speech2Text easy with Machine Learning) Do you think recording voice memos is inconvenient becaus…

pat1094. The Largest Generation (25)

1094. The Largest Generation (25) 时间限制200 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueA family hierarchy is usually presented by a pedigree tree where all the nodes on the same level belong to the same generation. Your task is to …

web-view里面的网页能请求未配置的request域名吗

QQ技术交流群 173683866 526474645 欢迎加入交流讨论&#xff0c;打广告的一律飞机票 可以

.NET调用JAVA的WebService方法

调用WebService&#xff0c;最简单的办法当然是直接添加WEB引用&#xff0c;然后自动产生代理类&#xff0c;但是在调用JAVA的WebService时并没有这么简单&#xff0c;特别是对于SoapHeader的处理&#xff0c;在网上也有相关资料&#xff0c;但是都整理的不够清晰明了。根据网上…

适合初学者的数据结构_数据结构101:图-初学者的直观介绍

适合初学者的数据结构了解您每天使用的数据结构 (Get to know the data structures that you use every day) Welcome! Let’s Start with Some Vital Context. Let me ask you something:✅ Do you use Google Search? ✅ Do you use Google Maps? ✅ Do you use social med…

深入解析CSS样式层叠权重值

本文为转载内容&#xff0c;源地址&#xff1a;http://www.ofcss.com/2011/05/26/css-cascade-specificity.html 读到《重新认识CSS的权重》这篇&#xff0c;在文章最后给出了便于记忆的顺序&#xff1a; “important > 内联 > ID > 类 > 标签 | 伪类 | 属性选择 &…

VUE做一个公共的提示组件,显示两秒自动隐藏,显示的值父组件传递给子组件

需求&#xff1a;VUE做一个公共的提示组件&#xff0c;显示两秒自动隐藏&#xff0c;显示的值由父组件动态传给子组件。 效果图&#xff1a; 实现步骤&#xff1a; 1.创建一个子组件 Toptips.vue (它就是公共提示组件)&#xff0c; optips.vue代码如下&#xff1a; <temp…

Linux课堂随笔---第四天

用户账户简介 在Linux系统中有三大类用户&#xff0c;分别是root用户&#xff0c;系统用户和普通用户。 在Linux系统中&#xff0c;root用户UID为0&#xff0c;root用户的权限是最高的&#xff0c;普通用户无法执行的操作&#xff0c;root用户都能完成。所以也被称为超级用户。…

初级开发人员的缺点_作为一名初级开发人员,我如何努力克服自己的挣扎

初级开发人员的缺点by Syeda Aimen Batool通过Syeda Aimen Batool 作为一名初级开发人员&#xff0c;我如何努力克服自己的挣扎 (How I’m working to overcome my struggles as a junior developer) I believe the other name for coding is the “struggle”. And if you ar…

lintcode-136-分割回文串

136-分割回文串 给定一个字符串s&#xff0c;将s分割成一些子串&#xff0c;使每个子串都是回文串。 返回s所有可能的回文串分割方案。 样例 给出 s "aab"&#xff0c;返回 [ ["aa", "b"], ["a", "a", "b"] ] 标…

微信小程序把繁琐的判断用Js简单的解决

场景&#xff1a; 订单列表&#xff0c;有很多种订单状态&#xff0c;根据不同的订单状态要显示不同的css。 适用场景&#xff1a;需要根据数组下标判断不同的显示。 示例代码&#xff1a; this.data.order [{"_type":"1","custName":"…

数论(Lucas定理) HDOJ 4349 Xiao Ming's Hope

题目传送门 题意&#xff1a;求C (n,0),C (n,1),C (n,2)...C (n,n)中奇数的个数 分析&#xff1a;Lucas 定理&#xff1a;A、B是非负整数&#xff0c;p是质数。AB写成p进制&#xff1a;Aa[n]a[n-1]...a[0]&#xff0c;Bb[n]b[n-1]...b[0]。则组合数C(A,B)与C(a[n],b[n])*C(a[n-…

docker容器虚拟化技术_Docker,虚拟机和容器的全面介绍

docker容器虚拟化技术by shota jolbordi通过Shota Jolbordi Docker has been a buzzword for tech people for the last several years, and the more times goes by, the more often you hear about it. We’re seeing it more in job requirements, and more companies are …

IOS中的响应者链

响应者链就是当子视图不响应,父视图有响应事件,父视图响应 #import "RootViewController.h" #import "ResponderView.h" interface RootViewController ()endimplementation RootViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additi…

MySQL闪退问题的解决

刚刚学习了数据库&#xff0c;并且安装了MySQL&#xff0c;正当高兴之余&#xff0c;发现我的MySQL出现了闪退的显现。上网搜了好久的解决方案。最后解决了这个问题&#xff0c;也舒心了。 问题从这里开始&#xff1a; 接着我打开MySQL&#xff0c;寻思能不能用&#xff0c;结果…

HTML封装AJAX请求,在请求里面写登录的逻辑 ajax 网络请求 post

调用方法&#xff1a; 先引用config.js&#xff0c;然后调用封装网络请求。 里面三个参数 1.url&#xff0c; 2.请求需要提交的数据, 3.请求类型 // 获取二维码、背景图片接口 getScheduleInfo() {var url /v1/basketball/getQRCode.do;var params {phone: 13977284414}co…

oye pandora_我尝试了Pandora出色的功能优先级排序方法。 这是我学到的。

oye pandoraby Josh Temple通过乔什坦普尔 我尝试了Pandora出色的功能优先级排序方法。 这是我学到的。 (I tried Pandora’s brilliant method for feature prioritization. Here’s what I learned.) 潘多拉(Pandora)的方法和3美元的便签纸如何使利益相关者的管理变得轻而易…

2016-2017-2软件工程课程总结

2016-2017-2软件工程课程总结 本学期的软件工程课程终于在大家的共同努力下圆满落幕了&#xff0c;我们的暑假也正式开启&#xff0c;终于有时间写写这门课的总结了。 在2016年下半学期末的时候课程组就决定使用邹欣老师的书《构建之法》&#xff0c;由课程组长王瑞老师带领入构…