存档

2013年10月 的存档

mapreduce程序shell脚本运行跑多天数据

2013年10月23日 tianhl 没有评论

vprun.sh sh vprun.sh 20130101 20130102 说明:参数为开始日期和结束日期,如果开始日期和结束日期是一样的话,那就是跑一天的数据 #!/bin/bash #Filename: vprun.sh ct=0 date=`date -d "${1} ${ct} days" +%Y%m%d` while [[ ${2} > ${date} ]] || [[ ${2} == ${date} ]] do hadoop jar /home/yda/tianhailong/vp-0.0.1-SNAPSHOT.jar com.youku.vp.userindex.day.calculators.TDVUserVideoJoin -libjars /home/yda/tianhailong/json-lib-2.3-jdk15.jar,/home/yda/tianhailong/ezmorph-1.0.6.jar,/home/yda/tianhailong/kfs-0.3.jar,/home/yda/tianhailong/redis-0.0.1.jar,/home/yda/tianhailong/jedis-2.0.0.jar,/w

分类: Hadoop 标签: ,

Jackson和json-lib效率比较

2013年10月17日 tianhl 没有评论

Jackson 和 json-lib 这两个json工具转换json的效率差的不是一点半点的,Jackson转换9万条json的字符串基本上在毫秒级完成,而同样的字符串解析json-lib则需要400多秒; 所以Jackson适合解析大量数据;json-lib并不是一点优点都没有,在web系统中传递的数据都是“小数据”,使用json-lib方便在字符串和json之间转换;

分类: Java 标签: ,

利用redis的Sorted Set实现分页

2013年10月14日 tianhl 没有评论

redis命令: ZADD key score member [[score member] [score member] ...] ZRANGE key start stop [WITHSCORES] 练习下redis ZADD ZRANGE命令: redis> ZADD myzset 1 "one" (integer) 1redis> ZADD myzset 2 "two" (integer) 1redis> ZADD myzset 3 "three" (integer) 1redis> ZRANGE myzset 0 -1 1) "one" 2) "two" 3) "three"redis> ZRANGE myzset 2 3 1) "three"redis> ZRANGE myzset -2 -1 1) "two" 2) "three"redis> 如果明白了 这两个命令的含义,实际上分页的原理就已经弄明白了。

分类: Java 标签: , ,

Flume日志系统

2013年10月12日 tianhl 没有评论

           Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。           Flume最早是Cloudera提供的日志收集系统,目前是Apache下的一个孵化项目,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力 Flume提供了从console(控制台)、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系统,支持TCP和UDP等2种模式),exec(命令执行)等数据

分类: Hadoop 标签:

Java Thread State 相关术语

2013年10月10日 tianhl 没有评论

线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。 一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身。 线程状态有: 1.死锁,Deadlock(重点关注) 2.执

分类: Java 标签:

日常开发的在线工具

2013年10月10日 tianhl 没有评论

BASE64加密解密: http://tool.chinaz.com/Tools/Base64.aspx unicode编码转换: http://tool.chinaz.com/Tools/Unicode.aspx js压缩: http://tool.chinaz.com/js.aspx 时间戳转换: http://tool.chinaz.com/Tools/unixtime.aspx

分类: Java 标签: , ,

“选择”是一种病

2013年10月9日 tianhl 1 条评论

发现自己什么都不懂,什么都想学,又什么都学不精,是不是一种病态? 这种面对无穷选择的无力感,我觉得是因为欲望,因为想学会一切的欲望。社会中学习和学校中学习是完全不一样的。没有人帮你选课程,也没有人帮你打分。同样也不要妄想拿到100分。有舍才有得! 《海上钢琴师》有一段经典台词: ”一部钢琴,从琴键开始,结束。你知道钢琴只有88个键。它们不是无限的。你才是无限的,在琴键上制作出的音乐是无限的。我喜欢这样,我活的惯。 你把我推到舷梯上然后扔给我一架有百万琴键的钢琴,百万千万的没有尽头的琴键,那是事实,max,它们没有尽头。那键盘是无限延伸的。然而如果琴键是无限的,那么在那架琴上就没有你能弹奏的音乐,你坐错

分类: 程序人生 标签:

数据库sharding(scale up to scale out)

2013年10月9日 tianhl 没有评论

sharding是将一个大数据库按照一定规则拆分成多个小数据库的一门技术. 当我们的应用数据量越来越多,访问量越来越大的时候,我们会作何选择?继续提升数据库服务器的性能还是采用一项技术让数据库平滑扩展?虽然伴随着服务器的更新换代,性能越来越好,更换更加豪华的服务器能暂时解决这个问题,但是无论是从花费和可控都无法让人满意。这时数据库sharding是一个更加可行的方案。 常用的sharding方案有以下几种, 1。按功能划分(垂直切分) 将不同功能相关的表放到不同的数据库中,譬如将用户管理相关表放到shard 1上,将blog相关表放到shard 2上。。。这样做的好处是非常直观,当需要用户列表时,我就到shard 1上获取。。。。这样也有一个问

分类: Java 标签:

hadoop Task process exit with nonzero status of 126

2013年10月8日 tianhl 没有评论

通过分析hadoop 1.0.1代码,发现map/reduce task在执行的时候,hadoop系统会先把要执行的java 命令已经一些环境变量写到一个本地的sh文件taskjvm.sh中,然后使用bash -c file的方式执行这个sh脚本,如果出错当然后抛出异常,进而导致看到 Caused by: java.io.IOException: Task process exit with nonzero status of 126. at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:258) 这样的错误 所以,这个exitcode实际就是bash执行时的推出代码,bash的exitcode是有特殊含义的,通过google可以知道126表明是permission的问题,具体为啥是这样的,不是很清楚了~~ 上面的那个文件在创建的是权限是700(rwx——), 而这个文件

分类: Hadoop 标签: