摘要: is 和 as 操作符是用来进行强制类型转换的is : 检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,永远不会抛出异常 object o = new object(); if (o is Label) { Label lb = (Label)o; Response.Write("类型转换成功"); } else { Response.Write("类型转换失败"); }在上面的代码,CLR实际上会检查两次对象的类型,is操作符先核实一次,如果o兼容于Lable,那么在(Label)o时会再次核实一次,效率比较低,不建议使用as:与强制类型转 阅读全文
posted @ 2011-11-19 17:29 John Liang 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 1.值类型与引用类型 结构是值类型:值类型在堆栈上分配地址,所有的基类型都是结构类型,例如:int对应System.int32结构,string对应system.string结构,通过使用结构可以创建更多的值类型 类是引用类型:引用类型在堆上分配地址 堆栈的执行效率要比堆的执行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象。所以结构处理作为基类型对待的小对象,而类处理某个商业逻辑 因为结构是值类型所以结构之间的赋值可以创建新的结构,而类是引用类型,类之间的赋值只是复制引用 注: (1).虽然结构与类的类型不一样,可是他们的基类型都是对象(object),c#中所有类型的... 阅读全文
posted @ 2011-11-19 17:28 John Liang 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 1.吃了辣的东西,感觉就要被辣死了,就往嘴里放上少许盐,含一下,吐掉,漱下口,就不辣了; --2.牙齿黄,可以把花生嚼碎后含在嘴里,并刷牙三分钟,很有效; --3.若有小面积皮肤损伤或者烧伤、烫伤,抹上少许牙膏,可立即止血止痛; --4.经常装茶的杯子里面留下难看的茶渍,用牙膏洗之,非常干净; --5.仰头点眼药水时微微张嘴,这样眼睛就不会乱眨了; --6.嘴里有溃疡,就用维生素C贴在溃疡处,等它溶化后溃疡基本就好了; --7.眼睛进了小灰尘,闭上眼睛用力咳嗽几下,灰尘就会自己出来; --8.洗完脸后,用手指沾些细盐在鼻头两侧轻轻按摩,然后再用清水冲洗,黑头和粉刺就会清除干净, 毛细孔也会变小 阅读全文
posted @ 2011-11-19 17:21 John Liang 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 一.崩溃原因搭建的是一个hadoop测试集群,所以将数据备份参数设置为dfs.replication=1,这样如果有一台datanode损坏的话,数据就会失去。但不幸的是,刚好就有一台机器由于负载过高,导致数据操坏。进而后面需要重启整个hadoop集群,重启后启动namenode启动不了。报如下错误:Java代码 FSNamesysteminitializationfailedsaveLeasesfoundpath/tmp/xxx/aaa.txtbutnomatchingentryinnamespace.FSNamesystem initialization failed saveLeases 阅读全文
posted @ 2011-11-10 15:58 John Liang 阅读(2430) 评论(0) 推荐(0) 编辑
摘要: 1.修改conf/core-site.xml,增加Xml代码<property><name>fs.checkpoint.period</name><value>3600</value><description>Thenumberofsecondsbetweentwoperiodiccheckpoints.</description></property><property><name>fs.checkpoint.size</name><value>67 阅读全文
posted @ 2011-11-10 15:41 John Liang 阅读(709) 评论(0) 推荐(0) 编辑
摘要: 一、dits和fsimage 首先要提到两个文件edits和fsimage,下面来说说他们是做什么的。集群中的名称节点(NameNode)会把文件系统的变化以追加保存到日志文件edits中。当名称节点(NameNode)启动时,会从镜像文件 fsimage 中读取HDFS的状态,并且把edits文件中记录的操作应用到fsimage,也就是合并到fsimage中去。合并后更新fsimage的HDFS状态,创建一个新的edits文件来记录文件系统的变化 那么问题来了,只有在名称节点(NameNode)启动的时候才会合并fsimage和edits,那么久而久之edits文件会越来越大,特别是大型繁. 阅读全文
posted @ 2011-11-10 14:37 John Liang 阅读(687) 评论(0) 推荐(0) 编辑
摘要: (1)NameNode的内存中保存了庞大的目录树结构,这个结构用来保存文件目录结构和文件Block之间的映射,这种结构关系会固化在磁盘上,但是对树的改动频繁发生,什么时候将树写入磁盘呢?把每次操作应用到内存中的树上,并把操作记录成日志文件,每次操作不会改变固化在磁盘上的改动发生之前的目录树,适当的时候做一次固化操作并记录时间。(2)NameNode上面的磁盘目录结构:[hadoop@localhost dfs]$ ls -R namename:currentimagein_use.lockname/current:editsfsimagefstimeVERSIONname/image:fsim 阅读全文
posted @ 2011-11-10 14:05 John Liang 阅读(564) 评论(0) 推荐(0) 编辑
摘要: (1)NameNode保存的两种信息:文件与block的映射、block与DataNode的映射。文件和block的映射,固化在磁盘上。而block和DataNode的映射在DataNode启动时上报给NameNode(2)DatanodeProtocol:用于DataNode来调用NameNode上的方法,情景是DataNode向NameNode通信,方法参数传递到NameNode上;ClientProtocol:提供给客户端,用于访问NameNode。它包含了文件角度上的HDFS功能。和GFS一样,HDFS不提供POSIX形式的接口,而是使用了一个私有接口。一般来说,程序员通过org.ap 阅读全文
posted @ 2011-11-10 14:01 John Liang 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 光从字面上来理解,很容易让一些初学者先入为主的认为:SecondaryNameNode(snn)就是NameNode(nn)的热备进程。其 实不是。snn是HDFS架构中的一个组成部分,但是经常由于名字而被人误解它真正的用途,其实它真正的用途,是用来保存namenode中对HDFS metadata的信息的备份,并减少namenode重启的时间。对于hadoop进程中 ,要配置好并正确的使用 snn,还是需要做一些工作的。hadoop的默认配置中让 snn进程默认运行在了 namenode 的那台机器上,但是这样的话,如果这台机器出错,宕机,对恢复HDFS文件系统是很大的灾难,更好的方式是:将 阅读全文
posted @ 2011-11-10 11:46 John Liang 阅读(1324) 评论(0) 推荐(0) 编辑
摘要: 在使用hadoop的时候,可能遇到各种各样的问题,然而由于hadoop的运行机制比较复杂,因而出现了问题的时候比较难于发现问题。本文欲通过某种方式跟踪Hadoop的运行痕迹,方便出现问题的时候可以通过这些痕迹来解决问题。一、环境的搭建为了能够跟踪这些运行的痕迹,我们需要搭建一个特殊的环境,从而可以一步步的查看上一节提到的一些关键步骤所引起的变化。我们首先搭建一个拥有一个NameNode(namenode:192.168.1.104),三个DataNode(datanode01:192.168.1.105, datanode02:192.168.1.106, datanode03:192.168 阅读全文
posted @ 2011-11-09 18:05 John Liang 阅读(420) 评论(0) 推荐(0) 编辑