csdn博客:http://blog.csdn.net/lhc1105
1.HBase数据热点问题 问题描述: 在某一个时刻,电池数据表的以某些规则开头的数据,比如M12******,这些电池一直在上报数据,由于HBase的存储是按照字典顺序排序的,所有某一时刻,相似规则的数据落在了同一个region上,造成了数据热点。
原文地址:https://stackoverflow.com/questions/16130292/java-lang-outofmemoryerror-permgen-space-java-reflection/47090043#47090043 问题 使用如下java反射代码: Method method = LogFactory.
原文地址 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).
函数的声明 Kotlin中使用fun关键字声明一个函数: fun double(x: Int): Int { return 2*x } 函数用法 使用传统的方式调用函数: val result = double(2) 使用”.”调用成员函数: Sample().foo() // 创建Sample的类,调用foo方法 参数 函数参数使用帕斯卡方式定义,例如:名称:类型;参数之间使用逗号分隔开。
一,协议 token验证未通过 返回: { "header": { "errorinfo": "无效的token", "errorcode": "8001" } } 页面上对这种情况的处理,都跳转到登陆页面; ...
原文地址:http://kotlinlang.org/docs/reference/packages.html 包 一个源文件可以以下面的包声明开头: package foo.barfun baz() {}class Goo {}// ... 源文件的所有内容(例如包和函数)都被声明的包所包含。
包定义 包声明应该放在源文件顶部: package my.demo import java.util.* // ... 源文件不需要匹配目录和包,源文件可以放在任意的文件系统中。 函数声明 有两个Int参数和Int返回值的函数定义及测试使用: fun sum(a: Int, ...
一,假如活在一个没有分代的连续内存中 假设程序占用的内存是从0000~FFFF这个地址,现在程序执行到给一个对象分配内存的那部分代码,给这个对象分配了2345~2346这段内存,程序继续执行,到了某一个时刻,程序分配的内存地址用完了,这时候,程序要回收这段地址里面,已经无用的对象...
一,问题描述 今天上午时候,kafka的一个topic涌上来超过平常值的一堆数据,消费客户端就开始出现了几个明显的问题: 1,首先是ZK连接超时 2,CPU飙升到400% 3,观察程序GC,发现老年代,S0,Eden这三个,100...
之前多线程的倒是写过,但是多进程,还是第一次,前几天,看到一段python写的代码,做压力测试的,为了抢占榨干CPU性能,对每一千个线程,开启一个进程,闲下来查查看,mark下:(我说的那段代码就不贴了,太多,自己写了个demo版本,很简单) #!/usr/bin/python3...
一,创建线程 ''''' 功能:输出当前时间 ''' def gettime(): localtime = time.localtime(time.time()) year = localtime[0] month = localtime...
使用 wait notify 实现一个队列,队列有2个方法,add 和 get 。add方法往队列中添加元素,get方法往队列中获得元素。队列必须是线程安全的。如果get执行时,队列为空,线程必须阻塞等待,直到有队列有数据。
question: 有三个线程 t1,t2,t3,如何保证这三个线程顺序执行? public class ShunXuThreadTest { @Test public void threadTest() throws Interrupted...
一,stop方法调用之后,线程的run不一定会立即结束 首先来看下stop方法的代码: @Deprecated public final synchronized void stop(Throwable obj) { if (obj == null) ...
Scan:setBatch,setCaching,setCacheBlocks public void setBatch(int batch) public void setCaching(int caching) public void setCacheBlocks(b...
Hbase组件  客户端Client 整个HBase集群的入口 使用HBase RPC机制与HMaster和HRegionserver通信 与HMaster通信进行管理类的操作 与HRegionserver通信进行读写类操作 包含访问HBase的接口,并维护cache来加快对HBase的访问,与HRegionserver交互 程序协调服务Zookeeper 保证任何时候,集群中只有一个Master 存贮所有Region的寻址入口 实时监控Region server的上线和下线信息。
无权限访问结点 /** * 对于ZK的授权访问 * Created by liuhuichao on 2017/7/27. */ public class AutoSample { private static String path="/test-1";...
创建会话 建立简单连接 /** * 测试创建Zk会话 * Created by liuhuichao on 2017/7/25. */ public class ZooKeeper_Constructor_Usage_Simple implements Watche...
使用[root@localhost bin]# ./zkCli.sh连接本地zk 创建 create [-s] [-e] path data acl 其中,-s是创建顺序或临时结点。
修改zk home/conf下的zoo_sample.cfg,重新命名为zoo.cfg。 修改配置为: dataDir=/root/data/zookeeper-data clientPort=2181 initLimit=5 syncLimit=2 server.
好代码的各种衡量 之前看过一些**编码规范,作者一般上来都是这样子的,先说明自己来自某大厂,职位什么的,然后下面就开始逐条规定,对于什么样的情况,我该怎么写代码。其实,这过程中是有些内容被忽视掉了的,那就是什么是好代码?在整理编码规范前,我觉得有必要去想想这个问题的。
ZooKeeper是一个开放源代码的分布式协调服务,由知名互联网公司雅虎创建,是Google Chubby的开源实现。ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。
3PC,是Three-Phase Commit的缩写,即三阶段提交,是2PC的改进版,其二阶段提交协议的“提交事务请求”过程一分为二,形成了由CanCommit,PreCommit,do Commit三个阶段组成的事务处理协议。
两阶段提交()Two-Phase Commit):是计算机网络尤其是在数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务处理过程中能够保持原子性和一致性而设计的一种算法。
BASE是Basiclly Available(基本可用),Soft state(软状态),Eventually consistent(最终一致性)三个短语的缩写。 BASE是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于CAP定理逐步演化而来的,其核心思想是即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。
CAP定理告诉我们:一个分布式系统不可能同时满足一致性(C:Consistency),可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个基本要求,最多只能同时满足其中的两项。
Kafka Template–2.2.0 api KafkaTemplate KafkaTemplate这个类包装了个生产者,来提供方便的发送数据到kafka的topic里面。
ThreadMXBean 常用方法: /** ThreadMXBean常用方法test */ ThreadMXBean threadMXBean= ManagementFactory.
write buff操作 前两天在观察kafka消费数据的时候,发现HBase偶尔会报一个org.apache.hadoop.hbase.RegionTooBusyException: org.apache.hadoop.hbase.RegionTooBusyException这种错误出来,从描述上看,是HBase写入太过频繁导致的。
之前有两个功能,都是查询历史数据的一个分页查询,系统刚上线的时候,没有太多的数据,就一直扔在mysql里面,后来里面数据上亿之后,就查不到了,而且数据还在以指数级增长方式上报,后来,这部分业务单独迁移到hbase集群去存放,之前页面的查询也改查hbase了。
不解释,看代码去吧,很简单。 private long findBatterHisDataCount(BatteryHisDto dto) throws Exception{ long totalSize=0; Table table=runner.
1.Error UNKNOWN_MEMBER_ID occurred while committing offsets for group * 昨天遇到kafka的消费端报错如下: 2017-06-21 10:55:32,032 [messageListenerContainer_batteryGroupAlarm-C-1] ERROR org.
江南柳,叶小未成阴。人为丝轻那忍折,莺怜枝嫩不胜吟。留取待春深。 十四五,闲抱琵琶寻。堂上簸钱堂下走,恁时相见已留心。何况到如今。 。。。。。
生产者: 消费者: ...
之前用过老的api,但是最近在写消费的时候,发现之前老的api很多方法都out了,又去官网看了下最新的0.10.x的api. 1,producer org.apache.
列值过滤器 SingleColumnValueFilter filter = new SingleColumnValueFilter( Bytes.
My first blog posts was in 2013-05-14,and now it is 2017-5-8,how time flys! In this about four year, I wrote 486 articles.
打印到屏幕 print 读取键盘输入 input: str = input('请输入:') print(str) raw_input 用法跟input相同,但是input函数能接收一个表达式作为输入,raw_input则不ok;另外,py3里面,已经没有这个函数了。
Model引入 ython 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。 模块让你能够有逻辑地组织你的 Python 代码段。
引入EF windows上安装插件:  程序包管理中执行: Install-Package EntityFramework Install-Package MySql.Data.Entity -Version 6.9.3 从NuGet中为DAL层加入EF和mysql的引用:  重新生成下解决方案。
public static class WebServiceInvoker { /// /// 动态调用WebService /// /// WebService地址 /// 方法名(...
搞了几年Java,现在转过头来再用C sharp写东西,感觉有种沧海桑田的感觉。呵呵。。。 //pay attention:在DAL中,使用MySqlDBFactory获取连接 #region 插入数据--单条,批量 using (var conn = new MySql.
对List进行切片 适用场景:对于经常取一定索引范围的数据,可以使用切片操作替代循环判断下标方法简化操作。 L = ['Adam', 'Lisa', 'Bart', 'Paul'] #从0开始取,取到索引为3的元素,但是索引为3的元素不取 print L[0:3] #[...
for for i in range(1,101): if i % 7== 0 : print i 索引迭代 使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name >>> L = ['Adam...
定义 def my_abs(x): if x >= 0: return x else: return -x 注意:如果没有return 语句,执行完成之后,返回return None; 返回多个值 import...
1,Python代码缩进规则: 具有相同缩进的代码视为代码块; 2,缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。
for循环 L = ['Adam', 'Lisa', 'Bart'] for name in L: print name while循环 N = 10 x = 0 while x < N: print x x = x + 1 退出...
set的结构特点:set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。 创建set s = set(['Adam','Lisa','Bart','Paul']) print s #set...
字典类型:Key——Value 创建dict d = { 'Adam': 95, 'Lisa': 85, 'Bart':59, 'Paul': 75 } print len(d) 访问dict 使用key作为索引的访问 d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } if 'Paul' in d: print d['Paul'] * 通过 key 访问 dict 的value,只要 key 存在,dict就返回对应的value。
创建List python是动态语言,所以,List中包含的元素并不要求都必须是同一种语言。 L = ['Adam', 95.5, 'Lisa', 85, 'Bart', 59] print L 访问List 使用正序访问List: L = [95.