继续微笑lsj

欲穷千里目,更上一层楼! ————LSJ
私信 关注
继续微笑lsj
码龄8年

眼界决定未来

  • 1,261,436
    被访问量
  • 184
    原创文章
  • 2,241
    作者排名
  • 385
    粉丝数量
  • 毕业院校 东南大学
  • 于 2013-03-28 加入CSDN
获得成就
  • 获得494次点赞
  • 内容获得121次评论
  • 获得249次收藏
荣誉勋章
兴趣领域
  • #大数据
TA的专栏
  • 面试珠玑
    6篇
  • C++一些注意点
    16篇
  • 信息检索笔记
    7篇
  • algorithm
    86篇
  • STL源码剖析
    7篇
  • C/C++
    55篇
  • JAVA
    47篇
  • Linux
    61篇
  • 计算机网络
    11篇
  • 设计模式
    25篇
  • POJ
    15篇
  • 面试
    39篇
  • 操作系统
    23篇
  • Linux内核
    57篇
  • VHDL
    4篇
  • 数据库
    28篇
  • Python
    34篇
  • 每天接触一点互联网
    11篇
  • 信息检索导论
    12篇
  • 搜索算法
    2篇
  • 机器学习与数据挖掘
    14篇
  • 数据挖掘-聚类算法
    7篇
  • 机器学习-分类算法
    11篇
  • 机器学习-线性回归与最小二乘
    3篇
  • 图像特征提取-sift算法系列
    2篇
  • 程序员-数学复习
    7篇
  • JSP/Servlet
    6篇
  • 分布式系统
    54篇
  • 云计算
    1篇
  • Android
    15篇
  • PHP
    5篇
  • linux_gcc
    5篇
  • 开源代码
    4篇
  • Boost库
    10篇
  • HTML
    20篇
  • IOS
    4篇
  • lua
    2篇
  • C++11
    4篇
  • Webkit源码
    2篇
  • NoSql
    8篇
  • nginx
    9篇
  • Django
    2篇
  • scala
    4篇
  • 人生感悟
    4篇
  • 数据分析
    9篇
  • kfaka
    4篇
  • SQL
    5篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

小议同步IO :fsync与fdatasync

对于提供事务支持的数据库,在事务提交时,都要确保事务日志(包含该事务所有的修改操作以及一个提交记录)完全写到硬盘上,才认定事务提交成功并返回给应用层。一个简单的问题:在*nix操作系统上,怎样保证对文件的更新内容成功持久化到硬盘?1. write不够,需要fsync一般情况下,对硬盘(或者其他持久存储设备)文件的write操作,更新的只是内存中的页缓存(page cache),...
转载
106阅读
0评论
1点赞
发布博客于 2 年前

Hazelcast集群服务(1)——Hazelcast介绍

https://www.cnblogs.com/hunter-56213/p/6230442.htmlHazelcast是什么    “分布式”、“集群服务”、“网格式内存数据”、“分布式缓存“、“弹性可伸缩服务”——这些牛逼闪闪的名词拿到哪都是ITer装逼的不二之选。在Javaer的世界,有这样一个开源项目,只需要引入一个jar包、只需简单的配置和编码即可实现以上
转载
724阅读
0评论
1点赞
发布博客于 3 年前

MetricsSystem

Metrics,我们听到的太多了,熟悉大数据系统的不可能没听说过metrics,当我们需要为某个系统某个服务做监控、做统计,就需要用到Metrics。举个例子,一个图片压缩服务:每秒钟的请求数是多少(TPS)?平均每个请求处理的时间?请求处理的最长耗时?等待处理的请求队列长度?又或者一个缓存服务:缓存的命中率?平均查询缓存的时间?基本上每一个服务、应用都需要
转载
850阅读
0评论
0点赞
发布博客于 4 年前

HelloWorld CMake CMake中构建静态库与动态库及其使用

继续完善Hello World,建立它的共享库, 包括静态库和动态库。 本节的任务:1,建立一个静态库和动态库,提供HelloFunc函数供其他程序编程使用,HelloFunc向终端输出Hello World字符串。2,安装头文件与共享库。3, 编写一个程序使用创建的共享库(静态库和动态库)。 cd /home/ccj/CMakeDe
转载
1517阅读
0评论
2点赞
发布博客于 4 年前

从内核文件系统看文件读写过程

系统调用操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境,但是计算机系统的各种硬件资源是有限的,因此为了保证每一个进程都能安全的执行。处理器设有两种模式:“用户模式”与“内核模式”。一些容易发生安全问题的操作都被限制在只有内核模式下才可以执行,例如I/O操作,修改基址寄存器内容等。而连接用户模式和内核模式的接口称之为系统调用。应用程序代码运行在用户模式下,当应用
转载
596阅读
0评论
0点赞
发布博客于 5 年前

认真分析mmap:是什么 为什么 怎么用

