- 浏览: 599382 次
- 性别:
- 来自: 厦门
最新评论
文章列表
CyclicBarrier允许一组线程相互等待达到一个公共的障碍点。CyclicBarrier对于一组线程必须相互等待的场景很有用。比如有一组线程,都要往数据库里面写入操作,只有当所有的线程都往数据库里面写入数据之后,这些线程才能继续往下执行,这时候就可以使用CyclicBarrier了。当所有的等待线程释放之后,CyclicBarrier是可重用的。
CyclicBarrier有两个构造函数:
public CyclicBarrier(int parties, Runnable barrierAction)
public CyclicBarrier(int parties ...
MapReduce是什么
Hadoop是一个分布式计算系统,两大核心HDFS,这是存储文件的,MapReduce这是用于计算的。MapReduce是一种编程模型,类比为设计模式,好比最佳实践,编写是先写map函数,再写reduce函数。
Shuffle是什么
这个图来自《 ...
1:什么是HDFS?
HDFS适合做:
1.存储大文件。上G、T甚至P。
2.一次写入,多次读取。并且每次作业都要读取大部分的数据。
3.搭建在普通商业机群上就可以了。虽然会经常宕机,但HDFS有良好的容错机制。
HDFS不适合做:
1.实时数据获取。如果有这个需求可以用HBase。
2.很多小文件。因为namenode要存储HDFS的metadata(比如目录的树状结构,每个文件的文件名、ACL(权限管理)、长度、owner、文件内容存放的位置等等信息),所以HDFS上文件的数目受到namenode内存的限制。
3.并发环境下的写入和修改。
hadoop中存储文件以HDFS形式存储,HD ...
一、客户端
Map-Reduce的过程首先是由客户端提交一个任务开始的。
提交任务主要是通过JobClient.runJob(JobConf)静态函数实现的:
public static RunningJob runJob(JobConf job) throws IOException {
//首先生成一个JobClient对象
JobClient jc = new JobClient(job);
……
//调用submitJob来提交一个任务
running = jc.submitJob(job);
JobID jobId = ru ...
一、HDFS的基本概念
1.1、数据块(block)
HDFS(Hadoop Distributed File System)默认的最基本的存储单位是64M的数据块。
和普通文件系统相同的是,HDFS中的文件是被分成64M一块的数据块存储的。
不同于普通文件系统的是,HDFS中,如果一个文 ...
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是Hadoop的一个子项目,其发展历程无需赘述。在分布式应用中 ...
java对cookie的操作比较简单,主要介绍下建立cookie和读取cookie,以及如何设定cookie的生命周期和cookie的路径问题。
可在同一应用服务器内共享方法:设置cookie.setPath("/")
本机tomcat/webapp下面有两个应用:webapp_a和webapp_b,
1.原来在webapp_a下面设置的cookie,在webapp_b下面获取不到,path默认是产生cookie的应用的路径。
2.若在webapp_a下面设置cookie的时候,增加一条cookie.setPath("/");或者cookie.setP ...
join() 方法主要是让调用该方法的线程完成run方法里面的东西后,再执行join()方法后面的代码。
class ThreadTesterA implements Runnable {
private int counter;
@Override
public void run() {
while (counter <= 10) {
System.out.print("Counter = " + counter + " ");
c ...
在Java中通过Observable类和Observer接口实现了观察者模式。Observer对象是观察者,Observable对象是被观察者。
1. 实现观察者模式
实现观察者模式非常简单,
[1]创建被观察者类,它继承自java.util.Observable类;
[2]创建观察者类,它实现java.util.Observer接口;
[3]对于被观察者类,
添加它的观察者:
void addObserver(Observer o)
当被观察事件发生时,执行:
setChanged();
notifyObservers();
setChange()方法用来设置一个内部标志 ...
SSL(Secure Sockets Layer 加密套接字协议层)
SSL是一个安全协议,它提供使用TCP/IP的通信应用程序间的隐私与完整性。因特网的超文本传输协议(HTTP)使用SSL来实现安全的通信。
基本逻辑:
1、生成服务端密钥库并导出证书;(生成server.jks文件服务器需要识别)
2、生成客户端密钥库并导出证书;(生成custom.p12文件)
3、根据客户端密钥库生成客户端信任的证书;(将custom.p12文件生成custom.cer文件)
4、将客户端证书导入服务端密钥库;(将custom.cer文件导入server.jks文件)
5、将服务端证书导入浏览器。(将s ...
[置顶] sql 数据库索引的使用规则
- 博客分类:
- sql
使用索引前需要用explain查看下执行计划,然后根据基数是否需要创建索引。
巧用索引
a.如果表中大部分status是1,2 但我们需要查询查询少量的3时,也可以为status添加索引
b.为sql语句添加额外的条件,如查询员工时可以添加城市等字段过滤
c.如果表数据按城市进行查询慢时,可以换个思路如通过城市找到staffId然后再通过staffId查询,这样可以增加区分度加快查询效率
优化前:
explain
select * from a where
reserve_date BETWEEN '2019-07-01' and '2019-07-31'
and city_code ...
首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。加载顺序是:context-param -> listener -> filter -> servlet
同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息。我们的 listener, filter 等在初始化时会用到这些上下文中的信息,那么 context-param 配置节是不是应该写在 listener 配置 ...
WSDL它是一种用XML来描述网络服务的语言。
每个wsdl都定义了一项服务(service),而这项服务被定义为一组“端口(port)”。你可以把wsdl中的端口想象为URL地址,而不是TCP/IP中的数据通道。一个端口定义了一个”服务”项目的提供地点。一项服务可以有多个提供地点,但只能对一组事先安排好的“信息(message)”作出响应。“信息”是对通信数据的描述,每条信息由一组数据组成,这些数据必须定义为收发双方都知道的某种“类型(type)”。如果没有遇到其他方法更能说明问题的情况,则”类型”必须用XSD来定义。端口和信息结合在一起代表了一组“操作(operation)”,并定义了这个 ...
1.按照耦合度从低到高 由弱到强:依赖,关联,聚合,组合,继承。(推荐高内聚低耦合)
2.聚合组合原则:尽量聚合组合,避免继承。
3.依赖,关联,聚合,组合,继承的一些小例子:
依赖:我要过河需要用到船,我和船的关系就是依赖。关联:我和我的朋友。聚合:雁群和大雁 。组合:大雁和翅膀。继承:父子关系。
UML定义了5类,10种模型图
第一类是用例图。
第二类是静态图(Static diagram) (类图、对象图、包图)。
第三类是行为图(Behavior diagram) (状态图、活动图)。
第四类是交互图(Interactive diagram) (时序图、协作图)。
第五类是实 ...
Mongodb 基本操作指令集合
- 博客分类:
- mongodb
db -> collection(集合) -> document(json文档)
db.help();
show dbs ; 显示所有db
show collections; 显示db下面所有集合
db.createCollection("yourCollection"); 创建普通集合
db.createCollection("cappedCollection",{capped:true,size:16332,max:1 ...