自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

原创 java nio

     Java中nio有3个核心概念:channel,buffer,selector,在网络nio中,把channel的事件注册到selector,当网络就绪后进行读写操作,channel之间通过buffer传递数据。 Channel         一共有4种通道:          FileChannel          SocketChannel  基于TCP...

2015-01-23 16:44:55 187

原创 HFile格式说明(转)

原文地址:http://my.oschina.net/zhengyang841117/blog/188723   在这里主要分析一下HFile V2的各个组成部分的一些细节,重点分析了HFile V2的多级索引的机制,接下去有时间的话会分析源码中对HFile的读写扫描操作。HFile和流程:如下图,HFile的组成分成四部分,分别是Scanned Block(数据block)、...

2014-12-08 21:07:10 990

原创 OpenTSDB的设计之道(转)

原文地址:http://san-yun.iteye.com/blog/1993519 OpenTSDB是一个架构在Hbase系统之上的实时监控信息收集和展示平台。它在海量数据的压力下,仍然保证了存储的效率,那么它背后有什么值得借鉴的地方呢?1)使用AsyncHbase而非HBase自带的HTable。使用线程安全、非阻塞、异步、多线程并发的HBase API,在高并发和高吞吐时...

2014-12-05 23:51:43 255

原创 CDN回源率高导致机房出口带宽翻倍

  前几天感恩节,发现公司机房出口带宽增长1倍,经过排查发现是提供图书下载的服务器输出流量大增,查看源码,定位到问题:  走CDN的下载接口中带有机型、渠道、版本等参数,而这些参数的组合场景可达到百万级,从而导致大量的请求穿透,而感恩节的运营策略是重点推精品书,每天会有免费,而一本精品书可以达到几十M大小,对于一本精品书可能就会有n多请求回源到程序机房,严重浪费机房带宽,1年的损失相当大(至...

2014-11-29 17:03:10 527

原创 hbase数据备份或者容灾方案

    HBase的数据备份或者容灾方案有这几种:Distcp,CopyTable,Export/Import,Snapshot,Replication,以下分别介绍(以下描述的内容均是基于0.94.20版本)。 一、Distcp   在使用distcp命令copy hdfs文件的方式实现备份时,需要禁用备份表确保copy时该表没有数据写入,对于在线服务的hbase集群,该方式不可...

2014-11-11 18:38:40 353

原创 停止RegionServer服务的大致逻辑

hbase-daemon.sh中停止RS的脚本如下:if [ -f $pid ]; then      # kill -0 == see if the PID exists       if kill -0 `cat $pid` > /dev/null 2>&1; then //判断进程是否存在        echo -n stopping $com...

2014-11-07 15:53:28 437

原创 快速解决在线服务慢问题的工作流程

   快速解决线上系统问题,对于公司可减少损失,对于相关技术人员,可改善睡眠            

2014-11-06 16:30:15 288

原创 linux的oom killer导致memcached服务下线

   公司部分项目是用python实现的,由于python的内存泄露问题,每两天凌晨均会重启一次python服务,有一次在业务高峰期,python服务的内存大增,导致操作系统的free memory低于/proc/sys/vm/min_free_kbytes设置的值,触发了linux的oom killer,由于在该python服务器上部署有memcached服务,在oom killer的算法下...

2014-11-06 15:58:38 254

原创 通过日志实现简单的服务监控与快速问题定位

    生产系统出的问题中,请求响应慢是很常见的问题,如何快速定位慢的源头非常重要,通过对之前遇到的问题总结,发现一般都是依赖服务慢或者出现线程阻塞导致,对于这两种问题简单有效的定位方法如下:   1、打印超过阀值的依赖服务访问时长到日志,通过日志定位    2、使用java的jstack命令查看java线程是否阻塞   其中简单介绍一下如何利用日志定位问题:      对每个...

2014-11-06 14:48:11 525

原创 架构设计要点总结

根据以往经验总结一下架构设计的要点,记录下来,以后定期修整并添加新的感悟:1. 了解需求,对现有需求,未来可能的需求均要了解,需求变化很正常,从架构层面做到开闭原则,以便可持续发展,如何做到,比如osgi这种插件化思想,小内核,新功能新插件,还比如一些设计模式:适配器模式2. 分而治之,比如:按照高内聚低耦合的思路对系统进行垂直拆分,便于对子系统进行精细化的制定设计,并且屏蔽系统演变一...

2014-10-22 13:50:29 333

原创 生产环境遇到的rabbitmq队列堆积原因分析和解决方案

   在8月5、6、7连续三天晚上10点出现充值相关几个消息堆积的问题,经过分析发现主要问题是充值项目对mq的使用存在一些不合理的地方,当mq负载高时会出现堆积现象。具体原因如下:   1、采用的消息模式是get模式,而不是高效的deliver模式,经过在新搭建的mq服务器测试发现,get模式:5000条/秒便会出现严重堆积, deliver模式:20000条/秒不会堆积,如果按照充值...

2014-09-22 19:07:17 8151 2

原创 hbase之RPC详解

Hbase的RPC主要由HBaseRPC、RpcEngine、HBaseClient、HBaseServer、VersionedProtocol 5个概念组成。1、HBaseRPC是hbase RPC的实现类,核心方法:1)、RpcEngine getProtocolEngine():返回RpcEngine对象2)、<T extends VersionedProtocol&g...