mmap基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可
转载
694阅读
0评论
0点赞
发布博客于 5 年前

MappedByteBuffer

java处理大文件,一般用BufferedReader,BufferedInputStream这类带缓冲的Io类,不过如果文件超大的话,更快的方式是采用MappedByteBuffer。 MappedByteBuffer是java nio引入的文件内存映射方案,读写性能极高。NIO最主要的就是实现了对异步操作的支持。其中一种通过把一个套接字通道(SocketChannel)注册到一个选择器
转载
832阅读
0评论
0点赞
发布博客于 5 年前

Spring 的 init-method 和 destory-method

关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种:第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作第二种是:通过 在xml中定义init-method 和  destory-method方法第三种是: 通过bean实现InitializingBean和 DisposableBean
转载
511阅读
0评论
0点赞
发布博客于 5 年前

<context:component-scan>使用说明

在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的Java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean注意:如果配置了那么标签就可以不用再xml中配置了,因为前者包含了后者。另外还提供了两个子标签1.        2.       在说明这两个子标签前,先说一下有一
转载
307阅读
0评论
0点赞
发布博客于 5 年前

mybatis 中的<![CDATA[ ]]>

在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用来解决。 是什么,这是XML语法。在CDATA内部的所有内容都会被解析器忽略。如果文本包含了很多的"但是有个问题那就是               等这些标签都不会被解析,所以我们只把有特殊字符的语句放在
转载
407阅读
0评论
0点赞
发布博客于 5 年前

HttpServletResponse对象

Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。一、HttpServletResponse对象介绍   
转载
478阅读
0评论
0点赞
发布博客于 5 年前

Timeunit与sleep

TimeUnit是java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep(),在很长一段时间里Thread的sleep()方法作为暂停线程的标准方式,几乎所有Java程序员都熟悉它,事实上sleep方法本身也很常用而且出现在很多面试中。如果你已经使用过Thread.sleep(),当然我确信你这样做过,那么你一定
转载
481阅读
0评论
0点赞
发布博客于 5 年前

java bigdecimal

