HDFS架构

我的C#之路-dataset、datatable的绑定、清空、添加、删除等操作 111 阅读详情

NameNode

DataNode

Secondary NameNode(并非NameNode的热备)



NameNode:

  • 是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。
  • 文件包括:
    • fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。(内存中元数据序列化到磁盘的数据)
    • edits:操作日志文件。
    • fstime:保存最近一次checkpoint(类似于还原点)的时间
  • 以上文件保存在linux中。(hadoop/dfs/name)

NameNode的工作特点:

  • Namenode始终在内存中保存metedata,用于处理“读请求”
  • 到有“写请求”到来时,namenode会首先写editlog到磁盘,即向edits文件中写日志,成功返回后,才会修改内存,并且向客户端返回
  • Hadoop会维护一个fsimage文件,也就是namenode中metedata的镜像,但是fsimage不会随时与namenode内存中的metedata保持一致,而是每隔一段时间通过合并edits和fsimage文件来更新内容(伪分布式是这样,hadoop2的分布式可以实时同步)。Secondary namenode就是用来合并fsimage和edits文件来更新NameNode的metedata的。


Secondary NameNode:

  • HA(高可靠性)的一个解决方案。但不支持热备。配置即可。
  • 执行过程:从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,替换旧的fsimage.
  • 默认在安装在NameNode节点上,但这样...不安全!
Secondary NameNode工作流程:(hadoop1.0)

  1. secondary通知namenode切换edits文件(切换:edits->edits.new)
  2. secondary从namenode获得fsimage和edits(通过http)
  3. secondary将fsimage载入内存,然后开始合并edits
  4. secondary将新的fsimage发回给namenode
  5. namenode用新的fsimage替换旧的fsimage




什么时候checkpoint?

  • fs.checkpoint.period 指定两次checkpoint的最大时间间隔,默认3600秒。 
  • fs.checkpoint.size    规定edits文件的最大值,一旦超过这个值则强制checkpoint,不管是否到达最大时间间隔。默认大小是64M。

DataNode:

  • 提供真实文件数据的存储服务。
  • 文件块(block):最基本的存储单位。对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block。HDFS默认Block大小是128MB(hadoop2.0),以一个256MB文件,共有256/128=2个Block.
  • 不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间
    Replication。多复本。默认是三个。







关于C#中Datatable,Dataset和Datagridview的使用记录 对于文件的显示和操作来说,Datagridview要显著优于RichTextBox,故对平常的一些关于数据显示、处理的操作在此进行一些简略的说明和记录,以便将来记忆、使用。 Datagridview的使用 进行数据列和行的插入 if (of1.ShowDialog() == DialogResult.OK) { F... 阅读详情

相关推荐

hdfs简介&hdfs-shell&hdfs-API

HDFS简介:     HDFS概念:     HDFS(Hadoop Distributed File System)是运行在linux文件系统之上的一个分布式文件系统,是基于流数据模式访问和处理超大文件的需求开发     的,hadoop整合了众多文件系统,在其中有一个综合性的文件系统抽象,它提供了文件系统实现的各类接口,HDFS是这个抽象文件系统的一     个实例。hadoop

快乐小编的专栏 1229

c#中,对DataSet、DataTable的操作

   //一、对DataSet的操作:        DataSet ds = new DataSet("ds_zhaozhenlong");        //使用GetChanges方法产生一个DataSet修改后的对象的DataSet集合。        DataSet chDs;        chDs = ds.GetChanges;        //如果在更改ds数据的过程中

jiangxinyu的专栏 6630

C#中LINQ to DataSet操作及DataTable与LINQ相互转换

本文介绍了DataTable与LINQ的互操作方法。主要内容包括:1) DataTable转LINQ查询的AsEnumerable扩展方法及其应用;2) LINQ结果转DataTable的CopyToDataTable方法;3) DataRow的Field和SetField扩展方法;4) 常见LINQ to DataTable操作,如条件查询、分组、连接查询等。文中提供了多个示例代码,演示了如何实现强类型查询、数据转换、分组统计等操作,并特别强调了DataRowComparer在集合操作中的重要性。这些方法

风清扬的专栏 1155

如何将dataset中的值赋值给datatable_DataTable和 DataSet初探 | C# 数据操作系列

0. 前言在上一篇中,我故意留下了查询的示范没讲。虽然说可以通过以下代码获取一个DataReader:IDataReader reader = command.ExecuteReader();然后通过reader一行一行的读取数据,但是我并不推荐这样使用。在查询这一高频需求上,C#为之做了很多工作,提供了更多的选择。这里介绍一个查询的另一套写法。1. 离线查询C#在查询上提供了另一种机制,可以一次...

weixin_39529443的博客 1461

c#ADO DataSet和DataTable详解

1、创建DataSet对象:   DataSet ds = new DataSet("DataSetName");   2、查看调用SqlDataAdapter.Fill创建的结构   da.Fill(ds,"Orders");   DataTable tbl = ds.Table[0];   foreach(DataColumn col in tbl.Columns)   Conso

