摘要: 我们在程序定位问题时,经常不知所错,但是在linux有很多强大的工具,只要我们合理利用,一定见奇效。主要会遇到以下问题:1 mem高2 cpu高3 io高4 网络延迟高vargrind:https://www.ibm.com/developerworks/cn/linux/l-cn-valgrind/perf:https://www.ibm.com/developerworks/cn/linux/l-cn-perf1/ 阅读全文
posted @ 2014-03-28 23:39 TheBug 阅读(1119) 评论(0) 推荐(1) 编辑
摘要: 今天为大家介绍几个奇葩的C/C++问题。1 大家看看下面的输出结果是什么呢? #include #include void main(int j) { printf("%d\n", j); (&main + (&exit - &main)*(j/1000))(j+1);}输出结果为:1 2...1000.大家想清楚为什么了吗?其实在j为1<=j<1000的时候&main + (&exit - &main)*(j/1000)=&main,在j=1000时候,(&main + (&exit - 阅读全文
posted @ 2014-03-20 22:53 TheBug 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 1 启动HBase shell2 HBase shell 命令3 我们将以“一个学生成绩表”的例子来详细介绍常用的 HBase 命令及其使用方法。这里 grad 对于表来说是一个列,course 对于表来说是一个列族,这个列族由三个列组成 china、math 和 english,当然我们可以根据我们的需要在 course 中建立更多的列族,如computer,physics 等相应的列添加入 course 列族。(备注:列族下面的列也是可以没有名字的。) 4 create命令建立表格scores,包含列族grad、course5 list 命令查看当前 HBase 中具有哪些表。6 desc 阅读全文
posted @ 2014-03-19 11:31 TheBug 阅读(1192) 评论(0) 推荐(0) 编辑
摘要: 1典型互联网搜索问题:BigTable发明的原因搜索使用场景1)爬虫持续不断地抓取新页面,这些页面每页一行地存储到HBase里。2)MapReduce计算作业运行在整张表上,生成索引,为网络搜索应用做准备。3)用户发起网络搜索请求。4)网络搜索应用查询建立好的索引,或者直接从HBase直接得到单个文档。5)搜索结果提交给用户。2捕获增量数据OpenTSDB(OpenTimeSeriesDatabase)用来收集服务器的各种监控参数。按照时间收集参数一般称之为时间序列数据:也就是说,按照时间顺序收集和记录数据。这个框架使用HBase作为核心平台来存储和检索所收集的参数。创建这个框架的目的是为了拥 阅读全文
posted @ 2014-03-18 20:59 TheBug 阅读(745) 评论(0) 推荐(0) 编辑
摘要: Binary Search Tree(二叉查找树、二叉排序树、二叉搜索树)指一棵空树或者具有下列性质的二叉树:1)若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;2)任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;3)任意节点的左、右子树也分别为二叉查找树。4)... 阅读全文
posted @ 2014-03-16 18:38 TheBug 阅读(1284) 评论(1) 推荐(1) 编辑
摘要: 程序性能优化,一段程序、一张思维导图、一个工具,为你的程序插上翅膀。 阅读全文
posted @ 2014-02-16 22:11 TheBug 阅读(1868) 评论(2) 推荐(0) 编辑
摘要: 面对成百上千的生产系统用户操作数据接入落地,你是否厌倦了每次机械编写打包解包的代码?对一次性接入多个数据的时候,还要对不同人联调,费时费力,你是否还会手忙脚乱,忙中不断出错?是否当数据出问题了,用的时候才发现,数据已经损失大半,产品/领导压力巨大,费一天劲才能定位问题,关键是下次还是不能实时发现,快速定位 阅读全文
posted @ 2014-01-17 17:22 TheBug 阅读(1545) 评论(0) 推荐(2) 编辑
摘要: 最近因为在忙我们数据仓库的开源工作,要是一个C++系统开源,工作量实在是大,说起来都是泪(累)。以及生活中的一些事,找房子什么的,学习东西的时间比较少,这个系列很长时间没有更新,争取年前搞完,废话少说,直接介绍知识点。 阅读全文
posted @ 2013-12-13 00:20 TheBug 阅读(2648) 评论(1) 推荐(4) 编辑
摘要: 信息的表示和处理1理解字节序(大端、小端)可以参考博客大小端介绍以及判断2位级运算一个有趣的应用使用异或实现两个元素之间的交换。voidinplace_swap(int*x,int*y){*y=*x^*y;*x=*x^*y;*y=*x^*y;}3逻辑运算符和位级运算符的一个重要区别如果第一个参数求值就能够确定表达式的结果,那么逻辑运算符就不会对第二个参数求值。4逻辑右移和算术右移的区别例如[xn-1...x0],逻辑右移k位的结果为[0..0,xn-1..xk],算术右移k位的结果为[xn-1,xn-1..xn-1..xk]。C语言中无符号的右移一定是逻辑的,有符号几乎所有的编译器/机器组合都 阅读全文
posted @ 2013-12-10 22:15 TheBug 阅读(1333) 评论(0) 推荐(3) 编辑
摘要: 1:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-outAnswer:程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。修改办法:修改2个文件。/etc/security/limits.confvi /etc/security/limits.conf加上:* soft nofile 102400* hard nofile 409600$cd /etc/pam.d/$sudo vi login添加 session required 阅读全文
posted @ 2013-12-03 11:44 TheBug 阅读(583) 评论(0) 推荐(0) 编辑