2014-09-21 01:31:37 1531

原创 android启动模式android:launchMode(转)

在android里,有4种activity的启动模式,分别为:“standard” (默认)“singleTop”“singleTask”“singleInstance” 它们主要有如下不同: 1. 如何决定所属task“standard”和”singleTop”的activity的目标task,和收到的Intent的发送者在同一个task内,除非intent...

2014-09-05 10:49:21 120

原创 Activity 的属性之android:screenOrientation(转)

Activity在屏幕当中显示的方向。属性值可以是下表中列出的一个值: "unspecified"默认值,由系统来选择方向。它的使用策略,以及由于选择时特定的上下文环境,可能会因为设备的差异而不同。"user"使用用户当前首选的方向。"behind"使用Activity堆栈中与该Activity之下的那个Activity的相同的方向。"landsc...

2014-09-05 10:29:39 125

原创 Android Permission大全(转)

android.permission.ACCESS_CHECKIN_PROPERTIES允许读写访问"properties"表在checkin数据库中,改值可以修改上传( Allows read/write access to the "properties" table in the checkin database, to change values that get uploaded)...

2014-09-04 17:33:34 139

原创 redis采用tcmalloc导致无法释放内存的问题

redis使用tcmalloc管理内存,当删除了redis的key后,通过redis的info命令查看内存使用情况,发现内存并没有释放,但是采用默认的jemalloc就不会有这个问题以下是采用tcmalloc后删除key前和删除key后通过info看到的内存情况:    删除key前:    used_memory:13051400used_memory_human:12.45M...

2014-08-05 12:22:47 948

原创 迁移namenode

   由于hbase集群的namenode所在机柜需要尽快让出,因此需迁移namenode,旧nn的ip是0.238,新的ip是0.249,249服务器是之前老hbase集群的一个数据节点,由于基于hbase的应用的写入操作均是先写redis队列,再异步写hbase,并且我在停止hbase集群服务时不会停止zookeeper(zk停止服务后,client端重试机制会导致一个请求超过几十秒的等待...

2014-07-01 18:39:10 304

原创 导致Hbase挂掉的场景

 异常导致的退出会通过接口Abortable定义的abort()方法实现,Abortable实现类如下: 由以上类图可以看出HBaseAdmin的abort由于是client的访问,因此终止服务只需抛出异常即可,HConnection也是用于client,因此只需关闭连接,如果是zk的异常会在后续的使用中重新连接zk而不用关闭连接,其中重点的是HMaster、HRegionServer和Zoo...

2014-05-20 21:24:24 595

原创 处理master不断assign未成功分配region的问题

  在hbase-0.94.0的版本删除表后可能不会删除干净,导致在META表中遗留有region的信息(hdfs中的文件路径会被删除),在hbase重启后,会导致无法分配region的问题,不被分配的region会保存到zk的unassigned目录下,并且hbase的assgin线程会不断的尝试进行分配,并在master的监控页面的最下方显示出来,不断的尝试会导致占用集群的链接数,并且日志会...

2014-05-18 13:23:20 348

原创 hbase client访问的超时时间、重试次数、重试间隔时间的配置

   超时时间、重试次数、重试时间间隔的配置也比较重要,因为默认的配置的值都较大,如果出现hbase集群或者RegionServer以及ZK关掉,则对应用程序是灾难性的,超时和重新等会迅速占满web容器的链接,导致web容器停止服务,关于socket的超时时间,有两种:1:建立连接的超时时间;2:读数据的超时时间。可以配置如下几个参数:1. hbase.rpc.timeout:rpc的...

2014-05-17 23:28:41 1229

原创 hbase性能调优

一、服务端调优 1、参数配置   1)、hbase.regionserver.handler.count:该设置决定了处理RPC的线程数量,默认值是10,通常可以调大,比如:150,当请求内容很大(上MB,比如大的put、使用缓存的scans)的时候,如果该值设置过大则会占用过多的内存,导致频繁的GC,或者出现OutOfMemory,因此该值不是越大越好。   2)、hbase...

