- 博客(22)
- 资源 (4)
- 收藏
- 关注
原创 hadoop 2.6.3 BlockPlacementPolicyDefault源代码分析
BlockPlacementPolicyDefault这个类负责为一个数据块的各副本选择目标数据结点。副本放置策略如下:如果写入者在一个datanode上,那么第一个副本在本机。否则随机选取一个结点。第二个副本先在另一个机架上,第三个副本被放置在同第二个副本同一机架,但不同的数据结点上。/** * The class is responsible for choosing the des
2016-01-28 18:51:46 1803 1
原创 hadoop 2.6.3 BlockPlacementPolicy分析
BlockPlacementPolicyDefault是BlockPlacementPolicy的实现类,你可以实现自己的实现类,用dfs.block.replicator.classname参数配置你的实现类。我们先看一下接口说明: 以下的方法为写入器选择numOfReplicas个数据结点来存储一个数据块的副本,数据块大小为blocksize。如果数量不够numOfReplic
2016-01-28 15:25:14 3009
原创 hadoop 2.6.3 CachedDNSToSwitchMapping源代码分析
CachedDNSToSwitchMapping的作用是对已经解析了的ip地址和rack的地址的映射进行缓冲。/** * A cached implementation of DNSToSwitchMapping that takes an * raw DNSToSwitchMapping and stores the resolved network location in * a
2016-01-28 10:34:13 826
原创 hadoop 2.6.0 CorruptReplicasMap源代码分析
CorruptReplicasMap 存储文件系统中坏块的相关信息。一个数据块只有在它所有的副本都损坏的情况下才认为是坏的。当汇报一个数据块的副本时,我们隐藏任何坏的副本的消息。如果一个数据块有期望数据的好的副本,这些损坏的副本会被立即消除。/** * Stores information about all corrupt blocks in the File System. * A
2016-01-27 18:28:56 695
原创 hadoop 2.6.0 hdfs ReplicationMonitor 源代码分析
ReplicationMonitor每一段时间执行computeDatanodeWork,processPendingReplications,然后再sleep一段时间。private class ReplicationMonitor implements Runnable { @Override public void run() { while (name
2016-01-27 17:38:23 517
原创 hadoop 2.6.0 hadoop 对Namenode image文件和Edit文件进行清理的NNStorageRetentionManager源代码分析
NNStorageRetentionManager对文件进行定期旋转删除。NNStorageRetentionManager的构造方法如下: public NNStorageRetentionManager(Configuration conf, NNStorage storage, LogsPurgeable purgeableLogs) { this(conf,
2016-01-27 17:15:15 1509
原创 hadoop 2.6 Trash清除机制源代码分析
Namenode的垃圾回收机制,只有在命令行对文件进行删除时,会判断系统是否使用Trash,如果使用,则变成rename操作。在Namenode类的构造函数中,有this.haContext = createHAContext();createHAContext()初始化一个NamenodeHAContext对象,代码如下: protected HAContext createHACo
2016-01-26 18:35:39 1372
原创 hadoop 2.6.0 JvmPauseMonitor源代码分析
JvmPauseMonitor,此类建立一个简单的线程。在此线程中,在循环中运行sleep一段时间方法,如果sleep花费的时间比传递给sleep方法的时间长,就意味着JVM或者宿主机已经出现了停顿处理现象,可能会导致其它问题,如果这种停顿被监测出来,线程会打印一个消息。/** * Class which sets up a simple thread which runs in a loo
2016-01-26 10:06:05 1842
原创 Hadoop 2.6.0 FSDirectory源代码分析
FSDirectory和FSNamesystem类管理命名空间的状态,FSDirectory 完全是内存的数据结构,它的所有操作都发生在内存中。相反,FSNamesystem把所有的操作都持久化到磁盘上。/** * Both FSDirectory and FSNamesystem manage the state of the namespace. * FSDirectory is
2016-01-25 17:49:57 758
原创 INodeMap
INodeMap利用LightWeightGSet来存储INode对象,为什么可以存储INode ID和INode的映射呢?因为INode的equals和hashCode方法都已经重载,并且只根据id判断,那么知道id之后,其它字段为空的Inode对象,就可以得到映射的对象。equals和hashCode 方法如下: @Override public final boolean eq
2016-01-25 15:33:58 835
原创 hadoop 2.6.0 BlockManager 用到的类分析
Host2NodesMap存放的是ip地址,主机名和DatanodeDescriptor之间的映射,mapHost存放的是主机名和ip 地址之间的映射, map存放的是ip地址和DatanodeDescriptor之间的映射.class Host2NodesMap { private HashMap mapHost = new HashMap(); private final Ha
2016-01-25 15:28:38 606
原创 hadoop 2.6.0 安全问题--UserGroupInformation
UserGroupInformation可以使用任何你想拥有权限的用户来操作集群。在UserGroupInformation的loginUserFromSubject方法如下,首先系统获到系统用户,然后再判断是否设置环境变量HADOOP_PROXY_USER,或者系统属性HADOOP_PROXY_USER,如果设置那么loginUser就为HADOOP_PROXY_USER,代码如下:@I
2016-01-25 14:54:24 3425
原创 hadoop 2.6 HdfsServerConstants源代码分析
org.apache.hadoop.hdfs.server.common.HdfsServerConstants类定义了一些内部常量。结点类型,只有NAME_NODE,DATA_NODE,JOURNAL_NODE三种。 /** * Type of the node */ static public enum NodeType { NAME_NODE, D
2016-01-22 18:11:55 571
原创 hadoop 2.6.0 org.apache.hadoop.hdfs.server.blockmanagement。HeartbeatManager源代码分析
先分析HeartbeatManager的成员变量: datanodes存储的活着的datanodes; stats存储系统全局的一些统计信息。/** * Stores a subset of the datanodeMap in DatanodeManager, * containing nodes that are considered alive. * The
2016-01-22 14:45:42 1779
原创 hadoop 2.6 NetworkTopology源代码分析
Node接口定义了一个网络拓扑的一个结点。结点可能是一个代表数据结点的叶子结点,或者代表数据中心或者机架的中间结点。/** The interface defines a node in a network topology. * A node may be a leave representing a data node or an inner * node representing
2016-01-22 10:17:46 1642
原创 hadoop 2.6 PendingBlockInfo源代码分析
存放PendingBlockInfo/** * An object that contains information about a block that * is being replicated. It records the timestamp when the * system started replicating the most recent copy
2016-01-21 11:20:42 520
原创 使用check_tcp来监测端口是否通
把所有服务器的ip地址都放到accept1文件中,使用批量执行程序,命令如下:./upgrade.sh common accept1 '/usr/local/nagios/libexec/check_tcp -H sdf-namenode1 -p 9000'如果结果成功,会输出TCP OK,输出如下:==================10.130.211
2016-01-21 10:36:37 2054
原创 hadoop 2.6 Node,DatanodeID,datanodeInfo,DatanodeDescriptor解析
Node 代表一个子结点或者一个中间结点。/** The interface defines a node in a network topology. * A node may be a leave representing a data node or an inner * node representing a datacenter or rack. * Each data has
2016-01-15 09:59:55 1175
原创 hadoop 2.6 IntrusiveCollection 源代码分析
IntrusiveCollection是一个链表,链表中的元素自己负责存储前一个元素和下一个元素的指针。如果列表中有很多元素,或者元素在很多列表中,这样可以节省很多内存。头定义如下:/** * Implements an intrusive doubly-linked list. * * An intrusive linked list is one in which the e
2016-01-13 17:01:58 389
原创 hadoop 2.6.0 LightWeightGSet源代码分析
LightWeightGSet的作用用一个数组来存储元素,并且用链表来解决冲突。不能rehash,所以内部数组永远不用改变大小。此类不支持空元素。此类也不是线程安全的。有两个类型参数,第一个用于查找元素,第二个类型参数必须是第一个类型参数的子类,并且必须实现LinkedElement接口。/** * A low memory footprint {@link GSet} implementa
2016-01-12 18:44:45 1392
原创 Hadoop2.6 HDFS EDIT LOG分析
以hadoop fs -chown data_sum:data_sum /test/input为例,讲解决EditLog的执行过程。 当客户端执行以上命令时,通过RPC调用,服务器端执行NameNodeRpcServer.setOwner方法,代码如下: @Override // ClientProtocol public void setOwner(String src, Str
2016-01-08 14:49:55 13120
原创 LongBitFormat应用
LongBitFormat是一个工具类,可以把多项小的数据值压缩在一个long类型的数据中,以下为一个测试用例,PREFERED_BLOCK_SIZE占48位,REPLICATION占12位,STORAGE_POLICY_ID占4位,共占64位,并且提供了从一个long类型值中,提取各值的方法。还提供了一个根据各值,得到组合的long值的方法toLong(long preferredBlockS
2016-01-05 15:26:34 1615
Hive 性能测试程序,https://github.com/hortonworks/hive-testbench 编译
2023-02-24
The Log-Structured Merge-Tree (LSM-Tree).pdf
2021-06-22
Distributed cycle detection in large-scale sparse graphs.pdf
2020-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人