自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

scuwangjianfei

梦想一定要求有,万一实现了呢?

  • 博客(43)
  • 资源 (2)
  • 收藏
  • 关注

转载 Spark IndexedRDD:高效细粒度更新的RDD

问题由来由于RDD是只读不可更改的,即Spark RDD的Immutable特性,如果想要更新或删除RDD里面的数据,就要遍历整个RDD进行操作,并生成一个新的RDD。有的同学会有疑问,为什么不把RDD设计成可读写,这样就不会有这些问题。我刚开始研究Spark时也有这个困惑,后来查了相关资料,RDD设计为只读不可更改是有原因的。这样设计是为了保证数据一致性,简化不必要的锁机制。当执行update或

2016-10-18 14:22:00 619

原创 Spark Broadcast 广播变量

广播变量 A broadcast variable. Broadcast variables allow the programmer to keep a read-only variable * cached on each machine rather than shipping a copy of it with tasks. They can be used, for * example

2016-10-18 09:33:12 754

原创 Hadoop 编程模型 VS Spark 编程模型

Apache Spark的高性能一定程度上取决于它采用的异步并发模型(这里指server/driver端采用的模型),这与Hadoop 2.0(包括YARN和MapReduce)是一致的。Hadoop 2.0自己实现了类似Actor的异步并发模型,实现方式是epoll+状态机,而Apache Spark则直接采用了开源软件Akka,该软件实现了Actor模型,性能非常高。尽管二者在server端采用

2016-10-18 09:32:04 473

原创 How to become a google software engineer

You can follow me and fork my rep https://github.com/codlife https://github.com/codlife/google-interview-university Thank you!

2016-10-11 17:21:35 409

原创 阅读计划

好书推荐:读书让你的心智走向成熟,尤其是各领域的数据-查理芒格(巴菲他的精神伴侣)经济学书籍: 《富爸爸穷爸爸》:待读小说系列: 《摆渡人》 如果命运是一条孤独的河流,谁会是你的灵魂的摆渡人? I exist because you need me

2016-07-24 19:14:47 383

原创 设计模式学习-工厂模式/桥接模式

Windows 对用户 提供统一的服务,具体 实现依赖于WindowsAbstractFactory Windows 针对用户 提供统一的服务,具体接口实现依赖于WindowsAbstractFactory 针对不同窗口,有不同的具体实现MacWindowsFacotry 和WindowsWindowsFactory等

2016-06-24 16:49:50 808

原创 Hadoop2.0 源码学习方法

希望通过学习hadoop源码,深刻理解分布式系统设计原理。 hadoop源码学习思路:首先了解各个功能模块,然后选择一个 自己感兴趣的模块开始阅读。 分布式计算(map reduce),存储(hdfs),资源管理(yarn)整体学习思路其实分为三个阶段:应用层面,首先用熟hadoop阅读源码层面,这个是重头戏,选择一个自己感兴趣的模块开始模块,一般来讲client模块比较简单,可以先看 cl

2016-06-18 22:41:55 501

原创 Eclipse 编译错误 Access restriction:The type *** is not accessible due to restriction on... 解决方案

Eclipse 编译错误 Access restriction:The type * is not accessible due to restriction on… 解决方案 Eclipse 编译时报错: Access restriction:The type JPEGCodec is not accessible due to restriction on

2016-06-03 06:03:25 454

原创 猿题库面试总结

整体而言:这次面试还是收获了一些东西。深深的领悟到自己算法能力的欠缺。其实还是有很大的遗憾的。上来就是两道算法题,直接写算法。项目啥的根本不在意。 最坑爹的是两道算法题都不难,然而由于种种原因当时都没写好:各种原因(旁边再谈论诱人的工资,做了3个小时的车,头晕晕的,好吧不找借口,还是没有准备好)后面听同学说题目基本都是出自leetcode 首先第一题: 给定一个矩阵:然后由外到内依次输出 如

