- 博客(10)
- 资源 (11)
- 收藏
- 关注
原创 Hadoop MapReduce之作业提交(客户端)
Hadoop MapReduce之jar文件上传 在提交作业时,我们经常会执行下面类似命令:hadoop jar wordcount.jar test.WordCount,然后等待作业完成,查看结果。在作业执行流程中客户端会把jar文件上传至HDFS内,然后由JT初始化作业,并发放给TT执行具体的任务,这里我们主要看客户端的操作,了解这些我们可以自定义更为方便的作业提交方式。hadoop是
2013-10-30 16:08:35 6059
原创 Oracle 在线重定义
在一个高并发的场景中,可能会碰到修改表结构的情况,为了不影响对外服务,可以使用在线重定义的功能,他支持1、基于主键 2、基于rowid的重定义,具体示例如下:-- 1、建立表结构SQL> l 1 CREATE TABLE test( 2 id int primary key, 3 msg1 varchar2(20), 4 msg2 varchar2(30)
2013-10-17 18:32:45 907
原创 MapReduce小示例
方便测试,特放此处版本:1.0.4使用新的apipackage test;import java.io.IOException;import java.util.Iterator;import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;import org.apach
2013-10-17 14:44:35 829
原创 Hadoop DataNode启动之offferService
offerService包含了DN主循环线程的核心功能,DN对其提供保护,如果该函数执行失败,则由DN线程sleep5秒后重新执行,在DN的线程体中,我们可以看到该逻辑。对于offerService中的部分功能,以前的文章里已经描述过,比如心跳、异步块报告,但都是单独描述,他们之间的协调可以通过offerService体现出来,例如执行先后顺序,执行间隔这里都有体现。 pub
2013-10-15 14:15:47 1272
原创 Hadoop DataNode启动之heartbeat
heartbeat是DN与NN之间的一种通信机制,DN会通过它向NN汇报自身是否存活,当然还有其他信息,当一个DN超过一段时间没发送心跳信号,则NN认为该节点已失效,会对该节点上的数据进行修复,节点退役等一系列操作。心跳会周期性发送,发送的相关代码放在DN的offerService中,发送间隔可以在配置文件中自定义,该机制依赖以前讲到的动态代理和RPC,通信协议为DatanodeProtocol。
2013-10-11 16:53:00 1880
原创 Hadoop DataNode启动之register
DN启动时会向NN注册自身信息以获得NN对自己的控制,这时就需要一个信息载体在他们之间进行传递,这个类就是DatanodeRegistration,注册动作使用了RPC机制,通过DatanodeProtocol协议与NN进行通信,对于该注册体,由于需要在网络上传输,因此实现了Writable的序列化接口,具体传输内容包括如下:exportedKeys ExportedBlockKeys
2013-10-10 11:54:48 1504
原创 Hadoop DataNode启动之DataBlockScanner
存储在HDFS中的数据块每隔一段时间就会进行校验,因为由于硬件故障,系统BUG,异常断电等问题会导致数据块损坏,这时就需要HDFS采用其他块副本来修复。Hadoop为了感应块的损坏会启动一个后台线程周期性的对数据块进行检测,这个原理和客户端读取数据时的校验规则一样,以块为单位,每读取一个block,都要对其内的每一个chunk进行校验,默认情况下一个block大小为64M,每个chunk大小为51
2013-10-08 15:53:27 1992 2
原创 Hadoop DataNode启动之dataXceiverServer
DN的主要工作用来存取数据,与其产生块交互的主要有两种角色:客户端和其他DN,数据块的收发是比较繁重的工作,虽然DN不必面临高并发的场景,但如果是串行服务的话必然会降低效率,为此,DN在每次接到块操作请求时,都会产生一个线程用于服务,这里说的dataXceiverServer就类似一餐馆老板,每来一个客人,就派一个小伙计出来服务,一对一的。DataXceiver就是小伙计的角色。dataXceiv
2013-10-04 14:08:59 1651
原创 Hadoop DataNode启动之asyncDiskService
客户端在删除HDFS里的文件时,首先是更新NN里的元数据,然后通过心跳向DN发送块删除指令,DN接到指令执行块删除操作,和异步块报告一样,这个过程也是异步的,原因是出于性能和实时性的考虑,在DN中,每个文件卷都有一个专门的线程池来接收删除指令,该池的默认删除线程有4个,从名字可以看出,该类并不只是用于块删除操作的,在以后的版本中可能会增加其他的服务线程。该类在异步块报告线程启动后紧跟创建,下面分析
2013-10-02 10:55:22 1639
原创 Hadoop DataNode启动之asyncBlockReport
DN会不定期定期向NN发送块报告,以使NN能知道自己的块存储情况,便于对外提供服务,对于Hadoop这个大货来说,存放的数据量非常大,如果每次块报告时同步的扫描block显然是不现实的,这时就需要有服务把块报告先准备好,以提高报告的效率,这个服务就是asyncBlockReport,这是一个后台守护线程,在DN创建FSDataset时一并启动。public FSDataset(DataSt
2013-10-01 22:09:51 1439
winutils.exe
2014-03-15
hadoop Join代码(map join 和reduce join)
2013-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人