自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 ES特定场景性能优化

ES特定场景性能优化1. Overview本文主要介绍一下Elasticsearch(后文简称ES)做相关基准测试的流程,及分享一些我们做过的一些测试结论。简要说明下我们使用情况:宽表的用户画像OLAP分析场景,集群规模200节点,数据量30T左右全热数据,24h更新及查询,总数据量1500亿,日更新200亿。2. 基准测试2.1 测试流程由于 ES 是近乎线性扩展的分布式系统,所以对上述需求可以总结成同一个测试模式:​ 1. 使用和线上集群相同硬件配置的服务器搭建一个单节点集群。​

2020-07-02 11:23:12 543

原创 Spark源码分析-spark集群启动及任务执行

注: 因为基于Akka的Actor的RPC版本相对容易理解一点,本文分析使用的Spark版本如下:<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.10</artifactId> <version>1.3.1</version></dependency>集群启动过程分析Mast

2017-07-11 14:12:36 1405

原创 Logrotate日志切分

logrotate 程序是一个日志文件管理工具。用来把旧的日志文件更名或删除,并创建新的日志文件,我们把它叫做“转储”。是个使日志轮替的程序,有了它就不用看着自己的日志体积一天天的变大,而可以根据你自己的需求来设定日志转储。Logrotate介绍Logrotate通常是基于CRON来运行的,其实现脚本是/etc/cron.daily/logrotate/usr/sbin/logrotate /etc

2016-04-28 15:15:06 1632

原创 Elasticsearch写入性能优化

性能测试建议在一个节点的一个分片,不设置副本,测试性能在完全默认设置上记录性能数据,作为测试的基准线确保性能测试持续30分钟以上以确认长时间的性能;短时间的测试可能不会碰到segment合并和GC,无法确认这些因素的影响每次基于默认基准线更改一个参数,如果性能有提升就保留设置,并基于此设置做后续的测试bulk使用建议每个请求大小建议在5-15MB,逐步增大测试,当接收到EsRejecte

2016-01-13 17:26:37 43598 3

转载 hive常用字符串函数

字符串长度函数:length Java代码  语法: length(string A)  返回值: int  说明:返回字符串A的长度  举例:  hive> select length(‘abcedfg’) from dual;  7     字符串反转函数:reverse Java代

2015-09-14 15:38:56 75243

原创 Hive函数row_number实现

