sencha gridpanel checkbox 复选框的勾选 以及和单机行争论

gridpanel显示checkbox:

添加SelectionModel为Checkbox Selection Model

{

                    xtype: ‘gridpanel’,

                    id: ‘Grid1’,

                    header: false,

                    title: ‘条线列表’,

                    deferRowRender: false,

                    forceFit: true,

                    store: ‘NewTiaoXianStore’,

                    columns: [

                        {

                            xtype: ‘gridcolumn’,                       
   

                            dataIndex: ‘Id’,

                            text: ‘Id’

                        },

                        {

                            xtype: ‘gridcolumn’,

                            dataIndex: ‘Name’,

                            text: ‘条线名称’

                        },

                        {

                            xtype: ‘gridcolumn’,

                            dataIndex: ‘Description’,

                            text: ‘条线描述’

                        }

                    ],

                    selModel: Ext.create(‘Ext.selection.CheckboxModel’,
{

           checkOnly: true
//幸免单击行的时候,其余入选的checkbox被吊销选中

                    })

                }

 

 图片 1

前文分析了 NameNode,本文进一步分析 DataNode 的筹划和贯彻中央。

复选框的勾选

在load回调中依据字段checked值判断是或不是勾选

var store=Ext.getStore(“Store”);

store.proxy.extraParams={method:”GetList”};

store.load({

    callback:function(records, options, success){

        for(var i in records)

            {

                if(records[i].data.checked)

                    {                   

                       
Ext.getCmp(“Grid1”).getSelectionModel().select(records[i],true);
//勾选该记录

                    }

            }

}});

 

 

//grid依照行号(从0开端)选中

//第二个参数可以是行号大概records合集,第①个参数true表示维持此前勾选的(追加)

Ext.getCmp(“Grid1”).getSelectionModel().select(rowIndex,true); 

 

From:http://www.cnblogs.com/xuejianxiyang/p/5220397.html

文件存储

DataNode 正如其名是承受储存文件数量的节点。HDFS
汉语件的存储格局是将文件按块(block)切分,专擅认同贰个 block
64MB(该大小可安顿)。若文件大小当先一个 block 的体积只怕会被切分为多少个block,并蕴藏在差距的 DataNode 上。若文件大小小于3个 block
的体量,则文件唯有二个block,实际占有的蕴藏空间为文件大小容积拉长一点额外的校验数据。也可以那样说3个文书至少由三个或多个block 组成,而3个 block 仅属于1个文件。

block 是1个逻辑概念对象,由 DataNode 基于本和姑件系统来兑现。每种 block
在当麻芋果件系统中由三个文本组成,第四个公文包涵文件数量小编,第3个文件则记录
block 的元新闻(metadata)如:数据校验和(checksum)。所以每二个 block
对象实际物理对应多个文本,但 DataNode
不会将文件创立在同一个索引下。因为本机文件系统只怕不只怕快捷的支撑单目录下的大量文件,DataNode
会使用启发式方法决定单个目录下存放多少文件合适并在适用时候创造子目录。

文本数量存储的可相信性依赖多副本有限支撑,对于单一 DataNode
节点而言只需确保本身储存的 block 是共同体且无损坏的。DataNode
会主动周期性的运作多个 block 扫描器(scanner)通过比对 checksum 来检查
block 是不是损坏。其它还有一种被动的检查措施,就是当读取时检查。

文件操作

HDFS 协理的文本操作包涵写入(新增、追加)、读取和删除。HDFS 定义了一种
multi-reader, single-writer
的文件访问语义。而访问标准照旧参照咱们熟习的基于 POSIX(Portable
Operating System Interface)为单机文件系统定义的 API。

  • Open 打开文件
  • Read/Write 读写文件
  • Close 关闭文件

上边大家分别讲述文件操作的宏图落成中央。

写文件

图片 2

写文件流程如图示,在分布式环境下,Client 请求 NameNode
得到二个对准内定文件的租约(lease,本质上是一种分布式锁,详细请自行维基百科下)。只有拥有该租约的
Client 可以向该公文写入,以那种体制来确保写文件的 single-writer
的语义。拿到写入租约后 NameNode 向 Client 分配一组用于存放文件数量的
DataNodes,若配置的副本数为 3,则会回去 3 个 DataNode。这一组 DataNodes
被整合一条流水线来写入,有效进步写入质量下降写入延迟。Client
将文件组织成贰个个 packet 发送给流水线上先是个 DataNode,第2个 DataNode
存储下该 packet 后再转载给第③个 DataNode,依此类推。然后 DataNodes
再按流程反方向发回确认 packet 给 Client。当全数文件 block
写入完结后,DataNodes 会向 NameNode 报告文本的 block 接收达成,NameNode
相应去改变文件元数据的景象。