首先我们先来看如下代码示例:1 public class Test_1 {2 public static void main(String[] args) {3 System.out.println(0.06+0.01);4 System.out.println(1.0-0.42);5 System.out.println
转载
410阅读
0评论
0点赞
发布博客于 5 年前

Linkedin Camus,从Kafka到HDFS的数据传输管道

本文是对Linkedin-Camus的介绍。内容都是从Camus的github中摘取出来的,详细的内容要看其说明和源码Introduction of CamusCamus是Linkedin开源的一个从Kafka到HDFS的数据管道,实际上它是一个MapReduce作业What is AvroApache Avro是一个 Data Serializat
转载
938阅读
0评论
0点赞
发布博客于 5 年前

Filter学习

一、Filter简介  Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。  Servlet API中提供了一个Fil
转载
263阅读
0评论
0点赞
发布博客于 5 年前

监听器(Listener)学习

一、监听器介绍1.1、监听器的概念    监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行。1.2、监听器案例——监听windo
转载
379阅读
0评论
1点赞
发布博客于 5 年前

数据库连接池

一、应用程序直接获取数据库连接的缺点  用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。如下图所示:  二、使用数据库连接池优化程序性能2.1、数据库连接池的基本概念  数据库连接是一种
转载
421阅读
0评论
1点赞
发布博客于 5 年前

注解@PostConstruct与@PreDestroy讲解及实例

从Java EE 5规范开始,Servlet中增加了两个影响Servlet生命周期的注解(Annotion);@PostConstruct和@PreDestroy。这两个注解被用来修饰一个非静态的void()方法 。写法有如下两种方式:@PostConstructPublic void someMethod() {}                               
转载
308阅读
0评论
0点赞
发布博客于 5 年前

java servlet开发

一、Servlet简介  Servlet是sun公司提供的一门用于开发动态web资源的技术。  Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:  1、编写一个Java类,实现servlet接口。  2、把开发好的Java类部署到web服务器中。  按照一种约定俗成的称呼习惯
转载
290阅读
0评论
0点赞
发布博客于 5 年前

Timer和TimerTask详解

以下内容根据 The JavaTM Tutorial 和相关API doc翻译整理,以供日后参考:1.概览Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。简单的一个例程:import java.util.Timer;import
转载
367阅读
0评论
0点赞
发布博客于 5 年前

python装饰器

由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。>>> def now():... print '2013-12-25'...>>> f = now>>> f()2013-12-25函数对象有一个__name__属性,可以拿到函数的名字:>>> now.__name__'now'>>> f.__name__'now'
转载
339阅读
0评论
0点赞
发布博客于 5 年前

python属性注解

Python中有一个被称为属性函数(property)的小概念,它可以做一些有用的事情。在这篇文章中,我们将看到如何能做以下几点:将类方法转换为只读属性重新实现一个属性的setter和getter方法在本文中,您将学习如何以几种不同的方式来使用内置的属性函数。希望读到文章的末尾时,你能看到它是多么有用。开始使用属性函数的最简单的方法之一是将它作为一个方法的装饰器来使
转载
2777阅读
0评论
0点赞
发布博客于 5 年前

Python中*args 和**kwargs的用法

好久没有学习Python了,应为工作的需要,再次拾起python,唤起记忆。当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。还是直接来代码吧,废话少说[python] view plain copy print?def fun_var_args(farg, *
转载
419阅读
0评论
0点赞
发布博客于 5 年前

HBase与MongDB等NoSQL数据库对比

一、开篇淘宝之前使用的存储层架构一直是MySQL数据库,配合以MongDB,Tair等存储。MySQL由于开源,并且生态系统良好,本身拥有分库分表等多种解决方案,因此很长一段时间内都满足淘宝大量业务的需求。但是由于业务的多样化发展,有越来越多的业务系统的需求开始发生了变化。一般来说有以下几类变化:(1) 数据量变得越来越多 ,事实上现在淘宝几乎任何一个与用户相关的在线业务的
转载
701阅读
0评论
0点赞
发布博客于 5 年前

Zookeeper开源客户端框架Curator简介

Curator是Netflix开源的一套ZooKeeper客户端框架. Netflix在使用ZooKeeper的过程中发现ZooKeeper自带的客户端太底层, 应用方在使用的时候需要自己处理很多事情, 于是在它的基础上包装了一下, 提供了一套更好用的客户端框架. Netflix在用ZooKeeper的过程中遇到的问题, 我们也遇到了, 所以开始研究一下, 首先从他在github上的源码, w
转载
450阅读
0评论
0点赞
发布博客于 5 年前

乐观锁和悲观锁

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人
转载
271阅读
0评论
0点赞
发布博客于 5 年前

java发送邮件工具类

import java.util.Properties; import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.MessagingExcept
转载
1140阅读
0评论
0点赞
发布博客于 5 年前

灵活组装Json的数据使用Gson的JsonParser和JsonReader解析Json详解例子

package com.app.json;        import java.util.ArrayList;  import java.util.Iterator;  import java.util.List;    import net.sf.json.JSONArray;    import com.app.entity.duapp.Address;
转载
721阅读
0评论
0点赞
发布博客于 5 年前

Presto 来自Facebook的开源分布式查询引擎

Presto是一个分布式SQL查询引擎, 它被设计为用来专门进行高速、实时的数据分析。它支持标准的ANSI SQL,包括复杂查询、聚合(aggregation)、连接(join)和窗口函数(window functions)。下图中展现了简化的Presto系统架构。客户端(client)将SQL查询发送到Presto的协调员 (coordinator)。协调员会进行语法检查、分析和规划查询计划。计
转载
1392阅读
0评论
0点赞
发布博客于 5 年前

HashMap与ConcurrentHashMap的区别

从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable
转载
343阅读
0评论
0点赞
发布博客于 5 年前

Mysql的row_format

问题描述:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'variabaes like "%per_table%"'解决方案:前段时间在项目压测的时候出现
转载
19523阅读
2评论
4点赞
发布博客于 5 年前

MyBatis+MySQL 返回插入的主键ID

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。 方法:在mapper中指定keyProperty属性,示例如下:Xml代码  insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.ch
转载
292阅读
0评论
0点赞
发布博客于 5 年前

linux多线程信号处理

在linux下,每个进程都有自己的signal mask,这个信号掩码指定哪个信号被阻塞,哪个不会被阻塞,通常用调用sigmask来处理。同时每个进程还有自己的signal action,这个行为集合指定了信号该如何处理,通常调用sigaction来处理。使用了多线程后,便有些疑问:信号发生时,哪个线程会收到是不是每个线程都有自己的mask及action每个线程能按自己的方
转载
3314阅读
1评论
2点赞
发布博客于 5 年前

scribe 日志搜集

1.General  description我们知道,使用日志系统是为了使系统变得更健壮,能够应对各种错误并能从错误中较快地恢复。一个大型的分布式系统生成的日志数量是巨大的,所以需要一个有效的工具对其进行管理。Scribe就是这样一个日志收集服务器,使用它可以对大型的系统进行监控。它是Facebook的一个开源组件,使用的是Facebook另一个框架—Thrift。Thrift在我的理解就是一
转载
1039阅读
0评论
0点赞
发布博客于 5 年前

daemontools

最近用到了daemontools,却发现百度上基本上没有中文版的,特此分享出来给大家,作者的英语水平也不太好,翻译不对的地方请指正。1. 简单介绍一下daemontools  点击查看英文原文daemontools是一个守护进程工具,用来监视一个进程以免其意外退出,例如用来监视某个目录中的一个java程序入口,让它一直处于运行状态。被daemontools守护的进程是无法使用kill指令杀
转载
527阅读
0评论
0点赞
发布博客于 5 年前

Snowflake算法核心

把时间戳,工作机器id,序列号组合在一起。  除了最高位bit标记为不可用以外,其余三组bit占位均可浮动,看具体的业务需求而定。默认情况下41bit的时间戳可以支持该算法使用到2082年,10bit的工作机器id可以支持1023台机器,序列号支持1毫秒产生4095个自增序列id。下文会具体分析。Snowflake – 时间戳这里时间戳的细度
转载
1433阅读
0评论
0点赞
发布博客于 5 年前

java filechannel

Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。打开FileChannel在使用FileChannel之前,必须先打开它。但是,我们无法直接打开一个FileChannel,需要通过使用一个InputStream、OutputStream或RandomAcc
转载
335阅读
0评论
0点赞
发布博客于 5 年前

Buffer类详解

Buffer 类是 java.nio 的构造基础。一个 Buffer 对象是固定数量的数据的容器,其作用是一个存储器,或者分段运输区,在这里,数据可被存储并在之后用于检索。缓冲区可以被写满或释放。对于每个非布尔原始数据类型都有一个缓冲区类,即 Buffer 的子类有:ByteBuffer、CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer、LongBuffe
转载
358阅读
0评论
0点赞
发布博客于 5 年前

linux inode理解

一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是
转载
360阅读
0评论
0点赞
发布博客于 5 年前

mysql单表体积和一个库设计多少张表为妥

他不清楚mysql一个库里面分多少张表合适,他一个库分了8000张表。于是我看了,忍不住作答。 于是以个人随笔的形式给自己做知识备忘吧。 1、单表体积多大的时候需要分表 曾经看过一个博客,分析到什么情况下需要分表。单表形式访问(也就是对这个表的访问不涉及到join联合查询):单个表的体积大于2g的时候。或者说,单个表的行数达到一千万的时候。
转载
779阅读
0评论
0点赞
发布博客于 5 年前

GZIP、LZO、Zippy/Snappy常用压缩算法

网址: http://www.cnblogs.com/panfeng412/archive/2012/12/24/applications-scenario-summary-of-compression-algorithms.htmlGZIP、LZO、Zippy/Snappy是常用的几种压缩算法,各自有其特点,因此适用的应用场景也不尽相同。这里结合相关工程实践的情况,做一次小结。压
转载
1030阅读
0评论
0点赞
发布博客于 5 年前

Preconditions优雅的检验参数

在日常开发中,我们经常会对方法的输入参数做一些数据格式上的验证,以便保证方法能够按照正常流程执行下去。对于可预知的一些数据上的错误,我们一定要做事前检测和判断,来避免程序流程出错,而不是完全通过错误处理来保证流程正确执行,毕竟错误处理是比较消耗资源的方式。在平常情况下我们对参数的判断都需要自己来逐个写方法判断,代码量不少并且复用性不高,如下所示:import org.junit.Tes
转载
544阅读
0评论
0点赞
发布博客于 5 年前

hive 时间函数

语法: from_unixtime(bigintunixtime[, string format])返回值: string 说明: 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式 举例: hive>selectfrom_unixtime(1323308
转载
856阅读
0评论
0点赞
发布博客于 5 年前

分布式日志收集收集系统:Flume

Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。但随着 Flume 功能的扩展,Flume OG 代码工程臃肿、核心组件设计不合
转载
4514阅读
0评论
0点赞
发布博客于 5 年前

hive order by,sort by,distributed by

order byorder by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。set hive.mapred.mode=nonstrict; (default value / 默认值)set hive.mapred.mode=strict; order b
转载
833阅读
1评论
0点赞
发布博客于 5 年前

hive regexp_extract

函数描述:regexp_extract(str, regexp[, idx]) - extracts a group that matches regexp字符串正则表达式解析函数。-- 这个函数有点类似于 substring(str from 'regexp')  ..参数解释:其中:str是被解析的字符串regexp 是正则表达式
转载
1415阅读
0评论
0点赞
发布博客于 5 年前

拉链表设计

在企业中,由于有些流水表每日有几千万条记录,数据仓库保存5年数据的话很容易不堪重负,因此可以使用拉链表的算法来节省存储空间。1.采集当日全量数据存储到 ND(当日) 表中。 2.可从历史表中取出昨日全量数据存储到 OD(上日数据)表中。3.用ND-OD为当日新增和变化的数据(即日增量数据)。两个表进行全字段比较,将结果记录到tabel_I表中4.用OD-ND为状态到
转载
476阅读
0评论
0点赞
发布博客于 5 年前

拉链表

在数据仓库的数据模型设计过程中,经常会遇到这样的需求:1. 数据量比较大;2. 表中的部分字段会被update,如用户的地址,产品的描述信息,订单的状态等等;3. 需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史某一个时间点的状态,   比如,查看某一个用户在过去某一段时间内,更新过几次等等;4. 变化的比例和频率不是很大,比如,总共有1000万
转载
1504阅读
0评论
0点赞
发布博客于 5 年前

java calender坑

5月31日的时候,很多Java的test case都莫名其妙的fail了。报的错误大意是“结束时间格式不对”。通过debug发现实际发送的结束时间为6月31日,当然不对了,6月哪儿来的31日呢。结束时间是通过获取当前,然后+2个月作为结束时间。设置时间是通过java.util.Calendar类来实现的。用Calendar.getInstance(TimeZone.getTimeZ
转载
453阅读
0评论
0点赞
发布博客于 5 年前

java cpu占用过大

使用jstack分析java程序cpu占用率过高的有关问题使用jstack分析java程序cpu占用率过高的问题1,使用jps查找出java进程的pid,如37072,使用top -p 14292 -H观察该进程中所有线程的CPU占用。[plain] view plain copy print?[root@cp01-game-
转载
802阅读
0评论
0点赞
发布博客于 5 年前

shell默认参数

通常shell中我们需要给变量设置默认值,可能会写出如下代码Shell代码  #!/bin/bash  if [ ! $1 ]; then         $1='default'  fi  显然这种方式在变量少的时候没啥问题,一旦变量多起来,我们可能就有大量的重复劳动(if判断)有没有比较优雅的方式,不用写一大堆if判断,显然答案是有的
转载
4285阅读
0评论
1点赞
发布博客于 5 年前

xlsxwriter使用啊

1.简单使用excel的实例:
转载
7689阅读
0评论
0点赞
发布博客于 5 年前

笔记1

1) 求门店每月在线天数select substring(hp_stat_time, 1,7) as month ,shopid, sum(case when charge >0 then 1 else 0 end) as online_day_cnt,sum(charge)from () a where buname="test" group by  substring(
原创
442阅读
0评论
0点赞
发布博客于 5 年前

笔记

1.CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 2.内存消耗最多的前10个进程 ps auxw|head -1;ps auxw|sort -rn -k4|head -10 3.虚拟内存使用最多的前10个进程 ps auxw|head -1;ps auxw|sort -rn -
转载
287阅读
0评论
0点赞
发布博客于 5 年前

Kafka High Availability (下)

原创文章,转载请务必将下面这段话置于文章开头处。(已授权InfoQ中文站发布)  本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/06/08/KafkaColumn3摘要  本文在上篇文章基础上,更加深入讲解了Kafka的HA机制,主要阐述了HA相关各种场景,如Broker failover,Controller f
转载
418阅读
0评论
0点赞
发布博客于 5 年前

Kafka High Availability (上)

Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务。若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢失。而Kafka的设计目标之一即是提供数据持久化,同时对于分布式系统来说,尤其当集群规模上升到一定程度后,一台或者多台机器宕机的可能性大大提高,对Failover要求非常高。
转载
457阅读
0评论
0点赞
发布博客于 5 年前

kfaka架构介绍

作者 郭俊 发布于 2015年3月10日 | 11 讨论分享到:微博微信FacebookTwitter有道云笔记邮件分享稍后阅读我的阅读清单Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark
转载
2907阅读
0评论
2点赞
发布博客于 5 年前

scala学习笔记4

第一:初始化的时候。object Sample { var name:String=_ def main (args: Array[String]){ name="hello world" println(name) }在这里,name也可以声明为null,例:var name:String=null。这里的下划线和null的作用是一样的。
转载
335阅读
0评论
0点赞
发布博客于 5 年前

自言自语3

记录一下:1)全局购物车是个大麻烦,平台多了,有很多商铺或者平台有一些自己的商城,如何融入到一个购物车;2)订单如何做重复检测,不要让用户付两次钱。对订单设置status,服务端和客户端可以跟踪状态,这样对已经付过钱的订单状态可以退出付款,确保不多扣钱;3)网速卡,用户下一个订单同时刷了2个单子,对于余额支付多扣了一次用户钱,解决方案加一个confirm让用户确定再搞;4)多维度平
原创
468阅读
0评论
0点赞
发布博客于 5 年前

hive下变量的使用

Hive的变量前面有一个命名空间,包括三个hiveconf,system,env,还有一个hivevar1. hiveconf的命名空间指的是hive-site.xml下面的配置变量值。2. system的命名空间是系统的变量,包括JVM的运行环境。3. env的命名空间,是指环境变量,包括Shell环境下的变量信息,如HADOOP_HOME之类的 普通的变量可
转载
661阅读
0评论
0点赞
发布博客于 5 年前

hive inser into 与 hive overwrite区别

1、insert  into 语句hive> insert into table userinfos2 select id,age,name from userinfos;2、insert overwrite语句hive> insert overwrite table userinfos2 select id,age,name from userinfo
转载
4645阅读
0评论
0点赞
发布博客于 5 年前

impala

Impala架构分析Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。那么Impala如何实现大数据的快
转载
797阅读
0评论
0点赞
发布博客于 5 年前

infobright

Infobright是一款基于独特的专利知识网格技术的列式数据库。Infobright是开源的MySQL数据仓库解决方案,引入了列存储方案,高强度的数据压缩,优化的统计计算(类似sum/avg/group by之类),infobright 是基于mysql的,但不装mysql亦可,因为它本身就自带了一个。mysql可以粗分为逻辑层和物理存储引擎,infobright主要实现的就是一个存储引擎,但因
转载
2092阅读
0评论
0点赞
发布博客于 5 年前

mysqldump

1、导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql)    mysqldump -uroot -pdbpasswd -d dbname >db.sql; 2、导出數據库為dbname某张表(test)结构    mysqldump -uroot -pdbpasswd -d dbname test>db.sql; 3
转载
393阅读
0评论
0点赞
发布博客于 5 年前

Kylin正式发布:面向大数据的终极OLAP引擎方案

日前,eBay公司隆重宣布已经正式向开源业界推出分布式分析引擎:Kylin(http://kylin.io)。作为一套旨在对Hadoop环境下分析流程进行加速、且能够与SQL兼容性工具顺利协作的解决方案,Kylin成功将SQL接口与多维分析机制(OLAP)引入Hadoop,旨在对规模极为庞大的数据集加以支持。背景信息eBay公司当前面临的主要挑战在于,数据规模正随着用户群体的多样化
转载
1409阅读
0评论
0点赞
发布博客于 5 年前

apache kylin

京东云海是由京东和ISV共同合作的模式对商家提供服务。云海提供基础的京东POP(商家开放平台)数据,包括商品、商家、客服绩效、品牌、行业等主题数据,目前可提供T+1汇总计算结果,以及上百个实时指标订阅。ISV通过商家授权可以获取商家基础数据,ISV通过JOS的API接口上传相关维表数据,数据上传到数据仓库后,ISV可以在云海开放平台上开发相关的Hive SQL对上传数据和商家基础数据进行关联计算,
转载
2350阅读
0评论
0点赞
发布博客于 5 年前

JVM调优总结 -Xms -Xmx -Xmn -Xss

堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms355
转载
358阅读
0评论
0点赞
发布博客于 5 年前

深入浅出数据仓库中SQL性能优化之Hive篇

一个Hive查询生成多个Map Reduce Job,一个Map Reduce Job又有Map,Reduce,Spill,Shuffle,Sort等多个阶段,所以针对Hive查询的优化可以大致分为针对MR中单个步骤的优化(其中又会有细分),针对MR全局的优化,和针对整个查询(多MR Job)的优化,下文会分别阐述。 在开始之前,先把MR的流程图帖出来(摘自Hadoop权威指南
转载
541阅读
0评论
0点赞
发布博客于 5 年前

hive分区(partition)简介

一、背景1、在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。2、分区表指的是在创建表时指定的partition的分区空间。3、如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by,详见表创建的语法结构。二、技术细节
转载
389阅读
0评论
0点赞
发布博客于 5 年前

OLTP  和 OLAP

OLTP与OLAP的介绍    数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直
转载
593阅读
1评论
0点赞
发布博客于 5 年前

SSH 免登陆

ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。1.在A机下生成公钥/私钥对。[chenlb@A ~]$ ssh-keygen -t rsa -P ''-P表示密码,-P '' 就表示空
转载
433阅读
0评论
0点赞
发布博客于 5 年前

实现无锁的栈与队列

怎样实现一个无锁队列,网络上有很多的介绍,其中流传最广,影响最大的恐怕就属于以下两篇论文: a) "Implementing lock free queue" by  John.D.Valois b) "Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms" by M.
转载
395阅读
0评论
0点赞
发布博客于 5 年前

RabbitMQ基础概念详细介绍

你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。RabbitMQ简介
转载
304阅读
0评论
0点赞
发布博客于 5 年前

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore  在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。  以下是本文目录大纲:  一.CountDownLatch用法  二.Cy
转载
495阅读
0评论
0点赞
发布博客于 5 年前

CyclicBarrier介绍

.println("=======================================");           System.out.println("开始全国汇总");       }   }     /**   * 子任务:计费任务   */  class BillTask extends Thread {       // 计费服
转载
367阅读
0评论
0点赞
发布博客于 5 年前

linux多行注释

1.多行注释:  1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;  2. 在行首使用上下键选择需要注释的多行;  3. 按下键盘(大写)“I”键,进入插入模式;  4. 然后输入注释符(“//”、“#”等);  5. 最后按下“Esc”键。注:在按下esc键后,会稍等一会才会出现注释,不要着急~~时间很短的 
转载
12552阅读
0评论
4点赞
发布博客于 5 年前

用 IntelliJ IDEA 新建 JAVA 工程

打开 IntelliJ IDEA,在向导中选择“Create New Project”在“New Project”选项卡中,为 Project 命名,这次我们将工程命名为 HelloWorld点“next”进行下一步,然后直接点“finish”完成创建。在右侧的项目管理器中展开我们的“HelloWorld”,在“src”上右键,新建一个“Java Class
转载
1792阅读
0评论
0点赞
发布博客于 5 年前

知乎架构

也许很多人还不知道,知乎在规模上是仅次于百度贴吧和豆瓣的中文互联网最大的UGC(用户生成内容)社区。知乎创业三年来,从0开始,到现在已经有了100多台服务器。目前知乎的注册用户超过了1100万,每个月有超过8000万人使用;网站每个月的PV超过2.2亿,差不多每秒钟的动态请求超过2500。在ArchSummit北京2014大会上,知乎联合创始人兼 CTO 李申申带来了知乎创业三年多来的首次
转载
1322阅读
0评论
0点赞
发布博客于 5 年前

四层和七层负载均衡的区别

(一)  简单理解四层和七层负载均衡:  ① 所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址;四层通过虚拟IP+端口接收请求
转载
436阅读
0评论
0点赞
发布博客于 5 年前

php安装gearman扩展实现异步分步式任务

一、简介Gearman是一个分发任务的程序框架,它会对作业进行排队自动分配到一系列机器上。gearman跨语言跨平台,很方便的实现异步后台任务。php官方收录:http://php.net/manual/zh/book.gearman.php如上图,一个Gearman请求的处理过程涉及三个角色:Client -> Job -> Worker。Client:请求的
转载
785阅读
0评论
0点赞
发布博客于 5 年前

多路IO复用

通过单线程可以监听多个io事件;1)select需要一次内存拷贝到内核,epoll本身构建与内核;2)epoll支持的socket数量更多;3)epoll不是轮询
原创
513阅读
0评论
0点赞
发布博客于 5 年前

