hadoop
文章平均质量分 72
lance_123
2010-07-06
目前在某家互联网公司从事软件开发工作.
主要研究分布式计算与存储,数据库技术,数据挖掘算法,WEB搜索技术,开源项目等,另外对数学,人工智能,心理学也感兴趣。
联系方式:[email protected]
微博:http://t.sina.com.cn/1685831233
展开
-
FP-tree的hadoop实现
FP树是关联规则算法的一种,主要是用于分析数据项之间的关联性,将关联性大的数据项找出来,具体的一些概念见书《数据挖掘概念与技术》上介绍的频繁项集,支持度等。算法执行过程:1. 扫描数据,计算一项集的计数。2. 根据计数与支持度计算出频繁一项集,对于频繁一项集按照计数从大到小进行排序,原创 2010-04-20 14:37:00 · 4796 阅读 · 4 评论 -
Hbase中结果合并的分析
当client向hregion端put()数据时,HRegion会判断当前的memstore的大小是否大于参数hbase.hregion.memstore.flush.size值,如果大于,则执行flushcache()操作,将hregion上的memstore刷新到store files文件里。而在flushcache时,会先判断当前的region是否满足以下条件Store files number > 参数hbase.hstore.blockingStoreFiles值如果满足,则会将该regi原创 2011-05-24 23:57:00 · 4312 阅读 · 0 评论 -
DataNode的分析
<br /><br />相对NN,DN主要就是对数据块的副本进行操作,如增删改等操作,管理DN中的这些副本,另外提供对副本的接口给client,NN,其他的DN。<br />startDataNode()方法:<br />首先从配置文件中读取与DN相关的配置参数。<br />与NN进行握手。<br />根据参数配置好的数据块存放的文件目录,为每个目录建立起DataStorage,然后调用该类的recoverTransitionRead方法去读取存储元信息,锁住目录,然后转变文件状态。做一些格式化,恢原创 2011-01-15 22:39:00 · 3127 阅读 · 0 评论 -
datanode中的类结构图
之前大致把DN中的主要类代码看了一下,框架基本了解,刚才用VS简单的把类图模块画了一下,整理自已的思路。涉及比较多的是副本的传输和副本的管理二大块内容。原创 2011-01-14 20:28:00 · 1954 阅读 · 0 评论 -
datanode进程的分析(一)
数据存储结点主类。首先启动一系列服务端口,如接收数据的端口,web server访问端口等。然后调用startDataNode()函数去做以下事情。启动DN的数据接收服务守护线程DataXceiverServer。循环判断是否需要更新,如参数发生变化了,则需要重新初始化DN。然后再发送心跳,发送最近接收的block,报告DN当前的block列表给NN。报告DN当前的所有block列表的时间间隔相对要长很多,默认是1个小时报告一次。 run()dataXceiverServer.start();whi原创 2011-01-08 13:20:00 · 2580 阅读 · 0 评论 -
hdfs中的NameNode,SecondaryNameNode,BackupNode
NameNode:暂且叫它为元数据结点。它实现了NamenodeProtocols中的接口,而该接口分别有三个父类:ClientProtocol,与客户端的通信。DatanodeProtocol,与DN的通信。NamenodeProtocol,与BN,SNN的通信。主要有二大功能:1. 文件元信息的管理,由FSNamesystem类完成,主要提供了文件的相关操作,将文件信息保存到内存中,同时将操作日志保存到日志文件中。2. 数据块的管理,由BlockManager类完成,原创 2011-01-03 21:25:00 · 3903 阅读 · 0 评论 -
Capacity Scheduler and Dynamic Scheduler
CapacityTaskScheduler链接:http://hadoop.apache.org/common/docs/r0.19.2/capacity_scheduler.htmlhttp://hadoop.apache.org/common/docs/r0.20.2/capacity_scheduler.htmlhttps://issues.apache.org/jira/browse/HADOOP-3445特性:支持多个队列,每个job只会被提交到一个队列上。每个队列被分配了集群容量的一部分容量原创 2010-12-21 22:36:00 · 2213 阅读 · 0 评论 -
hadoop中的streaming和pipes
Streaming应用程序在提交streaming job的命令样例,需要指定JAR包以及相应的参数值。$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar / -input myInputDirs / -output myOutputDir / -mapper myPythonScript.py / -reducer /bin/wc / -file myPythonScri原创 2010-12-11 18:10:00 · 3796 阅读 · 4 评论 -
hiveql的执行过程
周末花了点时间,结合以前看的,大体看了一下Hive源码,主要包括客户/服务器通信,语法解析器,语义分析器,逻辑计划生成器,计划优化器,物理计划生成器,物理计划执行器等部分。分别由包parse,plan, optimizer, Exec中的代码来实现的。 Hive是将SQL语句转换成hadoop的MapReduce程序,通常在客户端执行hive命令,然后输入SQL语句后,hive将SQL语句生成多个MR的job,然后将这些job提交给hadoop进行执行,完成后,再把结果放入到hdf原创 2010-10-17 22:23:00 · 3330 阅读 · 0 评论 -
FairScheduler(公平调度器)的源码阅读
FairScheduler是hadoop中的作业公平调度器,主要是解决当TT发送心跳告诉JT当前的空闲slots时,希望JT分配给TT相应多个task,让TT去执行这些task。所以JT就需要一个调度器来对作业进行调度,选择出作业,然后将作业的task分配TT去执行。而hadoop中的task可以分为map,reduce,jobsetup,jobcleanup,taskcleanup这五种task。关于setup,cleanup task的信息在https://issues.apache.org/jira/原创 2010-12-05 14:52:00 · 4461 阅读 · 0 评论 -
mapreduce中jobtracker进程的分析
对于JobTracker来说,主要做的事情有:与客户端的通信:接收客户端的命令,如提交job,kill job。接收TaskTracker心跳:为TT分配Task任务队列,更新task状态,以及监测TT的状态。内部处理操作:对job进行初始化,分解成多个map,reducetask任务。对许多job进行排列,按照某种调度算法排列。更新task的状态。更新job的状态。 submitJob当client端调用submitJob方法提交job后,通过远程调用Jobtracker进程的submitJob方法。原创 2010-11-28 15:17:00 · 6232 阅读 · 0 评论 -
Hdfs-Raid tools文档翻译
<br /><br /> 国庆放假7天,花了二天时间搬家,花了二天时间去绍兴,接下来这三天用来学习,这几周比较忙,加班比较多,手头上有几个task,因此没有及时更新blog,但是不管再忙,都一定要花时间来学习,上周javaone大会结束了,看了毕玄等同学的分享,java的性能方面很多公司还在研究当中,特别GC管理这块,hadoop书出了第二版,网上已经有下载了,这个月hadoop world也要举办,基本上是跟hadoop相关的session,taobao的TFS开源,比较靠谱的东西,同时也适合于原创 2010-10-05 21:30:00 · 2661 阅读 · 0 评论 -
Hadoop 0.21.0的新功能
Hadoop 0.21.0的新功能Hadoop发布了最新版本,这版与之前的版本,在功能上有较大的改进,增加了一些新的功能。主要如下:http://www.cloudera.com/blog/2010/08/what%E2%80%99s-new-in-apache-hadoop-0-21/Common:classification annotationsLarge-Scale Automated Test Frameworkfault injection frameworkMockito-based test原创 2010-08-29 22:08:00 · 1051 阅读 · 0 评论 -
client读写hdfs的源码分析总结
周末花了一天的时间仔细了重温了一下client对HDFS文件的读写过程,总结如下: 每次读写都是以一个数据块的形式来进行的,并且包括数据内容和数据的校验值。另外,到namenode上获取相应的信息都是用RPC来通信的,而到datanode获取真正的数据块内容是由Socket的网络流来进行的,这是因为二者的通信数据量还是有些差别的,另外一点是考虑了网络拥塞问题。 同时客户端为了提高效率,一般都是从datanode上读写一个块大小的数据内容,然后缓存到本地内存的。另外到namenode上读取数原创 2010-08-09 20:39:00 · 1072 阅读 · 0 评论 -
hadoop中rpc的具体实现:
还是一年前看过rpc模块,今天回头去复习了一下,发现有一些小小的改动,增加了一些接口,比如RPCEngine。还增加了对socket一些参数的配置,比如时间设置等。但总体思路基本没有变,关键就是下面几个点。1. java中有代理类这样的机制,即只需要知道类名和方法名,即可以通过这个代理类去调用真正的类方法,而不需要直接去new一个对象,再调用该对象的方法来完成。特别是在RPC中,当客户端要调用某个远程对象的方法时,即可调用代理类,然后让代理类与远程进程进行通信,得到函数的返回值,再返回给客原创 2011-04-24 20:45:00 · 2267 阅读 · 0 评论