.NET Is 和 As 的区别
摘要: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
阅读(504)
推荐(0)
类与结构的差别
摘要:1.值类型与引用类型 结构是值类型:值类型在堆栈上分配地址,所有的基类型都是结构类型,例如:int对应System.int32结构,string对应system.string结构,通过使用结构可以创建更多的值类型 类是引用类型:引用类型在堆上分配地址 堆栈的执行效率要比堆的执行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象。所以结构处理作为基类型对待的小对象,而类处理某个商业逻辑 因为结构是值类型所以结构之间的赋值可以创建新的结构,而类是引用类型,类之间的赋值只是复制引用 注: (1).虽然结构与类的类型不一样,可是他们的基类型都是对象(object),c#中所有类型的...
阅读全文
posted @
2011-11-19 17:28
John Liang
阅读(234)
推荐(0)
生活常识
摘要:1.吃了辣的东西,感觉就要被辣死了,就往嘴里放上少许盐,含一下,吐掉,漱下口,就不辣了; --2.牙齿黄,可以把花生嚼碎后含在嘴里,并刷牙三分钟,很有效; --3.若有小面积皮肤损伤或者烧伤、烫伤,抹上少许牙膏,可立即止血止痛; --4.经常装茶的杯子里面留下难看的茶渍,用牙膏洗之,非常干净; --5.仰头点眼药水时微微张嘴,这样眼睛就不会乱眨了; --6.嘴里有溃疡,就用维生素C贴在溃疡处,等它溶化后溃疡基本就好了; --7.眼睛进了小灰尘,闭上眼睛用力咳嗽几下,灰尘就会自己出来; --8.洗完脸后,用手指沾些细盐在鼻头两侧轻轻按摩,然后再用清水冲洗,黑头和粉刺就会清除干净, 毛细孔也会变小
阅读全文
posted @
2011-11-19 17:21
John Liang
阅读(221)
推荐(0)
hadoop集群崩溃恢复记录
摘要:一.崩溃原因搭建的是一个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
阅读(2450)
推荐(0)
hadoop集群管理之 Namenode恢复
摘要: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
阅读(745)
推荐(0)
hadoop主节点(NameNode)备份策略以及恢复方法
摘要:一、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
阅读(705)
推荐(0)
Hadoop_NameNode_代码分析_目录树(2)
摘要:(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
阅读(577)
推荐(0)
Hadoop_NameNode_代码分析_数据结构(1)
摘要:(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
阅读(437)
推荐(0)
hadoop集群管理之 SecondaryNameNode和NameNode
摘要:光从字面上来理解,很容易让一些初学者先入为主的认为:SecondaryNameNode(snn)就是NameNode(nn)的热备进程。其 实不是。snn是HDFS架构中的一个组成部分,但是经常由于名字而被人误解它真正的用途,其实它真正的用途,是用来保存namenode中对HDFS metadata的信息的备份,并减少namenode重启的时间。对于hadoop进程中 ,要配置好并正确的使用 snn,还是需要做一些工作的。hadoop的默认配置中让 snn进程默认运行在了 namenode 的那台机器上,但是这样的话,如果这台机器出错,宕机,对恢复HDFS文件系统是很大的灾难,更好的方式是:将
阅读全文
posted @
2011-11-10 11:46
John Liang
阅读(1381)
推荐(0)
Hadoop的运行痕迹
摘要:在使用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
阅读(442)
推荐(0)
Map-Reduce的过程解析
摘要:一、客户端Map-Reduce的过程首先是由客户端提交一个任务开始的。提交任务主要是通过JobClient.runJob(JobConf)静态函数实现的:public static RunningJob runJob(JobConf job) throws IOException { //首先生成一个JobClient对象 JobClient jc = new JobClient(job); …… //调用submitJob来提交一个任务 running = jc.submitJob(job); JobID jobId = running.getID(); …… while (true) {
阅读全文
posted @
2011-11-09 18:04
John Liang
阅读(780)
推荐(0)
HDFS读写过程解析
摘要:一、文件的打开1.1、客户端HDFS打开一个文件,需要在客户端调用DistributedFileSystem.open(Path f, int bufferSize),其实现为:public FSDataInputStream open(Path f, int bufferSize) throws IOException { return new DFSClient.DFSDataInputStream( dfs.open(getPathName(f), bufferSize, verifyChecksum, statistics));}其中dfs为DistributedFileSystem的
阅读全文
posted @
2011-11-09 18:03
John Liang
阅读(1288)
推荐(0)
Map-Reduce入门
摘要:1、Map-Reduce的逻辑过程假设我们需要处理一批有关天气的数据,其格式如下:按照ASCII码存储,每行一条记录每一行字符从0开始计数,第15个到第18个字符为年第25个到第29个字符为温度,其中第25位是符号+/-0067011990999991950051507+0000+0043011990999991950051512+0022+0043011990999991950051518-0011+0043012650999991949032412+0111+0043012650999991949032418+0078+0067011990999991937051507+0001+0043
阅读全文
posted @
2011-11-09 18:03
John Liang
阅读(391)
推荐(0)
HDFS简介
摘要:一、HDFS的基本概念1.1、数据块(block)HDFS(Hadoop Distributed File System)默认的最基本的存储单位是64M的数据块。和普通文件系统相同的是,HDFS中的文件是被分成64M一块的数据块存储的。不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间。1.2、元数据节点(Namenode)和数据节点(datanode)元数据节点用来管理文件系统的命名空间其将所有的文件和文件夹的元数据保存在一个文件系统树中。这些信息也会在硬盘上保存成以下文件:命名空间镜像(namespace image)及修改日志(edit lo
阅读全文
posted @
2011-11-09 18:01
John Liang
阅读(483)
推荐(0)
Hadoop in Action 第三章(文件操作命令部分)
摘要:Components of Hadoop在上一章节我们了解了如何安装及配置Hadoop。我们了解了不同节点的作用以及这些节点是如何工作的,还了解了如何配置这些节点。现在我们可以运行Hadoop了,现在我们从程序的角度了解一下Hadoop框架。首先我们讲解HDFS,HDFS用来存储你的Hadoop应用的各种数据。之后我们讲解MapReduce框架的细节。第一章时,我们已经看到了MapReduce程序,但是我们只是停留在概念层。在这一章我们将进入Java类和方法层面,当然还包括如何部署。我们还会知道如何使用不同数据格式进行读写操作。Working with files in HDFS你可以将100
阅读全文
posted @
2011-11-09 17:54
John Liang
阅读(778)
推荐(0)
Hadoop in Action 第二章续2(分布式部署)
摘要:之前持续关注分布式存储和分布式计算,现在是建立完整集群的时候了.在这一节,我们将使用下面的服务器名:1. master--- 主节点,主要用来运行NameNode和JobTracker服务.2. backup --- 用来运行Secondary NameNode服务.3. hadoop1,hadoop2,hadoop3…---运行DataNode和TaskTracker的从节点.修改之前伪分布式的骨架来配置这个分布式模式.复制所有这几个配置文件到所有的从服务器上,并且保证所有的从服务器的hdfs都格式化了.hdfs-site.xmlCode highlighting produced by..
阅读全文
posted @
2011-11-09 17:52
John Liang
阅读(333)
推荐(0)
Hadoop in Action 第二章续1(伪分布式)
摘要:Pseudo-distributed mode(伪分布式)伪分布式模式就是将所有hadoop程序运行在一台服务器上.这种模式将单机模式分割为各模块,主要还是用来debug你的程序,以便于测试内存占用量,HDFS input/output问题,已经各个deamons之间的交互等等.下面就是这种模式的配置例子:core-site.xml<?xml version=”1.0”?><?xml-stylesheet type=”text/xsl” href=”confi guration.xsl”?><!-- Put site-specifi c property overri
阅读全文
posted @
2011-11-09 17:50
John Liang
阅读(340)
推荐(0)
Hadoop in Action 第二章
摘要:Starting Hadoop内容简介:1. Hadoop 架构中的各个模块。2. 安装Hadoop,以及三种操作模式:单机,伪分布式,以及分布式。3. 安装基于web的Hadoop监控工具 这一章节将主要介绍如何安装Hadoop。如果你的工作不要安装Hadoop,或者已经完整安装了Hadoop,那么你也许想跳过这一章。不过通过这一章节你可以了解如何在你的开发环境中安装Hadoop,如果是这样,你可以略过一些配置的细节。在2.1章节,我们将介绍一下hadoop的各个组成部分。此后的2.2,2.3,和2.4我们将分别介绍如何安装 单机,伪分布式,以及分布式的Hadoop。2.5我们将介绍一些基于
阅读全文
posted @
2011-11-09 17:44
John Liang
阅读(463)
推荐(0)
Hadoop in Action 第一章
摘要:Hadoop介绍内容简介:1. 编写可扩展的,分布式的,海量数据处理的程序的基础2. 介绍hadoop与MapREduce3. 编写一个简单的MapReduce程序 今天,我们被数据所围绕,人们上传视频,手机拍照,给朋友发信息,更新facebook状态,论坛回帖,点击广告,等等.另外,机器本身也在不停的产生大量数据.甚至也许各位看官就在电脑旁读着电子书,当然,你的购买记录已经记录在书店的系统之中了.海量数据的不停增长,现在已经给各大厂商带来了极大地挑战.他们需要在以兆记的数据中挖掘出有用的信息,比如哪些网页是大众喜闻乐见的,等等信息.Google是第一个公布使用MapReduce系统来处理他们
阅读全文
posted @
2011-11-09 17:43
John Liang
阅读(557)
推荐(0)
Hadoop Shell命令
摘要:调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args>的形式。 所有的的FS shell命令使用URI路径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。一个HDFS文件或目录比如/parent/child可以表示成hdfs://namenode:namenodeport/parent/child,或者更简单的/parent/child(假设你配置
阅读全文
posted @
2011-11-09 17:35
John Liang
阅读(370)
推荐(0)
RedHat linux下安装hadoop 0.20.2, 并在windows下远程连接此hadoop,开发调试
摘要:1、hadoop 在 redhat linux下的安装过程网上有很多讲授在windows下通过Cygwin安装hadoop的,笔者认为hadoop原始设计就是在linux下安装使用的,在windows下通过Cygwin安装也无非是模拟linux环境再在这个模拟的环境上装hadoop,既然要学hadoop就真枪实弹的在linux下安装来学习,但是要搞一台真正的linux系统对一般个人来说不容易,但是我们可以用虚拟机VMware Player,就是在windows下装一个虚拟机(VMware Player 就是个很好的虚拟机),然后在虚拟机上装一个linux系统,实现和本机windows的通信,具
阅读全文
posted @
2011-11-09 17:30
John Liang
阅读(4441)
推荐(0)
Hadoop简介
摘要:Hadoop包含两个部分:1、HDFS即Hadoop Distributed File System (Hadoop分布式文件系统)HDFS具有高容错性,并且可以被部署在低价的硬件设备之上。HDFS很适合那些有大数据集的应用,并且提供了对数据读写的高吞吐率。HDFS是一个master/slave的结构,就通常的部署来说,在master上只运行一个Namenode,而在每一个slave上运行一个Datanode。HDFS支持传统的层次文件组织结构,同现有的一些文件系统在操作上很类似,比如你可以创建和删除一个文件,把一个文件从一个目录移到另一个目录,重命名等等操作。Namenode管理着整个分布式
阅读全文
posted @
2011-11-09 17:17
John Liang
阅读(430)
推荐(0)