gongth_12的专栏 1491

C# 对Datagridview,Dataset,Datatable表格的索引内容操作

Datagridview获取相应的索引下标内容 获取行列的索引 e.RowIndex + 1 ; //获取当前单元格行索引 e.ColumnIndex + 1 ; //获取当前单元格列索引 获取行列的内容 dataGridView1.Rows[索引值].Cells[单元格列的字段名].Value.ToString(); DataTable获取相应的索引值和内容 注意DataTable获...

欢少的成长之路的博客 2317

C#之DataSet和DataTable 的介绍

1.DataSet是什么 DateSet在c#程序中建立一个临时数据库 下图所示: 概述 可以把DataTable和DataSet看做是数据容器,比如你查询数据库后得到一些结果,可以放到这种容器里,那你可能要问:我不用这种容器,自己读到变量或数组里也一样可以存起来啊,为什么用容器? 原因是,这种容器的功能比较强大,除了可以存数据,还可以有更大用途。举例:在一个c/s结构的桌面数据库系统里,你可以把前面存放查询结果的容器里的数据显示到你客户端界面上,用户在界面上对数据进行添加、...

lizhenxiqnmlgb的博客 6321

DataSet和DataTable的关系

通常用于需要处理多个表和复杂数据结构的场景,如从数据库中检索多个相关表的数据,或者在应用程序中处理多个数据源的数据。可以独立于数据库使用,也可以与数据库表相关联,用于数据的读取、更新、插入和删除操作。可以定义表内的约束,如主键、唯一约束和检查约束,但不能定义跨表的约束。可以用于批量更新数据库,因为它可以存储多个表的数据和它们之间的关系。可以定义表之间的关系,如父子关系,以及跨表的约束,如外键约束。,因此可以存储大量数据,适合于复杂的数据结构和多表关联操作。的一个组件,代表内存中的一个表,可以独立于。

愿你历尽千帆,归来仍是少年。 1676

合并多个DataTable及将DataTable添加到DataSet的方法

Merge方法是将两个结构相似的datatable合并成一个datatable: // 创建表1 DataTable dt1 = new DataTable(); // 添加数据 dt1.Columns.Add("id"); dt1.Columns.Add("name"); dt1.Columns.Add("pwd"); for (int i = 0; i < 5...

402

[C#]DataTable和DataSet有什么区别

[C#]DataTable和DataSet有什么区别 DataSet:数据集。一般包含多个DataTable,用的时候,dataset["表名"]得到DataTable DataTable:数据表。 一: SqlDataAdapterda=newSqlDataAdapter(cmd); DataTabledt=newDataTable(); da.Fill...

Amber_gys的博客 265

C#怎样生成一个DataSet并含有DataTable内容

DataSet是C#中经常使用的数据存储格式 using System.Data;引用后就可以使用这种格式 //初始化DataTable DataTable dt = new DataTable(); //给DataTable 增加列 dt.Columns.Add("Id"); dt.Columns.Add("Name"); //给 DataTable 增加数据 DataRow dr =...

笔下无书生的博客 682

c# DataSet DataTable DataColumn DataRow数据操作集

原文: http://www.cnblogs.com/szytwo/archive/2012/03/21/2409536.html

u014230987的专栏 2937

C# DataSet和DataTable:将查询结果保存到DataSet或DataTable中

C# DataSet和DataTable:将查询结果保存到DataSet或DataTable中 在执行对表中数据的查询时还能将数据保存到 DataSet 中,但需要借助 DataAdapter 类来实现。在实际应用中,DataAdapter 与 DataSet 是在查询操作中使用最多的类。此外,还可以通过 DataSet 实现对表中数据的增加、修改、删除操作。 DataAdapter 与 DataSet 类简介 DataAdapter 类用于将数据表中的数据查询出来并添加到 DataSet 中,DataAd

weixin_47257626的博客 2609

C#中DataSet 内存集 的用法

一个DataSet里面有多张DataTable表 一个DataTable里有多个列 using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Text; using System.Threading.T...

qq_42885712的博客 2335

c 中,对DataSet DataTable的操作

c 中,对DataSet DataTable的操作

ffghggf的博客 501

c# DataTable、DataSet、DataReader

C# DataTable 详解 dataTable.Rows.Count==0 //判断DataTable 为空 循环执行dataTable数据 DataTable dtSelect = (DataTable)this.ucGrid_main.DataSource; string sql = string.Empty; ...

weixin_30656145的博客 284

C# DataSet和DataTable详解

C# DataSet和DataTable详解C# DataSet和DataTable详解2009-4-211、创建DataSet对象:DataSet ds = new DataSet("DataSetName");2、查看调用SqlDataAdapter.Fill创建的结构     da.Fill(ds,"Orders");     DataTable tbl = ds.Table[0];

晓春明月 696
上一篇: 分布式文件系统特点及常见的分布式文件系统
下一篇: datanode无法启动
faychu
博客等级 码龄12年 0粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值