2012年3月26日

hadoop unit test 问题

摘要: 最近搭建了hudson服务器用于跑unit test,按说这已经是轻车熟路毫无困难了,但是当ut自动跑起来的时候发现了一个错误。错误内容是 WARN Invalid directory in dfs.data.dir: Incorrect permission forbuild/test/data/dfs/data/data1, expected: rwxr-xr-x, while actual:rwxrwxr-x WARN Invalid directory in dfs.data.dir: Incorrect permission forbuild/test/data/dfs/dat... 阅读全文

posted @ 2012-03-26 14:11 萌@宇 阅读(485) 评论(0) 推荐(0) 编辑

2012年3月25日

hadoop hdfs总结 NameNode部分 3 ----DatanodeDescriptor

摘要: DatanodeDescriptor是对DataNode的抽象,它是NameNode的内部数据结构,配合BlockMap和INode,记录了文件系统中所有Datanodes包含的Block信息,以及对应的INode信息。 DatanodeDescriptor继承自DatanodeInfo,DatanodeInfo继承自DatanodeID。 一、DatanodeID DatanodeID有以下属性: public String name; /// hostname:portNumber public String storageID; /// unique per clus... 阅读全文

posted @ 2012-03-25 21:11 萌@宇 阅读(1139) 评论(0) 推荐(0) 编辑

2012年3月22日

rsync 使用

摘要: 公司采用rsync进行集群内的数据传输以及脚本运行,不同于前公司的ssh,scp直接开搞。 记录一下使用方法: 服务器已经装好,配置文件在/etc/rsyncd.conf rsync source(本地文件) $USER@IP::temp/temp/ 本地到远程其中,路径是在rsyncd.conf 配置的。 rsync $USER@IP::temp/temp/$somefilesource(本地文件) 远程到本地 阅读全文

posted @ 2012-03-22 17:57 萌@宇 阅读(198) 评论(0) 推荐(0) 编辑

最近近况

摘要: 我已经离开了淘宝,最近入职新浪。说实话,离开一家公司就像离开一个朋友一样,不是轻轻松松上车走人那般。 最近,我还是致力于hadoop的分布式开发,当然更多的是学习。会继续hadoop的源码分析。 我在github上维护了一个库,比较简单的bash脚本,https://github.com/jiangyu/bash。 阅读全文

posted @ 2012-03-22 09:41 萌@宇 阅读(139) 评论(0) 推荐(0) 编辑

2012年3月21日

SmartHost

摘要: SmartHosts是一个在Google Code上维护更新的Hosts文件。地址是http://code.google.com/p/smarthosts/ 阅读全文

posted @ 2012-03-21 13:09 萌@宇 阅读(352) 评论(0) 推荐(0) 编辑

2012年3月18日

git 使用记录

摘要: 1、git reset --hard HEAD 取消本次提交,即add之后的所有提交至上一次commit的状态,会让git diff 和git diff --cached显示为空。2、git checkout $fileName 如果只想恢复一个文件,将上次提交的状态从HEAD签出并恢复成为修改状态。 上面两种方式只是在文件只是add到本地的stage转台进行恢复。如果文件已经被commit了,那么恢复就是指创建一个新的提交并修改上次的错误。3、git revert HEAD 将上次commit的进行修复。即提交一次新的commit修改上次的commit。 阅读全文

posted @ 2012-03-18 21:35 萌@宇 阅读(175) 评论(0) 推荐(0) 编辑

hadoop hdfs总结 NameNode部分 2

摘要: 二、BlocksMap部分 在NameNode 介绍1中,说明了INode部分,INode抽象了NameNode中文件属性,与之相同的是Block部分,Block是对NameNode中实际存储的Block的抽象。这两部分构成了NameNode的最重要的元信息。 Block继承结构为基类Block,BlockInfo继承自Block,是BlocksMap的内部类,BlocksMap是BlockInfo的一个hashmap存储。 首先说明一下BlockInfo的意义,在hdfs中,数据实际上是存储在DataNodes中的Block,每个Block是64M(可配置),文件较大时对应需要多个Bl... 阅读全文

posted @ 2012-03-18 11:44 萌@宇 阅读(693) 评论(0) 推荐(0) 编辑

2012年3月13日

java 类内存分配计算

摘要: 因为跟同事大哥一起看一个社区的jira,不得不恶补了一下java的类内存分配与使用计算方法。原文请参照http://www.codeinstructions.com/2008/12/java-objects-memory-structure.html。不得不说,一件事情做进去真的越来越复杂。 在c和c++中,程序员可以自由的操纵内存数据,包括内存分配,内存释放等等,在java中这些繁琐(或者也可以说其实不错)的特性完全由虚拟机搞定,不用再管内存分配回收,看起来相当爽,但是到底类占用了多少空间,如何计算,对于大内存应用的程序,如hadoop hbase等有十分现实的意义。 首先描述一下内... 阅读全文

posted @ 2012-03-13 18:02 萌@宇 阅读(693) 评论(0) 推荐(0) 编辑

2012年3月12日

hadoop hdfs总结 NameNode部分 1

摘要: 一、INode部分 先画了一下类图,比较简单。 1、INode是抽象类,有两个子类,INodeFile和INodeDirectory,对了了file和directory。 INode定义了一些基本属性,如name,parent,modificationTime,accessTime,还有ugi信息等。INode implements Comparable是可比较的,可以通过二分查找找到树状结构中对应的INode。 此外,INode中重要的方法是public final ContentSummary computeContentSummary() ,计算该INode树状结构下的统计数据,如f.. 阅读全文

posted @ 2012-03-12 00:07 萌@宇 阅读(1174) 评论(0) 推荐(0) 编辑

2012年3月11日

hadoop hdfs总结 NameNode部分-- 概述

摘要: 以后的代码总结全部基于cloudera CDH3B2源码进行。 NameNode需要处理三部分工作: 1、NameNode需要对内存中的数据进行管理,包括有INode信息,Block信息,其中INode信息是间断性的向磁盘刷,进行固话,而Block信息则是在启动过程中从Datanode的心跳汇报中获得的。在这个过程中,还需要对日志进行处理,包括FSImage和Editlog。 2、与DataNode进行通信。 3、与Client进行通信。 其中2、3是通过底层的IPC框架完成,2、3将会在后面对DataNode和Client进行介绍时详细说明。 hdfs的设计参照了linux ext文件系统. 阅读全文

posted @ 2012-03-11 09:22 萌@宇 阅读(323) 评论(0) 推荐(0) 编辑

导航