写文件的重点流程如上所述,尽管经过中一切平常那么多么不难美好。但实际上在分布式环境下,写文件进度涉及
Client、NameNode 和一组
DataNodes,那里面任何多少个环节都有只怕发生非凡。根据分布式设计首先原则:Design
for
failure,大家必要考那些流程中的全数参与者都有或许现身破产极度的事态。那里先提议那么些题材,考虑逐个败北格外的现象下,软件设计完成要怎么去处理?本文先不在这里举行论述,后边会专程编写深切解析。

读文件

图片 3

读文件流程如图示,Client 首先请求 NameNode 定位文件 block 所在的
DataNodes。然后按顺序请求对应的 DataNodes 读取其上囤积的
block。关于读取顺序,HDFS 有二个前后读取的优化策略,DataNodes
的读取排序会依据它们离 Client
的相距来鲜明。距离的概念首要不相同以下两种现象:

  • 离开 0,表示在同多个节点上
  • 距离 2,表示同3个机架下的例外节点
  • 相距 4,表示同壹个数据基本的不等机架下
  • 相距 8,表示分化的数据主导

删文件

文本删除的处理首先将文件重命名后放进 /trash 目录。文件会在 /trash
目录中存放一段时间(可安顿),在岁月到期后再自动清理。所以实际上文件删除操作极度轻量级,仅仅是
NameNode 的内存数据结构的更改,真正的大体删除在继续的自动清理时才做。

可见性

在文书写入过程中,HDFS 不有限支撑文件对其余 Client 里德r 可知。只有文件的
block 已经写入 DataNode,并告知给了 NameNode 更新到科学的气象才对此外Reader 可知。不难说,借使3个文书有八个 block,写入总是暴发在最后三个block 上,那么前边的 block 对其他 Reader 是可见的,但结尾贰个 block
则不可知,那提到 block
的事态变化,那里先不开展,前边会特意编写深切剖析。

生命周期

DataNode 运营后率先连接到 NameNode 完成握手,握手的目标是验证 DataNode
的软件版本和 namespace ID。namespace ID 是整个 HDFS 集群的唯一标识,假诺DataNode namespace ID 或 软件版本与 NameNode 不合营,DataNode
将不能投入集群并自行关闭。如果三个簇新的 DataNode 运营时没有 namespace
ID,则在拉手时由 NameNode 分配并进入集群。其余,NameNode
还会分配2个集群全局唯一的 storage ID 给 DataNode
用于唯一标记,之后不再改变。

成功握手后,DataNode 会立时向 NameNode 发送 block report 音讯,block
report 就是 DataNode 上囤积了怎么着文件 block 的列表。之后会定期(私自认同 1
时辰)向 NameNode 报告。其余,DataNode 将定时向 NameNode 发送心跳(默许3 秒)来告诉本人的存活性。一段时间(默许 10 分钟)收不到 DataNode
目前的心跳,NameNode 会认定其过逝,并不会再将 I/O
请求转载到其上。心跳除了用于 DataNode 报告其存活性,NameNode
也由此心跳復苏来捎带控制命令须求 DataNode 执行,因为 NameNode
设计上不直接调用 DataNode
其控制命令都以因而心跳复苏来实施,所以心跳的暗中认同间隔相比短。

除去 DataNode 的畸形与世长辞外,DataNode
还是可以不荒谬退休,可以经过管理端标记两个 DataNode
进入退休中(decommissioning)状态。处于退休中状态的 DataNode
不再服务于写请求(包含从 Client 写入或从其它 DataNode
复制),但它可以再三再四服务读请求。进入退休中状态的 DataNode
将被安顿将其上囤积的富有 block 复制到其余节点,落成这几个进度后 NameNode
将其标志为已离休(decommissioned)状态,然后就足以高枕无忧底线了。

总结

正文重点描述了,DataNode 生命周期对 HDFS
集群全体的熏陶以及文件访问操作的流程。对于那2个处理部分没有详细展开叙述,这么些系列的两次三番小说还会越发长远剖析。

参考

[1] Hadoop Documentation. HDFS
Architecture
.
[2] Robert Chansler, Hairong Kuang, Sanjay Radia, Konstantin Shvachko,
and Suresh Srinivas. The Hadoop Distributed File
System

[3] Tom White. Hadoop: The Definitive
Guide
. O’Reilly
Media(2012-05), pp 94-96


上边是自个儿要好开的三个微信公众号
[一弹指顷之间],除了写技术的文章、还有产品的、行业和人生的想想,希望能和更多走在那条路上同行者互换,有趣味可关切一下,多谢。
图片 4

版权声明:本文为博主原创文章,未经博主允许不得转发。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注