`
无尘道长
  • 浏览: 161114 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
redis使用tcmalloc管理内存,当删除了redis的key后,通过redis的info命令查看内存使用情况,发现内存并没有释放,但是采用默认的jemalloc就不会有这个问题 以下是采用tcmalloc后删除key前和删除key后通过info看到的内存情况:     删除key前:     used_memory:13051400 used_memory_human:12.45M used_memory_rss:16326656 used_memory_peak:13051400 used_mem
   由于hbase集群的namenode所在机柜需要尽快让出,因此需迁移namenode,旧nn的ip是0.238,新的ip是0.249,249服务器是之前老hbase集群的一个数据节点,由于基于hbase的应用的写入操作均是先写redis队列,再异步写hbase,并且我在停止hbase集群服务时不会停止zookeeper(zk停止服务后,client端重试机制会导致一个请求超过几十秒的等待),因此可以允许短暂的hbase服务停止,不会影响带来收入的充值业务,以下记录了整个迁移过程:   1、环境准备     1)创建hadoop用户(之前的hbase集群的root用户),并且把存放 ...
 异常导致的退出会通过接口Abortable定义的abort()方法实现,Abortable实现类如下: 由以上类图可以看出HBaseAdmin的abort由于是client的访问,因此终止服务只需抛出异常即可,HConnection也是用于client,因此只需关闭连接,如果是zk的 ...
  在hbase-0.94.0的版本删除表后可能不会删除干净,导致在META表中遗留有region的信息(hdfs中的文件路径会被删除),在hbase重启后,会导致无法分配region的问题,不被分配的region会保存到zk的unassigned目录下,并且hbase的assgin线程会不断的尝试进行分配,并在master的监控页面的最下方显示出来,不断的尝试会导致占用集群的链接数,并且日志会大量飞涨,一个8台服务器的小集群,被删除表涉及10个region,半天时间,master的日志就可以达到3G,regionserver的日志可以达到1G,必须停止分配操作,具体措施如下: 1、通过de ...
   超时时间、重试次数、重试时间间隔的配置也比较重要,因为默认的配置的值都较大,如果出现hbase集群或者RegionServer以及ZK关掉,则对应用程序是灾难性的,超时和重新等会迅速占满web容器的链接,导致web容器停止服务,关于socket的超时时间,有两种:1:建立连接的超时时间;2:读数据的超时时间。 可以配置如下几个参数: 1. hbase.rpc.timeout:rpc的超时时间,默认60s,不建议修改,避免影响正常的业务,在线上环境刚开始配置的是3秒,运行半天后发现了大量的timeout error,原因是有一个region出现了如下问题阻塞了写操作:“Blockin ...
一、服务端调优  1、参数配置    1)、hbase.regionserver.handler.count:该设置决定了处理RPC的线程数量,默认值是10,通常可以调大,比如:150,当请求内容很大(上MB,比如大的put、使用缓存的scans)的时候,如果该值设置过大则会占用过多的内存,导致频繁的GC,或者出现OutOfMemory,因此该值不是越大越好。     2)、hbase.hregion.max.filesize:配置region大小,0.94.12版本默认是10G,region大小一般控制在几个G比较合适,可以在建表时规划好region数量,进行预分区,做到一定时间内 ...
//HRegionServer类的splitRegion方法,该方法封装了手动split的实现逻辑 public void splitRegion(HRegionInfo regionInfo, byte[] splitPoint)       throws NotServingRegionException, IOException {     region.flushcache(); //刷新memstore region.forceSplit(splitPoint);//设置 ...
     之前的一个hbase表结构和rowkey规划不合理,我重新设计了一个新的hbase表,需要把旧表的数据写入到新表中,采用的方案是一个region一个region的倒数据,这样旧表的读是scan顺序读,新表的写是随机写,整体速度相对较快。     读采用单线程,写采用线程池(Executors.newFixedThreadPool()),改进scan查询速度的caching配置设置为500,写线程池设置为100,在循环scan结果集时,每条数据的写新表的操作均会作为一个线程任务提交给线程池,由于没有充分的评估scan(产生数据)和写(消费数据)的速度,导致查询数据的速度比写的速度快 ...
前提说明:研究的hadoop版本1.0.3 checkpoint的触发条件: 默认1小时进行一次merge; edits的文件大小超过大致64M 以上两个条件,满足任意一个即可,每隔5分钟进行一次条件检查。   checkpoit流程: 在SNN(secondary namenode)服务器上检查fs.checkpoint.dir  fs.checkpoint.edits.dir配置的文件路径,如果不存在则创建 在SNN服务器上修改current文件夹名称为: lastcheckpoint.tmp,并且重新创建一个空的current文件夹 通过http请求调用NN ...
 转一篇hbase整体介绍的文章,写的比较好:   hbase是bigtable的开源山寨版本。是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。 它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储非结构化和半结构化的松散数据。 与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。 HBase中的表一般有这样的特点:
    获取hive日志比较麻烦,通常的做法是执行shell命令获取日志,但是这样有一些问题,比如:输出的结果需要程序解析等,可以改进hive,采用jdbc的方式执行hive sql,并且把输出到控制台的日志保存到redis,其中kill job的命令日 ...

如何制作ppt

  字体:采用微软雅黑   除了图片外,不使用外部的图形,比如:viso,这样可以避免有观看者没有安装viso,或者安装的viso版本与制作者的版本有出入导致显示的问题   制作ppt前统一样式   ppt可以多用比较亮丽的颜色   先把ppt要反映的内容通过文字描述出来,形成成熟思路后,再转换成图形,并修饰 最关键的一点就是要弄清楚听众都有谁,以及重点听众的ppt喜好。
  在分页查询时通常需要显示总记录数,虽然只是一个数字,但是由于可能会全表统计,因此对查询的性能影响至关重要,现对其进行总结:   1、每次查询均select count,该方式数据的准确性最高,但是每次count,性能最低;   2、在会话期间只进行一次select count,然后缓存,该方式数据可能不准确,即可能漏数据导致部分新增数据无法被浏览到,但是可以避免后续访问的count操作;   3、不显示总记录数,通过每次查询时多查一条,判断是否是最后一页(最后一页是否可点击通常是通过总记录数除以页大小计算出总页数进行控制),该方式不存在漏数据和查询性能的问题,但是用户友好性会降低, ...
  所谓软件国际化,意指:软件输出的信息会自动适应不同的语言环境,也即软件支持本地化。  需要国际化的信息包括:   1、输出到client端的信息  java程序输出的信息,比如:一个ajax请求返回的数据; javascript文件中需要展现给用户的信息,比如:提示信息; 其它客户端技术需要展现给用户的信息,比如:Flex。   2、输出到服务器端的信息 日志信息(如果程序会部署到不同国家); 其它需要写入到文件、数据库等需要在运行期输出到client的信息。   国际化涉及的主要JAVA API,即其关系:  图:1     本地化对象:java.uti ...
 博文说明:该博文是从我之前写的JavaScript编码规范文档中copy出来,copy后,文本样式有所变化,可直接下载word的附件。             JavaScript编码规范  
Global site tag (gtag.js) - Google Analytics