Java RMI

Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。 Java RMI不是什么新技术(在Java1.1的时代都有了),但却是是非常重要的底层技术。大名鼎鼎的EJB都是建立在rmi基础之上的,现
转载
323阅读
0评论
0点赞
发布博客于 5 年前

C++中的RTTI机制详解

RTTI是”Runtime Type Information”的缩写,意思是运行时类型信息,它提供了运行时确定对象类型的方法。RTTI并不是什么新的东西,很早就有了这个技术,但是,在实际应用中使用的比较少而已。而我这里就是对RTTI进行总结,今天我没有用到,并不代表这个东西没用。学无止境,先从typeid函数开始讲起。typeid函数typeid的主要作用就是让用户知道当前的变量是
转载
455阅读
0评论
0点赞
发布博客于 5 年前

jstat

jstat的用法用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建
转载
359阅读
0评论
0点赞
发布博客于 5 年前

脏页回写

由于页高速缓存的缓存作用,写操作实际上会被延迟。当页高速缓存中的数据比后台存储的数据更新时,那么该数据就被称为脏数据。在内存中积累起来的页最终必须被写回磁盘。在以下两种情况发生时,脏页被写回磁盘:1. 当空闲的内存低于一个特定的阈值时,内核必须将脏页写回磁盘,以便释放内存。2. 当脏页在内存中驻留时间超过一个特定的阈值时,内核必须将超时的脏页写回磁盘,以确保脏页不会无限期地驻留在内
转载
3353阅读
1评论
1点赞
发布博客于 5 年前

