- 博客(12)
- 收藏
- 关注
原创 HashMap源代码
HashMap是最常使用的类,所以学习它的源码很重要。HashMap的结构如下:/** * The table, resized as necessary. Length MUST Always be a power of two. */ transient Entry[] table = (Entry[]) EMPTY_TABLE;由Entry[]
2016-05-30 20:21:19 226
原创 kafka初步认识
名词解释producer:消息生产者,向kafka集群发送消息,它是一个程序consumer:消息消费者,从kafka集群获取数据,它是一个程序broker:kafka集群的最小组成单元,它是一个服务topic:kafka将producer产生的消息按照topic进行分类partition:kafka将每一个topic又分成了一个个分区,每一个分区都是一个有
2016-05-14 13:57:55 409
原创 IDEA常用快捷键
刚刚使用IDEA,有点不习惯,记录下目前工作中常用的快捷键。ctrl+alt+v 抽取变量ctrl+x 删除一行ctrl+d 复制当前行
2016-05-13 10:00:54 223
原创 TCP/IP+BIO
BIO(blocking IO)同步堵塞IO 是最基础的系统间通信方式。从程序角度看,BIO就是当发起IO读写的时候,都是堵塞方式,只有当程序读到流或将流写入操作系统后,才释放。从实现角度看,代码比较简单,通过JAVA的Socket和ServerSocket实现TCP/IP通信,并且将一个socket放入到一个线程中处理,通过多线程保证服务端可以接受多个客户端的连接请求。/** * 抽象
2016-03-31 13:24:17 718
原创 重新出发
最近在找实习,被虐惨了,有很多深刻的感悟,重新出发,为了几个月后的校招冲刺。之前学习的眼光太狭隘,实习准备也不充足,看了牛客网的各种面经,发现自己之前的学习重点完全不对,基础太不扎实了,IO,网络,多线程,JVM等等都不行,只是为了面试理解了一些概念,在技术面中可能给人一种背书的感觉,十分惭愧,所以重新出发,从基础开始一步一步学习。
2016-03-31 12:53:16 254
原创 MR源码学习(三)
job.setOutputFormatClass(TextOutputFormat.class);学习MR的输出过程,依然是从上面的代码作为入口,默认的输出格式是TextOutputFormat类。先不看TextOutputFormat类,看他最顶级的父类OutputFormat/** * OutputFormat describes the output-specification for
2015-12-14 16:12:05 428
原创 HDFS(3)
1.继续研究HDFS写操作的源码过程,客户端通过DistributedFileststem中的create方法创建文件。结构与上一篇读文件的操作类似,会执行FileSystemLinkResolver的resolve方法,即调用docall方法。public FSDataOutputStream doCall(final Path p) throws IOException
2015-12-10 16:07:14 359
原创 HDFS(2)
HDFS中读文件过程,如上图所示。1.打开一个分布式文件系统,也就是API中的filesystem.get()方法,获得一个文件系统实例。2.通过fs的open方法,fs会通过RPC来调用nn,通过方法传入的文件名称,会在nn中得到blocksequence中的一批block信息。3.
2015-12-08 19:06:29 356
原创 HDFS(1)
HDFS中,主要有namenode与datanode节点。其中,namenode节点主要保存数据的元数据信息,datanode保存数据本身。对于 namenode而言,hdfs中只有一个namenode节点,所以namenode至关重要,也就有了namenode的HA研究。nn中具体保存fsimage和edits两种文件,文件位置在hdfs-site.xml中dfs.namenode.name.d
2015-12-07 14:34:21 230
原创 SequenceFile使用随笔
hadoop不适合小文件,所以需要对小文件进行额外处理,常使用SequenceFile,下面是刚刚使用SequenceFile的感悟。1.创建sequenceFilepublic static void main(String[] args) throws Exception { final Configuration conf = new Configuration(); fin
2015-10-24 14:44:58 552
原创 MR源码学习(二)
继续之前的源码学习,上一篇分析了InputFormat的getSplits()方法,接下来是createRecordReader()方法。从这里可以看到该方法为一个split创建一个recordReader,并且在使用split之前会回调recordReader的初始化方法,该方法的具体实现在TextInputFormat中。@Override public RecordReade
2015-10-22 12:09:53 315
原创 MR源码学习(一)
首先说一下MR的执行过程,再按照执行顺序阅读源码。1.map阶段:1.1读取文件内容,把每一行解析成一个键值对。默认的key是每一行文本的偏移量,value是每一行的内容。1.2自定义map函数,对进行处理,转换成输出。其中的数量与的数量没有关系。1.3对输出的进行分区。1.4对不同分区的数据,按照key进行排序,分组。1.5(可选)对数据进行规约。2.reduce阶段
2015-10-21 13:13:20 865
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人