`
sid1211
  • 浏览: 50875 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
    我现在的博客地址是http://www.cnblogs.com/sidmeng/
闭包:函数可以在执行的时候访问它被创建时候所处的上下文环境 一个最常见的闭包的例子 var lis = document.getElementsByTagName("li"); //wrong example 绑定的是变量i,而不是函数在构造时候的变量i的值 var addHandler = function(nodes) { var i; for( i = 0; i < nodes.length; i++) { nodes[i].onclick = function() { alert(i); ...
   最近在搞一些集群的配置管理,使用了pdsh,还是比较好使,首先要通过ssh打通集群中所有主机。    pdsh的 使用方法是:    pdsh -w ssh:user@node[1-n] command
  virtualBox安装完成后,需要虚拟机与主机进行通信,有两种方式可以进行传输。 第一种方法是主机使用secureCRT直接从虚拟机传输或获取文件,类似于两台主机之间的通信,他需要虚拟机的网络设置为桥接模式,并且虚拟机安装了ssh server。 第二种方式就是采用共享文件夹的方式进行通信。首先要安装增前功能,同时在virtualBox中分配数据空间,重启后lsmod | grep vboxvsf,确保加载了vboxsf模块,若没有,使用sudo modprobe vboxvsf加载。在加载过程中有可能出现问题,无法加载vboxsf模块。产生的原因是linux kernel的问题,需 ...
  Datanode block corrupt流程说明 1、 Datanode上有一个线程DataBlockScanner对Datanode上面的block进行数据校验,其中该类中最重要的方法是verifyBlock(Block block),在verifyBlock(Block block)方法中利用了BlockSender,其方法是将block读入到一个空设备(IOUtils.NullOutputStream())中,通过读写进行检验。 2、  如果检验失败后handleScanFailure(Block block),通过RPC直接向Namenode汇报存在坏块,即调 ...
       由于要改进NameNode结构,需要对NameNode内部数据结构进行整理,方便下一步的工作。      NameNode接收Client、DataNode、SecondNameNode的RPC通信后,解析出需要执行的函数,大部分再转发给FSNameSystem类进行处理。FSNameSystem保存了运行时的一些重要结构,总结起来有如下一些: 1.        BlocksMap  blokcsMap;     保存了block-àINode,DatanodeDescriptor的映射 BlocksMap是NameNode中重要的数据结构,保存了三元组,在内存中占据 ...
  DatanodeDescriptor内部结构说明 说明      DatanodeDescriptor保存了特定Datanode上面的一些统计信息,如硬盘容量、使用量,最后更新时间等,DatanodeDescriptor结构属于Namenode的内部结构,并不通过网络向Datanode和Client传输。 内部重要数据结构      DatanodeDescriptor还保存了一个BlockInfo对象,通过该BlockInfo对象能够遍历到该Datanode上面对应的所有block的信息。 DatanodeDescriptor有三个重要的内部类,分别是: 1.        ...
了解LeaseManager类必须了解Lease结构: Lease的基本结构变量有: 1. private final String holder;            持有lease的client name 2. private long lastUpdate;              用于检查租约是否过期 3. private final Collection<String> paths = new T ...
1. 什么是ThreadLocal ThreadLocal变量的作用是生成一个线程局部变量,即每个线程独有的变量,其它线程访问不到。 2. ThreadLocal使用 由于Java对ThreadLocal的定义是以类的形式,而不是以原型变量,所以使用ThreadLocal比C++中的线程局部变量要麻烦。 public class ThreadLocal {       public Object get();   public void set(Object newValue);       public Object initialValue(); } 3. ThreadLocal的作用 T ...
INode类在Namenode中代表了一个树状结构即Namespace,表示的是目录和文件的抽象,INode类是一个抽象类,INodeFile和INodeDirectory是具体实现。 1. INode的变量有 protected byte[] name; protected INodeDirectory parent; protected long modificationTime; protected long accessTime; private long permission; name表示的是该文件或目录名称,parent代表其父节点,modificationTime为修改时间,a ...
DatanodeDescriptor类记录了Datanode的使用情况,如capacity,used等统计信息,DatanodeDescriptor是Namenode内部的数据结构,并不是通过RPC通信从Datanode向Namenode通信时候使用。Namenode从DatanodeDescriptor中读取Datanode统计信息,并显示在jsp页面上,这就是在网页上面显示的统计信息的来源。 public class DatanodeDescriptor extends DatanodeInfo 首先来看一下DatanodeInfo 1. public class DatanodeInfo ...
    之前看了HDFS代码,做了一些整理,陆续贴上来,Namenode中最重要的结构是Namespace和BlocksMap,先把BlocksMap写一下。 BlocksMap里面最重要的一个结构是BlocksInfo,先来看一下BlocksInfo 1. Class BlocksInfo extends Block Block类有三个变量,分别是long blockId;        每个block的id值,唯一的                          long numBytes;      block的大小                           long ge ...
   在Hadoop中,是通过自己的代码来实现RPC机制的,而不是通过sun的实现。    Namenode中存在与Datanode通信,与client通信,近期整理了一下与Namenode与client通信的一个流程,最主要的是熟悉Namenode类,FSNamespace类,FSDirectory类,以及Namespace树状结构和BlocksMap结构。以下一一说明。    以下是基于Cloudera h3b2版本,所以以下的接口流程也请参考相应版本。    由于visio图贴上来很麻烦,这次先不贴用例图了. 接口流程 以下各个接口,将根据用例图加用例说明加以解释。 1. mkdir 1) ...
为了调试远程机器的内存及线程等情况,需要进行远程连接调试,按照如下方法进行: 1. 下载YourKit Java Profiler 首先在server上进行安装,即本机。 下载Linux版本的YourKit Java Profiler 在client端进行安装,即远程主机,由于我们使用的是远程主机操作系统为linux,所以以此为准。 2. 本机安装后,需要有key,可以发送邮件获得15天免费使用 由于远程linux主机使用的是console模式,不需要key,即可使用 3. 对远程主机jdk进行设置 方法是: 1) 首先java –version 获得java的一些版本信息,我获得是 注意红 ...
    对于生产集群,含有上千万文件,每次启动时间将会长达几十分钟,缩小启动时间将大大提高生产力。所以对启动时的各个环节进行分析并提出相应的解决方案用于减少启动时间。 1. NameNode启动中对fsimage加载过程解析 Hadoop ...
Global site tag (gtag.js) - Google Analytics