2016-05-26 23:34:00 3387

原创 归并排序,求逆序数

package sort;/** @author: wjf* @version: 2016年4月28日 下午11:01:01*/import java.util.ArrayList;import java.util.Arrays;public class MergeSort{ public static int invertedNumber=0; public static

2016-04-29 21:55:55 348

原创 判断一个树是否为另一个树的子树

package search;import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;/** @author: wjf* @version: 2016年4月22日 上午10:40:48*/public class Tree { public boolean check(TNode root1,TNode roo

2016-04-22 11:22:39 516

原创 N 皇后问题

package search;public class NQueue{ private int n=8; private int[] x=new int[n]; private static int count=0; public boolean check(int k){ for(int i=0;i<k;i++){ if( x[i] == x[k] || Math.ab

2016-04-21 09:40:10 331

原创 Hbase 高级特性Bloom filter

Bloom filter 简单而言就是对hash 表的创新,用在 Hbase 中可以有有效减少磁盘IO次数。 图片来源:hbase 权威指南 下面是一个java 的简单实现package basic;/** @author: wjf* @version: 2016年4月15日 下午10:05:28*/import java.util.BitSet;public class Bloom

2016-04-15 22:44:03 3314

原创 架构设计-网关服务器

对比下面这两种架构设计的区别。 下面这种使用网关服务器的架构设计的优点在哪呢?借用知乎王明雨知友的一个比喻: 把服务器想象成饭店,没有网关服务器的情况,就如同每一个厨师服务一桌顾客,从点菜开始到炒菜到上菜到收银,有n个厨师就只能服务n桌顾客。有了网关服务器的话,网关服务器就成了强大的服务员,把招呼,点菜、上菜和收银的活都做了,厨师只需要专心炒菜就行。这样饭店的效率就大大提高了。 这样

2016-04-13 09:58:53 4932

原创 Ubuntu 设置静态IP

找到文件并作如下修改:sudo vim /etc/network/interfaces修改如下部分:auto eth0 iface eth0 inet static address 192.168.0.117 gateway 192.168.0.1 #这个地址你要确认下 网关是不是这个地址 netmask 255.255.255.0 network 192.168.0.0 broadc

2016-04-11 14:23:46 309

原创 Hbase 基本操作总结

package hbasebasicoperation;/** @author: wjf* @version: 2016年4月9日 下午7:52:41*/import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.hadoop.conf.Configuratio

2016-04-10 11:22:19 3867

原创 Hbase 配置的血泪史

1:首先我在linux 下 配置了hadoop2.6 集群。并且配置了zookeeper,hbase 等 然后在window下进行开发,使用eclipse,maven 进行jar 管理。一切正常,可是当我把程序当道linux 中使用 java 编译运行的时候,(已经将hadoop,hbase 的jar 放到classpath了) 却出现神奇的如下错误。 明明我自己的配置 zookeeper

2016-04-09 10:42:06 536

转载 WOT2016卢学裕:小团队如何玩转大数据

大数据能为企业带来什么?更多的订单,更低的成本,更快捷的管理,更新的业务模式。然而在每轮技术变革中,中小企业似乎都是被最后照顾到的。在这场新变革的席卷下,我们不禁又要问小团队,你的大数据在哪里?大数据之所以能称得上一个时代,来自于整个社会的集体狂欢。数据源于各行各业,这场变革带来的机遇自然蕴藏于各行各业之中。紧盯这个市场等待机遇的,无所谓IT巨头或是初创企业,无所谓团队规模是大是小。 大数据能为企

2016-04-07 15:18:12 829

原创 Hadoop,Hbase 编程实战基于Hash 的 distinct 操作

题目描述:主要是实现从hadoop hdfs 文件中读取数据,然后进行基于hash 的distinct 操作,然后将数据存到hbase中,具体描述见下图 package homework;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.n

2016-04-06 14:37:01 2376

原创 Java static 代码块测试

Java 中代码执行顺序 类加载->执行引擎 类加载,执行静态代码块,今天成员初始化 执行引擎,执行成员变量初始化,然后构造函数package basic;class Test2 { Person2 person = new Person2("Test"); static{ System.out.println("test static"); }

2016-04-03 11:11:24 744

原创 Java HashCode 详解

1: HashCode 存在主要是为了配合基于散列的集合一起使用,例如,hashMaP,hashSet,hashTable 等 2: HashCode设计时最重要的原则之一就是同一个对象一定要产生相同的hashCode 3: 重载equals 时要考虑 重载 hashCode 方法,这时候要特别留心package basic;/** @author: wjf*

2016-04-03 09:32:47 406

原创 Java 自动装箱 拆箱

/* * == 两端如果存在算数表达式,则判断值是否相等,否则判断对象是否相等,-128-127 相等,否则 不相等 * Double 不相等,Boolean 相等 * equals 会存在自动拆箱装箱的过程,不会进行类型转换 * */ Integer a=1; Integer

2016-03-30 17:01:10 322

原创 Java 使用软引用有效避免OOM 问题

package reference;import java.lang.ref.SoftReference;import java.lang.ref.WeakReference;/** @author: wjf* @version: 2016年3月30日 下午3:55:53*/public class TestReference { public static void main(St

2016-03-30 16:09:24 552

转载 Java 垃圾回收

一.如何确定某个对象是“垃圾”?  在这一小节我们先了解一个最基本的问题:如果确定某个对象是“垃圾”?既然垃圾收集器的任务是回收垃圾对象所占的空间供新的对象使用,那么垃圾收集器如何确定某个对象是“垃圾”?—即通过什么方法判断一个对象可以被回收了。  在java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必须通过引用来进行。那么很显然一个简单的办法就是通过引用计数来判断一个对象是否可以被回

2016-03-30 14:50:06 315

原创 java 阻塞队列

一:常见阻塞队列 ArrayBlockingQueue 实现基于数组 ,使用时 必须指明大小 LinkedBlockingQueue 实现基于链表 ,默认大小为 Integer.MAX_VALUE PriorityBlockingQueue 实现基于优先队列 可以无限大 DelayQueue 基于 优先队列,一种延时队列,只有当指定的时间到了,才可以从队列中获取元素二:常用的方法非阻

2016-03-30 14:03:12 433

原创 Java CopyOnWriteArray

package concurrent;import java.util.Arrays;import java.util.concurrent.CopyOnWriteArrayList;import java.util.concurrent.locks.ReentrantLock;/** @author: wjf* @version: 2016年3月30日 上午9:51:17*/public

2016-03-30 10:22:41 663

原创 Java ConcurrentHashMap 详解

一:概览 众所周知,hashmap 才用了按key 分段存储的方式,然而hashMap 使用synchronized 加锁的方式,就会锁住整个map 而转为并发设计的concurrentHashMap 却可以只锁住key 所在的段,大大提高了并发性能 还增加了的对常用符合操作的支持,puIfAbsent ,replace 等都是原子操作 类似的还有CopyOnWriteArrayList C

2016-03-30 09:37:05 720

原创 Java >>> 详解

int b=-32; // 计算机中 是用32 位补码表示的 // >> 有符号 又移 >>> 无符号 又移 System.out.println(Integer.toBinaryString(b >>> 2 )); // b 为 正数 时 >>> 和 >> 一个 负数,结果 为 0 System.out.p

2016-03-29 23:27:23 428

原创 Java concurrentModificationException

package concurrent;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** @author: wj

2016-03-28 22:16:53 675

原创 Java 并发容器

package concurrent;import java.util.Collections;import java.util.Vector;/** @author: wjf* @version: 2016年3月27日 下午8:32:59*/public class TestCollection { /* * 容器主要有四大类,list ,set ,queue ,map

2016-03-27 21:01:22 431 1

原创 Java ThreadLocal 解析

package concurrent;/** @author: wjf* @version: 2016年3月27日 下午2:44:46*/public class TestThreadLocal { /* * threadLocal 会为线程创建一个共享变量的本地副本,这样的话,可以在线程内部任意使用,而又不影响其他线程,这样一来就不会产生线程安全问题, * 也不

2016-03-27 19:40:55 332

原创 Java runnable和 thread

具体解释请看注释package concurrent;/** @author: wjf* @version: 2016年3月27日 下午1:54:41*/public class TestRunnable { public static void main(String[] args){ MyRunnable run=new MyRunnable();

2016-03-27 14:11:46 378

原创 Java Thread 详解

java 多线程Thread 详解 1:首先需要理解线程的几种状态 阻塞状态(等待i/o等) — 就绪状态(等待cpu 轮转) —执行状态 2:调用了sleep 方法相当于强制让线程睡觉,暂时不参与cpu 调度,效果上相当于使线程处于阻塞状态 sleep 方法不会释放已经占有的锁资源3:调用yield 方法相当于让线程主动让出cpu 轮转,即处于就绪状态4:join 方法是让主线程等待该

2016-03-27 12:00:55 404

原创 java volatile 详解

package concurrent;import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;/* * @author: wjf * @version: 2016年3月26日

2016-03-26 21:00:52 418

原创 java concurrent 编程实践

首先说一下 lock 和 synchronized 的区别:1:lock 是 java 语言的一个借口,synchronized 是 java 的关键字,是语言特性 2:synchronized 在 发生异常时,可以自动释放锁,因此不会发生死锁情况,而 lock 只能通过显式的 unlock() 释放,否则容易发生死锁情况。 3:lock 可以让等待的线程相应中断,而synchronized 会

2016-03-26 16:30:44 365

原创 Java 静态内部类学习

package staticclass;/** @author: wjf* @version: 2016年3月24日 下午10:01:21*/public class TestStaticClass { private static int aa=2; class Test{ /* * 在非静态类中,只能通过 加 final 定义静态成员

2016-03-24 22:17:38 329

原创 JDK源码阅读-1-Collection

零碎的知识点: 1:list 的增长是成倍的增长private void grow(int minCapacity) { // overflow-conscious code int oldCapacity = elementData.length; int newCapacity = oldCapacity + (oldCapacity >> 1)

2016-03-24 08:58:36 410

原创 Java -Dfile.encoding=UTF-8 遭遇乱码

Java -Dfile.encoding=UTF-8 遭遇乱码问题的来龙去脉 这两天写了一个 Java 程序来玩,结果又遭遇了以前遇到过很多次的乱码问题,具体描述一下: 在 Mac 系统里面,常用的 Java 程序启动方式有如下几种: 1.通过 eclipse 执行 class 入口文件启动; 2.在 Terminal 里面用 java Test.class 或 jave -jar Tes

2015-04-24 09:15:20 3030 1

原创 设计模式-架构-类库的区别

下面我打算用一个比方来诠释我的理解 我类比的例子是盖房子,我先从设计模式说起。人类从住山洞到现在的住高楼大厦中间的居住形态经历了无数次的演变,不同的 人用自己的智慧诠释了对居住环境的理解,并且由于有了文字这些经验都被记录下来了。现在打个比方,如果让学计算机的你在一个深 山老林里,什么都不给你,你能盖出什么样的房子呢?我猜肯定是什么也盖不出来,只能去睡山洞了,为什么呢,因为你什么都没有,没

2015-04-14 16:43:11 423

原创 学习JDK 源码的体会

今天学习 jdk 源码,看到了类 Integer 的实现,有一点比较有感触 final static int [] sizeTable = { 9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999, Integer.MAX_VALUE }; /

2015-04-14 15:05:05 551

截图小工具

很软件很小,截图小工具,很方便的,只有几百K!

2013-05-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除