- 博客(18)
- 资源 (14)
- 问答 (1)
- 收藏
- 关注
原创 hadoop 从mysql中读取数据写到hdfs
定义类import java.io.DataInput;import java.io.DataOutput;import java.io.IOException;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import org.apache.hadoop.i
2017-06-30 21:39:17 3741 2
原创 Arraylist源码分析
1.ArrayList是基于数组实现的。由此会产生一些问题,数组大小是固定的,Arraylist是支持动态增加的,那又是如何做到的。今天看了下源码,和大家分享下。 2. public boolean add(E e) { //首先是这个函数 ensureCapacityInternal(size + 1); // Increments modCount!!
2017-06-30 20:14:05 543
原创 hadoop二次排序解析
二次排序思路分析试验数据 100 12100 23100 9101 32101 30 99 2399 202.定义数据类型intpair,第一个数字为first,第二个数字为secondpublic static class IntPair implements WritableComparable<IntPair> { int first;
2017-06-27 17:38:08 533
原创 hadoop自定义输出格式
1.主要继承这个OutputFormat类,实现里面的方法getRecordWritercheckOutputSpecsgetOutputCommitter2.主要实现第一个方法,这里我们把结果输出到mysql中public class NewSqlOutputFormat extends OutputFormat<Text, IntWritable> { @Override pu
2017-06-27 11:25:58 1116
原创 Flume+Kafka+Storm
本篇主要讲述,flume收集日志数据,这里写了脚本,日志数据每隔一秒写入一条记录,flume将记录写到Kafka中,供Storm进行处理,这里的storm,可参考的我的其它文章,这里就不讲了。产生数据脚本。 python脚本#!/usr/bin/pythonimport timefile1=open("/opt/app/log.log","a");mess="message";file
2017-06-07 17:52:35 354
原创 java多线程信号量
信号量解决了锁一次只能让一个线程访问资源的问题,信号量可以指定多个线程,同时访问一个资源。acquire()方法会尝试获得许可,若无法获得,则继续等待,直到获得许可。访问结束后,释放资源。public class SemapDemo implements Runnable { final Semaphore semp=new Semaphore(5); @Override pu
2017-06-06 16:43:32 1289
原创 Future模式简单实现
概述,Future模式是多线程开发中比较常见模式,核心思想是异步调用,思路是执行函数时,马上得到返回结果,但是并不急于处理,而去执行其它业务逻辑,最后再使用比较慢的数据,就不存在无谓的等待,充分利用的所有的时间片段。提高响应速度FutureDatapublic class FutureData implements Data { protected RealData realdata=nu
2017-06-06 12:53:46 451
原创 eclipse搭建kafka开发环境
下载源文件,包括源代码,和二进制版本的。以kafka-0.10.0.1为例解压源代码,把源代码中的示例文件,大概路径是examples下,点到kafka时,直接点复制,把代码复制到eclipse中,建立项目,我建立的动态web项目,直接把二进制版本包中lib下的jar全部得到到web项目下lib目录下。如图所示 4.在linux中建立一下topic 5.代码要修改下可以参考我的Prod
2017-06-05 21:45:42 3937
原创 storm实时消费kafka数据
程序环境,在kafka创建名称为data的topic,开启消费者模式,准备输入数据。程序的pom.xml文件 <dependencies> <dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-core</artifactId> <version>1.0.2</version> <
2017-06-05 16:30:15 17820 3
原创 AVL树画法
1.插入数据 16,3,7,11,9,26,18,14,15 2. 先强调了一个圆圈里面有个叉代表这一步要进行调整,至于是单旋,还是双旋,具体分析。以第三步为例,插入7的时候,从它到父结点,和父结点到祖结点,方向是不一致的,要调整两步,以第五步插入9为例,从它到父结点,和父结点到祖结点,方向是一致的,故调整一步。 3.至于正确性已经有人验证过了,请参考http://blog.csdn.
2017-06-04 20:25:36 2429
原创 newScheduledThreadPool
这是一个可以根据时间对线程进行调度的线程池,直接看示例public class AddThread implements Runnable{ int sum=0; @Override synchronized public void run() { System.out.println(Thread.currentThread().getName()+":
2017-06-04 17:57:25 1295
原创 实现生产者-消费者模式
实现生产者public class Producer extends Thread{ private volatile boolean isRunning=true; private BlockingQueue<PCData> queue; //数据缓存区 private static AtomicInteger count=new AtomicInteger();
2017-06-04 17:04:21 275
原创 Synchronized同步静态方法和非静态方法
直接作用于实例方法,相当于给当前对象加锁,进入同步代码前要获得当前实例的锁。这个锁称为对象锁,加锁的对象是当前实例,两个线程使用的是同一个对象public class Syn implements Runnable { static Syn syn=new Syn(); static int i=0; public synchronized void increase(
2017-06-02 10:09:12 1219
转载 哲学家就餐问题实现
直接对筷子资源进行加锁,只允许一个人同时吃,这种情况只能同时一个人吃public class PerThread extends Thread { private static int[] chopstick = { 1, 1, 1, 1, 1 }; private int i; public PerThread(int i) { this.i =
2017-06-01 16:51:15 546
原创 大数据工程师面试总结
总结一些比较好的博客1.wireshark抓包图解 TCP三次握手/四次挥手详解2.99%的人都理解错了HTTP中GET与POST的区别3.HTTPS那些事 用java实现HTTPS工作原理4.HashMap和Hashtable的区别5.ThreadLocal详解6.深入理解ThreadLocal7.volatile关键字8.推荐书单9.Conurr...
2017-06-01 16:29:20 1207 1
javax.mail.jar
2016-06-25
commons-email-1.3.jar_mail.jar_activation.jar
2016-06-22
hadoop中找不到jobtracker的源码
2017-06-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人