zero-copy

许多web应用都会向用户提供大量的静态内容,这意味着有很多data从硬盘读出之后,会原封不动的通过socket传输给用户。这种操作看起来可能不会怎么消耗CPU,但是实际上它是低效的:kernal把数据从disk读出来,然后把它传输给user级的application,然后application再次把同样的内容再传回给处于kernal级的socket。这种场景下,application实际上只是作为
转载
321阅读
0评论
0点赞
发布博客于 5 年前

RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总

MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka。这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求。下面我列出这些MQ之间的对比数据和资料。第一部分:RabbitMQ,ActiveMq,ZeroMq比较1、 TPS比较 一ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。这个结论来自于以下这篇文
转载
381阅读
0评论
0点赞
发布博客于 5 年前

mpstat

mpstat  另一个用于获取 CPU 相关统计信息的有用的命令是 mpstat。下面是一个示例输出:   # mpstat -P ALL 5 2  Linux 2.6.9-67.ELsmp (oraclerac1)       12/20/2008     10:42:38 PM  CPU   %user   %nice %system %iowait    %irq  
转载
310阅读
0评论
0点赞
发布博客于 5 年前

vmstat

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。一般vmst
转载
265阅读
0评论
0点赞
发布博客于 5 年前

c++ 11 lamda表达式