需求:查询一批用户最后三次登陆时间,ip数据row_number实现”’import org.apache.hadoop.hive.ql.exec.UDF;public class RowNumber extends UDF {private static int MAX_VALUE = 50;private static String comparedColumn[] = new String[

2015-08-31 21:21:39 3450

转载 高效MacBook工作环境配置

FROM :http://www.xialeizhou.com/?p=71&comefrom=http://blogread.cn/news/本文记录整个配置过程,供新入手MacBook和觉得MacBook比较难用的同学参考。1. 硬件提升笔记本电脑的特点是携带方便,缺点是屏幕太小,因此你首先可能需要一个外接显示器,多一个屏幕会大大减少你切换应用程序的次数,显著

2015-08-07 15:06:25 7131

转载 HBase技术介绍

HBase简介HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行M

2015-07-28 14:24:20 580

转载 海量数据处理 算法总结

1. Bloom Filter【Bloom Filter】Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。也就是Bloom Filter判断元素不再集合,那肯定不在。如果判断元素存在集合中,

2015-07-16 21:05:33 1359

转载 Hive sql语法详解

1.  DDL 操作DDL•建表•删除表•修改表结构•创建/删除视图•创建数据库•显示命令建表:CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name   [(col_name data_type [COMMENT col_comment], ...)]   [

2015-07-16 21:02:32 2926

转载 Redis配置文件详解

查看redis.conf当前有效配置:sed 's@^[# ].*$@@g' /usr/local/redis/etc/redis.conf | awk '{if (length !=0) print $0}'1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize yes2. 当Redis以守护进程方

2015-07-14 15:03:15 712

转载 hbase shell基础和常用命令详解

From: http://www.jb51.net/article/31172.htm基础知识记录,方便查阅 1. 简介 HBase是一个分布式的、面向列的开源数据库,源于google的一篇论文《bigtable:一个结构化数据的分布式存储系统》。HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduc

2015-07-14 10:58:17 1220

翻译 怎么解决java.lang.NoClassDefFoundError错误

前言在日常Java开发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类明明还在,为什么找不到?而且我们很容易把java.lang.NoClassDefFoundError和java.lang.ClassNotfoundException这两个错误搞混,事实上这两个错误是完全不同的。我们往往花费时间去不断尝试

2015-06-23 15:22:29 1180883 102

原创 工厂的进化

本文从一个简单示例的需求不断衍化过程,来分析理解简单工厂,工厂方法,抽象工厂模式。首先看一下初始示例public interface Car { public void drive();}public class BenzCar implements Car { @Override public void drive() { System.out.println

2015-06-10 14:12:37 825

原创 Adaptor&Decorator&Facade模式分析

本文目的在于对比分析Adaptor,Decorator,Facade这三种设计模式的差异,加深对这几种设计模式的理解。 模式 说明 Adaptor 把接口A的具体实现转换成对接口B的实现,以实现对B接口调用的客户能使用A提供的功能。 Decorator

2015-06-09 10:57:20 861

转载 MySQL 加锁处理分析

1    背景    11.1    MVCC:Snapshot Read vs Current Read    21.2    Cluster Index:聚簇索引    31.3    2PL:Two-Phase Locking    31.4    Isolation Level    42    一条简单SQL的加

2015-05-25 08:35:24 500

原创 netty源码分析(二)-处理请求

上一篇对netty的启动过程做了分析,netty源码分析(一)-启动.本篇将对netty处理请求的主要过程进行源码层面分析。根据上一篇的最后部分内容我们知道,netty启动后会不断循环accept请求 public void run() { final Thread currentThread = Thread.currentThread();

2015-04-23 15:46:34 1950

原创 ThreadLocal分析

从概念上理解,threadlocal使变量在多个线程中相互隔离实现线程安全,threadlocal包装的变量最终都专属于对应的每个线程,线程之间相互独立,用一个具体实现来说明:public interface Consumer { int consume();}public class ComsumeThread implements Runnable { private Cons

2015-04-21 17:17:42 610

原创 netty源码分析(一)-启动

对于netty的理解,首先要熟悉NIO相关的概念,可以参考学习这里:Java NIO以NioServerSocket实现为例,netty的启动过程分析:netty的启动入口,我们一般会这样配置: ChannelFactory serverChannelFacory = new NioServerSocketChannelFactory(Executors.newCachedThreadPool

2015-04-21 09:34:24 1388

转载 理解Java对象序列化

1. 什么是Java对象序列化Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。使用Java对象序列化,在保存对象时,会把

2013-02-23 12:41:26 424

原创 注解的一个示例

package com.james.annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;impo

2013-02-04 23:50:02 502

转载 Struts2原理分析

Struts请求处理原理图如下:Struts2请求分派由filter完成。目前提供了两种不同的运用情况:StrutsPrepareAndExecuteFilter完成了原FilterDispatcher的功能,使用该filter时必须把其配置在所有filter的最后。但是,无法满足这样一种应用场景:希望在struts2的环境下做一些过滤器的操作。因此strutsPrepareF

2013-02-04 01:32:41 1399

原创 关于javabean中get和set作用的疑问

一直没搞懂javabean中的getter和setter方法的作用,不仅仅是java中有,之前做VB项目也是如此有说javabean中的规范是这样定义的,但是什么原因去定义这样一种规范呢?看到这样一句话:只有遵循这个规范,别的程序才可以通过反射机制来调用你的JavaBean。先理解下java的反射机制:反射的特性:动态获取类的信息,以及动态调用类的方法的功能来源于JAVA的反射。从而使java

2013-01-27 20:38:08 3684

转载 Filter 配置多个URL-PATTERN

一、完全错误的方式[html] view plaincopyfilter>      filter-name>authorityfilter-name>      filter-class>com.util.AuthorityFilterfilter-class>  filter>  filter-mapping>      fi

2013-01-07 13:36:56 2998

转载 查看本机开放的端口号,查看某个端口号是否被占用,查看被占用的端口号被哪个进程所占用,如何结束该进程

利用快捷键win+R键打开运行窗口。输入cmd回车打开命令提示符窗口1:查看本机开放的端口,即已被占用的端口号。命令:netstat -an部分结果列表:Proto  Local Address          Foreign Address        StateTCP    0.0.0.0:135            0

2012-12-27 15:42:39 652

转载 Ajax的原理和应用

在写这篇文章之前,曾经写过一篇关于AJAX技术的随笔,不过涉及到的方面很窄,对AJAX技术的背景、原理、优缺点等各个方面都很少涉及null。这次写这篇文章的背景是因为公司需要对内部程序员做一个培训。项目经理找到了我,并且征询我培训的主题,考虑到之前Javascript、CSS等WEB开发技术都已经讲解过了,所以决定针对AJAX这一块做一个比较系统的培训,所以这篇文章实际上是一个培训的材料。

2012-12-14 01:03:56 627

转载 Java内存泄露的理解与解决(转)

Java内存管理机制在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是垃圾回收机制。Java的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由GC(garbage

2012-12-13 01:38:15 430

转载 Storm数据流模型的分析及讨论

本文首先介绍了Storm的基本概念和数据流模型,然后结合一个典型应用场景来说明Storm支持Topology之间数据流订阅的必要性,最后对比了Storm与另一个流处理系统在数据模型模型上的区别之处。Storm基本概念Storm是一个开源的实时计算系统,它提供了一系列的基本元素用于进行计算:Topology、Stream、Spout、Bolt等等。在Storm中,一个实时应用

2012-09-18 11:21:11 684

转载 使用struts2的builder alias机制加载objectFactory

以下代码基于struts2版本2.1.8.1版本分析。在使用Struts2的过程中,我们都喜欢使用struts2的spring插件来让spring作为struts2的默认对象容器,原理就在于在加载struts2之前先加载spring容器,然后将spring容器加载至applicationContext中,在struts2的objectFactory(称之为对象容器)实现中,找到spring容器

2012-09-11 11:05:33 849

转载 Java注解(2)

使用注解在一般的Java开发中,最常接触到的可能就是@Override和@SupressWarnings这两个注解了。使用@Override的时候只需要一个简单的声明即可。这种称为标记注解(marker annotation ),它的出现就代表了某种配置语义。而其它的注解是可以有自己的配置参数的。配置参数以名值对的方式出现。使用 @SupressWarnings的时候需要类似@Supr

2012-09-01 20:34:28 474

转载 java注解(1)

一、Java内置基本注解   在Java中内置几种了基本的注解,下面列出几种常用的注解:   1、@Deprecated:用该注解注释的程序元素,表明不鼓励程序员使用这样的元素,通常是它很危险或存在更好的选择。   2、@Override:表明当前的方法定义将覆盖超类中的方法。   3、@SuppressWarnings:表明关闭不当

2012-09-01 19:09:12 635

转载 JavaScript相关资料

JavaScript 和文档对象模型(DOM):http://www.ibm.com/developerworks/cn/web/wa-jsdom/

2012-08-29 21:19:47 429

转载 css的position

TRBL属性(TOP、RIGHT、BOTTOM、LEFT)只有当设定了position属性才有效。 当设定position:absolute 如果父级(无限)没有设定position属性,那么当前的absolute则结合TRBL属性以浏览器左上角为原始点进行定位 如果父级(无限)设定position属性,那么当前的absolute则结合TRBL属性以父级(最近)的左上角为原始点进行定位

2012-08-28 14:15:26 391

转载 javascript对象的property和prototype是这样一种关系

ECMAScript可以识别两种类型的对象,一种叫做Native Object属于语言范畴;一种叫做Host Object,由运行环境提供例如document对象, Dom Node等 Native objects是一种松散的结构并且可以动态的增加属性(property),所有的属性都有一个名字和一个值,这个值可以是另一个对象的引用 或者是内建的数据类型(String, Number,

2012-08-23 14:28:48 472

转载 Java小知识汇总

1、Java获得当前时间,格式:yyyy-MM-dd hh:mm:ss      导入text类      import  java.text      程序代码      SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM-dd" + " " + "hh:mm:ss");      String

2012-08-14 11:29:10 579

转载 使用HttpURLConnection发送数据

import java.io.*;import java.net.*;public class PostExample { public static void main(String[] argv) throws Exception { URL url = new URL("http://www.javacourses.com/cgi-bin/names.cgi"

2012-08-12 20:54:10 2172

转载 关于JSON

什么是 JSON ?JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)JSON 是轻量级的文本数据交换格式JSON 独立于语言 *JSON 具有自我描述性,更易理解* JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。

2012-08-12 17:31:17 670

转载 Eclipse的自动提示卡的解决方法(转)

——————————状况1:——————————学习Java有一段时间了,一直使用Eclipse,一直有个问题没有解决,就是使用自动提示时卡得要死,开始在网上找了半天都没解决,今天心血来潮,又google了一下,好运来了,终于搞定。解决办法:1. 确定JDK安装目录下的src.zip文件;2. 打开eclipse,菜单 Window(窗口)->Preference(首选

2012-08-08 12:18:09 5858

原创 防火墙ICS服务无法启动问题

问题:经过一番google,对于ICS无法启动的原因不少,最终从事件日志分析针对错误原因分析错误描述不同处理原因也不同,如果是Access is denied,解决办法:从一健康的主机上导出如下注册表键值,再导入到故障机上,原则是两台机的操作系统语言、版本需要一致,以避免出错.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Ser

2012-05-21 11:29:47 12117

转载 STL 容器,算法,迭代器 总结

一、容器 作为STL的最主要组成部分--容器,分为向量(vector),双端队列(deque),表(list),队列(queue),堆栈(stack),集合(set),多重集合(multiset),映射(map),多重映射(multimap)。容器 特性所在头文件向量vector可以用常数时间访问和修改任意元素,在序列尾部进行插入和删除时,具有常数时间复杂度,对任意

2012-03-31 09:41:44 721

空空如也

空空如也

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

TA关注的人

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