2014-05-17 23:10:55 1137

原创 Split Region详细解读

//HRegionServer类的splitRegion方法,该方法封装了手动split的实现逻辑public void splitRegion(HRegionInfo regionInfo, byte[] splitPoint)      throws NotServingRegionException, IOException {    region.flushcache();...

2014-05-17 22:50:59 789

原创 线程池引起的jvm内存过大问题

     之前的一个hbase表结构和rowkey规划不合理,我重新设计了一个新的hbase表,需要把旧表的数据写入到新表中,采用的方案是一个region一个region的倒数据,这样旧表的读是scan顺序读,新表的写是随机写,整体速度相对较快。    读采用单线程,写采用线程池(Executors.newFixedThreadPool()),改进scan查询速度的caching配置设置为...

2014-04-22 15:02:33 1883

原创 hdfs之checkpoint

前提说明:研究的hadoop版本1.0.3checkpoint的触发条件:默认1小时进行一次merge;edits的文件大小超过大致64M以上两个条件,满足任意一个即可,每隔5分钟进行一次条件检查。 checkpoit流程:在SNN(secondary namenode)服务器上检查fs.checkpoint.dir  fs.checkpoint.edit...

2014-03-24 23:00:44 319

原创 hbase 整体介绍

 转一篇hbase整体介绍的文章,写的比较好:  hbase是bigtable的开源山寨版本。是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储非结构化和半结构化的松散数据。与had...

2014-02-26 10:25:10 93

原创 获取hive日志,停止hive

    获取hive日志比较麻烦,通常的做法是执行shell命令获取日志,但是这样有一些问题,比如:输出的结果需要程序解析等,可以改进hive,采用jdbc的方式执行hive sql,并且把输出到控制台的日志保存到redis,其中kill job的命令日志用不同的key缓存到redis,如此可很方便获取查询结果、日志、kill命令。   具体实现方式如下:   修改hive-exec-...

2014-02-18 16:14:14 536

原创 如何制作ppt

  字体:采用微软雅黑  除了图片外,不使用外部的图形,比如:viso,这样可以避免有观看者没有安装viso,或者安装的viso版本与制作者的版本有出入导致显示的问题  制作ppt前统一样式  ppt可以多用比较亮丽的颜色  先把ppt要反映的内容通过文字描述出来,形成成熟思路后,再转换成图形,并修饰最关键的一点就是要弄清楚听众都有谁,以及重点听众的ppt喜好。...

2014-01-02 09:12:15 363

原创 关于分页中总记录数的处理

  在分页查询时通常需要显示总记录数,虽然只是一个数字,但是由于可能会全表统计,因此对查询的性能影响至关重要,现对其进行总结:  1、每次查询均select count,该方式数据的准确性最高,但是每次count,性能最低;  2、在会话期间只进行一次select count,然后缓存,该方式数据可能不准确,即可能漏数据导致部分新增数据无法被浏览到,但是可以避免后续访问的count操作...

2014-01-01 22:08:21 750