class CTest{public: CTest() : m_nData(20) { NULL; } void TestLambda() {  vector vctTemp;  vctTemp.push_back(1);  vctTemp.push_back(2);  // 无函数对象参数,输出:1 2  {   for_each(vctTem
转载
663阅读
0评论
0点赞
发布博客于 5 年前

BOOST property_tree

###################################################include #include using namespace boost::property_tree;//read_xml() input xml filevoid read_xml(const string &, ptree &pt);void read_x
转载
562阅读
0评论
0点赞
发布博客于 5 年前

HBase -ROOT-和.META.表结构

在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer。什么叫相应的RegionServer?就是管理你要操作的那个Region的RegionServer。Client本身并不知道哪个RegionServer管理哪个Region,那么它是如何找到相应的RegionServer的?本文就是在研究源码的基础上揭
转载
323阅读
0评论
0点赞
发布博客于 5 年前

epool边沿触发和水平触发

LT(level triggered)是缺省的工作方式,并且同时支持block和no-block socket.在这种做法中,内核告诉你一个文件描述符是否就绪了,然后你可以对这个就绪的fd进行IO操作。如果你不作任何操作,内核还是会继续通知你的,所以,这种模式编程出错误可能性要小一点。传统的select/poll都是这种模型的代表.ET(edge-triggered)是高速工作方式,只支持
转载
627阅读
0评论
0点赞
发布博客于 5 年前

memory order

Background 很久很久很久以前,CPU忠厚老实,一条一条指令的执行我们给它的程序,规规矩矩的进行计算和内存的存取。 很久很久以前, CPU学会了Out-Of-Order,CPU有了Cache,但一切都工作的很好,就像很久很久很久以前一样,而且工作效率得到了很大的提高。 很久以前,我们需要多个CPU一起工作,于是出现了传说中的SMP系统,每个CPU都有独立的Cache,都会乱序执
转载
477阅读
0评论
0点赞
发布博客于 5 年前

巧夺天工的kfifo

Linux kernel里面从来就不缺少简洁,优雅和高效的代码,只是我们缺少发现和品味的眼光。在Linux kernel里面,简洁并不表示代码使用神出鬼没的超然技巧,相反,它使用的不过是大家非常熟悉的基础数据结构,但是kernel开发者能从基础的数据结构中,提炼出优美的特性。kfifo就是这样的一类优美代码,它十分简洁,绝无多余的一行代码,却非常高效。关于kfifo信息如下:本文分
转载
422阅读
0评论
0点赞
发布博客于 5 年前

NGINX模块

Content0. 序1. nginx有哪些模块?2. nginx如何描述这些模块?2.1 模块数据结构2.1.1 ngx_module_t结构2.1.2 ngx_command_t结构2.2 模块类图3. nginx如何组织这些模块?3.1 全局数组ngx_modules3
转载
586阅读
0评论
0点赞
发布博客于 5 年前

进程上下文

对于服务器的优化,很多人都有自己的经验和见解,但就我观察,有两点常常会被人忽视 – 上下文切换 和 Cache Line同步 问题,人们往往都会习惯性地把视线集中在尽力减少内存拷贝,减少IO次数这样的问题上,不可否认它们一样重要,但一个高性能服务器需要更细致地去考察这些问题,这个问题我将分成两篇文章来写:1)从一些我们常用的用户空间函数,到linux内核代码的跟踪,来看一个上下文切换是如何
转载
428阅读
0评论
0点赞
发布博客于 5 年前

PIPE和socketpair的区别

2013年04月19日 ⁄ 综合 ⁄ 共 1580字 ⁄ 字号 小 中 大 ⁄ 评论关闭管道pipe是半双工的,pipe两次才能实现全双工,使得代码复杂。socketpair直接就可以实现全双工socketpair对两个文件描述符中的任何一个都可读和可写,而pipe是一个读,一个写详间代码:一:pipe实现父子进程全双工通信:#i
转载
1361阅读
0评论
1点赞
发布博客于 5 年前

两个重要信号

8.5.1 SIGALRM信号        在进行阻塞式系统调用时,为避免进程陷入无限期的等待,可以为这些阻塞式系统调用设置定时器。Linux提供了alarm系统调用和SIGALRM信号实现这个功能。        要使用定时器,首先要安装SIGALRM信号。如果不安装SIGALRM信号,则进程收到SIGALRM信号后,缺省的动作就是终止当前进程。SIGALRM信号安装成功后,在
转载
417阅读
0评论
0点赞
发布博客于 5 年前

sigprocmask

1、有时候不希望在接到信号时就立即停止当前执行,去处理信号,同时也不希望忽略该信号,而是延时一段时间去调用信号处理函数。这种情况是通过阻塞信号实现的。2、信号阻塞和忽略信号的区别。阻塞的概念和忽略信号是不同的。操作系统在信号被进程解除阻塞之前不会讲信号传递出去,被阻塞的信号也不会影响进程的行为,信号只是暂时被阻止传递。当进程忽略一个信号时,信号会被传递出去但进程会将信号丢弃。
转载
437阅读
0评论
0点赞
发布博客于 5 年前