- 浏览: 114864 次
- 性别:
- 来自: 深圳
最新评论
-
SSB4455:
嗯 应该是这样
java线程学习之Thread.sleep() 和 Thread.yield() 区别 -
wishlee:
不详细啊
Java中23种设计模式详解 -
Vin-G:
正在学习,我想修改成:在主屏中不能长按和拖拉,不知道能不能实现 ...
android2.2源码在eclipse中的配置与分析 -
star_887012:
qq16881699 写道LZ的文章就是海量数据。。。。
常见的海量数据处理方法 -
I清晰:
看来头疼啊
常见的海量数据处理方法
文章列表
1. 概述
随着企业要处理的数据量越来越大,MapReduce思想越来越受到重视。Hadoop是MapReduce的一个开源实现,由于其良好的扩展性和容错性,已得到越来越广泛的应用。Hadoop作为一个基础数据处理平台,虽然其应用价值已得到大家认可,但仍存在很多问题,以下是主要几个:
(1) Namenode/jobtracker单点故障。 Hadoop采用的是master/slaves架构,该架构管理起来比较简单,但存在致命的单点故障和空间容量不足等缺点,这已经严重影响了Hadoop的可扩展性。
(2) HDFS小文件问题。在HDFS中,任何block,文件或 ...
HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的
第一种:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey();
Object val = entry.getValue();
}
效率高,以后一定要使用此种方式!
第二种: ...
JDK的概念、组成及JDK常用包
- 博客分类:
- jdk学习
JDK是Java学习的开始,那么JDK是什么呢?JDK是由什么组成的呢?JDK常用的包有哪些呢?那么本文将向你介绍这些。
AD:
JDK概述
JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广 ...
MySQL性能优化必备25条续
- 博客分类:
- 数据库
25.为搜索字段建索引
索引并不一定就是给主键或是唯一的字段。如果在你的表中,有某个字段你总要会经常用来做搜索,那么,请为其建立索引吧。
你可以看到那个搜索字串 “last_name LIKE ‘a%’”,一个是建了索引,一个是没有索引,性能差了4倍左右。
另外,你应该也需要知道什么样的搜索是不能使用正常的索引的。例如,当你需要在一篇大的文章中搜索一个词时,如: “WHERE post_content LIKE ‘%apple%’”,索引可能是没有意义的。你可能需要使用MySQL全文索引或是自己做一个索引(比如说:搜索关键词或是Tag什么的)
1、LinkedHashSet具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之外在于,后者维护着一个运行于所有条目的双重链接列表。
2、LinkedHashSet源码一部分
public class LinkedHashSet<E>extends HashSet<E>implements Set<E>, Cloneable, Serializable
3、当父类实现了某一接口,子类还需不需显式地写出也实现这一接口
LinkedHashSet已继承了HashSet,即是HashSet的子类,而Hash ...
linux上安装多个tomcat问题
- 博客分类:
- tomcat
linux上安装多个tomcat并想同时用,大家都知道要修改端口,但往往花了很大力气还是运行不起来。这里提醒大家注意server.xml里的三个地方不能和其他地方相同。
修改server.xml的配置文件:
<Server port="9005" shutdown="SHUTDOWN"> 端口:8005->9005
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="9080" maxHtt ...
MySQL性能优化必备25条
- 博客分类:
- 数据库
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。
1. 为查询缓存优化你的查询
大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中 ...
80年代末90年代初,是通信行业的天下,中国电信市场呈喷发之势,本土力量应运而生。巨大中华这个词一时成为人们茶前饭后讨论的焦点,而这个词语的每个字就代表了一家通信制造厂商巨头:巨龙通信、大唐电信
、中兴通讯 ...
strategy模式
定义: 运行时刻选择算法
表面上看起来,state模式和strategy模式是非常相似的,但既然他们分成两种不同的模式,就有一定的区别,用一句话来概括就是:
策略用来处理算法方式变化,而状态则是处理状态变化。
具体可以参考:http://blog.csdn.net/lwzcjd/archive/2009/05/19/4201828.aspx
下面举个strategy的例子:
view plain
Java设计模式之State(状态模式)
- 博客分类:
- 设计模式
定义: GOF《设计模式》中给状态模式下的定义为:允许一个对象在其内部状态改变时改变它的行为。
先看一个例子:
view plain
package com.state;
一、工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。
工厂模式在《Java与模式》中分为三类:1)简单工厂模式(Simple Factory):不利于产生系列产品;2)工厂方 ...
java多线程设计模式详解之五
- 博客分类:
- 设计模式
最后是ThreadPool,负责管理所有的服务器线程,还可以动态增加和减少线程数: package com.crackj2ee.thread; import java.util.*; public class ThreadPool extends ThreadGroup { private List threads = new LinkedList(); private TaskQueue queue; public ThreadPool(TaskQueue queue) { super("Thread-Pool"); this.queue = queue ...
java多线程设计模式详解之四
- 博客分类:
- 设计模式
ReadWriteLock
多线程读写同一个对象的数据是很普遍的,通常,要避免读写冲突,必须保证任何时候仅有一个线程在写入,有线程正在读取的时候,写入操作就必须等待。简单说,就是要避免“写-写”冲突和“读-写”冲突。但是同时读是允许的,因为“读-读”不冲突,而且很安全。
要实现以上的ReadWriteLock,简单的使用synchronized就不行,我们必须自己设计一个ReadWriteLock类,在读之前,必须先获得“读锁”,写之前,必须先获得“写锁”。举例说明:
DataHandler对象保存了一个可读写的char[]数组: package com.crackj2ee.t ...
java多线程设计模式详解之三
- 博客分类:
- 设计模式
前面谈了多线程应用程序能极大地改善用户相应。例如对于一个Web应用程序,每当一个用户请求服务器连接时,服务器就可以启动一个新线程为用户服务。 然而,创建和销毁线程本身就有一定的开销,如果频繁创建和销毁线程,CPU和内存开销就不可忽略,垃圾收集器还必须负担更多的工作。因此,线程池就是为了避免频繁创建和销毁线程。 每当服务器接受了一个新的请求后,服务器就从线程池中挑选一个等待的线程并执行请求处理。处理完毕后,线程并不结束,而是转为阻塞状态再次被放入线程池中。这样就避免了频繁创建和销毁线程。 Worker Pattern实现了类似线程池的功能。首先定义Task接口: packa ...
wait()/notify() 通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程downloadThread将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务后,再通知displayThread“图片准备完毕,可以显示了”,这时,displayThread继续执行。 以上逻辑简单的说就是:如果条件不满足,则等待。当条件满足时,等待该条件的线程将被唤醒。在Java中,这个机制的实现依赖于wait/notify。等待机制与锁机制是密切关联的。例如: ...