原创 软件国际化与本地化

  所谓软件国际化,意指:软件输出的信息会自动适应不同的语言环境,也即软件支持本地化。 需要国际化的信息包括:  1、输出到client端的信息 java程序输出的信息,比如:一个ajax请求返回的数据;javascript文件中需要展现给用户的信息,比如:提示信息;其它客户端技术需要展现给用户的信息,比如:Flex。  2、输出到服务器端的信息日志信息(如果...

2014-01-01 21:50:11 637

原创 JavaScript编码规范

 博文说明:该博文是从我之前写的JavaScript编码规范文档中copy出来,copy后,文本样式有所变化,可直接下载word的附件。      JavaScript编码规范    2011年11月                                  规范基本信息表: 规范简称:Ja...

2014-01-01 21:25:06 125

原创 jprofiler的使用

概述:JProfiler是用于分析J2EE软件性能瓶颈并能准确定位到Java类或者方法有效解决性能问题的主流工具,它通常需要与性能测试工具如:LoadRunner配合使用,因为往往只有当系统处于压力状态下才能反映出性能问题。 分析内存:   系统的内存消耗过多往往有以下几种原因:频繁创建Java对象,如:数据库查询时,没分页,导致查出表中所有记录;存在大对象,如:读...

2014-01-01 20:04:35 310

原创 hbase官方文档中文版

  hbase有一个官方的中文参考手册,学习hbase前最好先浏览一下以便对hbase有一个整体的了解,连接地址:http://abloz.com/hbase/book.html

2014-01-01 19:43:21 162

原创 hbase读数据之client

   前言:研究的HBase版本是0.94.12,贴出的源代码可能是经过我删减或者加工过的(简化篇幅,更易读)    以Scan查询为例介绍数据查询时HBase client端的实现  public static void main(String[] args) {scan("product", "f", "", 2); //从product表查询2条记录}p...

2013-12-24 22:59:56 281

原创 impala条件查询问题

  使用impala查询hbase时,如果是“=”条件查询,如果不添加is not null条件,则会把该列没有值的记录也查询出来(空字符串不会),比如:   Select * from user where name=’xiao wang’,该语句会查询出name等于xiao wang和null的数据。   Select * from user where name=’xiao wa...

2013-12-24 13:37:11 1190

原创 spring mvc+mybatis+easyui

  很长时间没有自己搭建项目框架了,最近要做一个数据开放的项目,由我搭建项目框架,发现现在spring已经做得很棒了,采用注解和基础包方式大量简化代码和配置量,把程序员从枯燥的低level代码中解放出来,更加关注业务逻辑的实现。  附件是我搭建的框架和demo例子。  该框架关键信息如下:  1、采用spring+spring mvc+mybatis+easyui  2、采用m...

2013-12-19 14:06:22 89

原创 自己实现的基于jquery的UI组件库

  在上一家单位做软件开发平台(2012年前的事了),一做就是近5年时间,在离开的最后一段时间,中心觉得应该做一个自己的jquery UI组件库,但是团队中没有NX的JS高人,要招一个合适的做过JS UI组件库的同学实在太难,似乎我的JS水平比他们略高一些,加上我比较好学,喜欢专研技术,不怕苦(自己夸一下自己-:)),因此这个重担就落在我的头上了。   由于之前对js、html、css...

2013-12-18 01:00:01 525

原创 hbase锁机制

博文说明:1、研究版本hbase0.94.12;2、贴出的源代码可能会有删减,只保留关键的代码。   hbase的锁是采用jdk的ReentrantReadWriteLock类实现   一、HRegion有两种锁:lock、updatesLock,这两种锁均是ReentrantReadWriteLock类的实例,基本上所有的region操作均需要获取lock的read共享锁,在...

2013-12-02 10:58:03 910

原创 由商品页的设计与实现说起

这是对我1年前设计与开发的商品详情页的总结,主要从性能、可用性和可维护性三个方面进行。 一、性能优化    从整体架构、程序内部和运行环境三个层面进行性能优化。1.   架构保障   由于现阶段商品数量处于千万级,并且结合商品的增长速度分析,以静态化方案为主即可满足未来一定时间的发展,具体静态化方案如下:提前生成商品页的HTML文件存储到NGINX所在的服务器,当C...

2013-11-30 19:56:53 193

原创 hbase写数据过程

博文说明:1、研究版本hbase0.94.12;2、贴出的源代码可能会有删减,只保留关键的代码 从client和server两个方面探讨hbase的写数据过程。一、client端 1、写数据API    写数据主要是HTable的单条写和批量写两个API,源码如下://单条写APIpublic void put(final Put put) throws ...

2013-11-29 00:10:57 117

原创 看懂-ROOT-表和.META.表

    前提说明:本文章研究的hbase版本是0.94.12。.     -ROOT-表和.META.表是hbase的元数据表,在-ROOT-表中保存有.META.表的相关信息,在.META.表中保存有业务表的region相关信息,在client端访问具体的业务表的region时需要先通过-ROOT-表找到.META.表,再通过.META.表找到region的位置,即这两个表主要解决了...

2013-11-28 14:12:47 726

值得下载的很炫的js特效

包含一些常见的js特效,比如: 数据验证 随机函数 日期与时间 Web打印 利用CSS样式打印 套打邮寄产品单 显示XML文档 。。。。

2010-12-19

flash_as3_programming.pdf

非常榜的actionscript手册,教你: 使用绘图 API 处理事件 显示编程 处理几何结构 过滤显示对象 处理位图 在三维 (3D) 环境中工作 处理视频 。。。。

2010-12-19

空空如也

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

TA关注的人

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