简单,可复制

点点滴滴,尽在文中

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年10月5日

摘要: ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。值得注意的是,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利用其提供的一系列API接口(或者称为原语集),摸索出来的典型使用方法。因此,也非常欢迎读者分享你在ZK使用上的奇技淫巧。ZooKeeper典型应用场景一览数据发布与订阅(配置中心)发布与订阅模型,即所谓的 阅读全文
posted @ 2013-10-05 17:27 ggjucheng 阅读(6709) 评论(0) 推荐(3) 编辑

摘要: 本文以ZooKeeper3.4.3版本的官方指南为基础:http://zookeeper.apache.org/doc/r3.4.3/zookeeperAdmin.html,补充一些作者运维实践中的要点,围绕ZK的部署和运维两个方面讲一些管理员需要知道的东西。本文并非一个ZK搭建的快速入门,关于这方面,可以查看《ZooKeeper快速搭建》。1.部署本章节主要讲述如何部署ZooKeeper,包括以下三部分的内容:系统环境集群模式的配置单机模式的配置系统环境和集群模式配置这两节内容大体讲述了如何部署一个能够用于生产环境的ZK集群。如果仅仅是想在单机上将ZK运行起来,进行一些开发与测试,那么第三部 阅读全文
posted @ 2013-10-05 17:08 ggjucheng 阅读(33437) 评论(1) 推荐(1) 编辑

摘要: hadoop作业提交时可以指定相应的队列,例如:-Dmapred.job.queue.name=queue2通过对mapred-queue-acls.xml和mapred-site.xml配置可以对不同的队列实现不同用户的提交权限.先编辑mapred-site.xml,修改配置如下(增加四个队列): mapred.queue.names default,queue1,queue2,queue3,queue4 修改生效后通过jobtrack界面可以看到配置的队列信息。要对队列进行控制, 还需要编辑mapred-queue-acls.xml文件 mapred.queue.queue1.... 阅读全文
posted @ 2013-10-05 16:55 ggjucheng 阅读(4411) 评论(0) 推荐(0) 编辑

摘要: hadoop是一个分布式存储和分布式计算的框架。在日常使用hadoop时,我们会发现hadoop不能完全满足我们的需要,我们可能需要修改hadoop的源代码并重新编译、打包。下面将详细描述如何从svn上导入并对hadoop进行eclipse下编译。因项目使用的hadoop版本是0.20.2,所以我们基于hadoop-0.20.2来进行二次开发。(1)首先从svn上签出源代码,svn地址:http://svn.apache.org/repos/asf/hadoop/common/tags/release-0.20.2/ (2)在下载的过程中,准备开发和编译环境。windows下至少需要安装如下. 阅读全文
posted @ 2013-10-05 16:44 ggjucheng 阅读(5541) 评论(0) 推荐(0) 编辑

摘要: 1 Map side tuning参数1.1 MapTask运行内部原理当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。这中间的过程比较复杂,并且利用到了内存buffer来进行已经产生的部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能。如上图所示,每一个map都会对应存在一个内存buffer(MapOutputBuffer,即上图的buffer in memory),map会将已经产生的部分结果先写入到该buffer中,这个buffer默认是100MB大小,但是这个大小是可以根据job提交时的参数设定来调整的,该参数即为:io. 阅读全文
posted @ 2013-10-05 16:25 ggjucheng 阅读(2343) 评论(0) 推荐(0) 编辑

摘要: 一个很典型的泛型(generic)代码。T是类型变量,可以是任何引用类型:public class Pair{ private T first=null; private T second=null; public Pair(T fir,T sec){ this.first=fir; this.second=sec; } public T getFirst(){ return this.first; } pu... 阅读全文
posted @ 2013-10-05 16:13 ggjucheng 阅读(10236) 评论(2) 推荐(1) 编辑

摘要: Ant真是太方便了,以前都没注意到它。功能很强大,能创建数据库,配置服务器,部署发布应用……只需要写好build.xml文件,剩下的就交给ant来“安装”你的WEB应用了。Appfuse的第一个ant命令是ant new,其任务是建立一个新命名的project,少不了会复制很多文件。build.xml中也有很多copy操作,为了搞清楚ant new到底干了些什么事,还是先把copy操作了解一下。看了会ant的DOCS,网上也找了些文章,发现copy这部分都是一带而过,讲得很浅,于是我就只有自己实验下,发现还有点收获。 ant版本为1.6.5。1. 拷贝单个文件到指定目录下。 将${basedi 阅读全文
posted @ 2013-10-05 15:56 ggjucheng 阅读(2842) 评论(0) 推荐(0) 编辑

摘要: 上篇说了怎么用cxf发布restful webservice,由于浏览器只能对该service发送http的GET请求,所以如果想对服务器上的数据,还需要实现客户端。客户端的实现方式有无数种。。。可以是.net,c++,还有很多java框架甚至socket。这里用cxf给的一个WebClient类来实现:package com.client; import org.apache.cxf.jaxrs.client.WebClient; import com.DAO.Room; public class Client { static WebClient client;... 阅读全文
posted @ 2013-10-05 15:52 ggjucheng 阅读(3949) 评论(0) 推荐(0) 编辑

摘要: 研究了两天CXF对restful的支持。 现在,想实现一个以http://localhost:9999/roomservice 为入口,http://localhost:9999/roomservice/room为房间列表,http://localhost:9999/roomservice/room/001/ 为001号房间的信息,http://localhost:9999/roomservice/room/001/person 为在001号房间主的人的列表实现用HTTP请求对以上资源的CRUD。首先建立room,person的POJO,这里只有一点需要注意:package com.DAO; 阅读全文
posted @ 2013-10-05 15:37 ggjucheng 阅读(24641) 评论(7) 推荐(4) 编辑

摘要: java.util.CalendarCalendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。简单示例// 通过格式化输出日期java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");Cal 阅读全文
posted @ 2013-10-05 15:31 ggjucheng 阅读(45769) 评论(2) 推荐(0) 编辑

摘要: java.lang.String的split()方法, JDK 1.4 or laterpublicString[]split(Stringregex,int limit)示例代码public class StringSplit { public static void main(String[] args) { String sourceStr = "1,2,3,4,5"; String[] sourceStrArray = sourceStr.split(","); for (int i = 0; i < sourceStrArray.len. 阅读全文
posted @ 2013-10-05 14:59 ggjucheng 阅读(208923) 评论(1) 推荐(5) 编辑

摘要: 这篇文章写在我研究J2SE、J2EE近三年后。前3年我研究了J2SE的Swing、Applet、Net、RMI、Collections、 IO、JNI……研究了J2EE的JDBC、Sevlet、JSP、JNDI…..不久我发现这些好像太浮浅了:首先,我发现自己知道的仅仅是java提 供的大量的API,根本不能很好地使用它; 其次,我根本就没有学到任何有助于写程序的知识,此时我也只不过能写个几页的小程序。出于这个幼稚的想法我研究了JDK中Collections、 Logger、IO…..的源代码,发现这个世界真的很神奇,竟然有如此的高手――利用java语言最最基本的语法,创造了这些优秀的 Fra 阅读全文
posted @ 2013-10-05 14:20 ggjucheng 阅读(1159) 评论(0) 推荐(0) 编辑

摘要: Debug视图认识debug视图,红色部分框为线程堆栈视图,黄色部分框为表达式、断点、变量视图,蓝色部分为代码视图。线程堆栈视图分别介绍一下这几个按钮的含义:1.表示当前实现继续运行直到下一个断点,快捷键为F8。2.表示打断整个进程3.表示进入当前方法,快捷键为F5。4.表示运行下一行代码,快捷键为F6。5.表示退出当前方法,返回到调用层,快捷键为F7。6.表示当前线程的堆栈,从中可以看出在运行哪些代码,并且整个调用过程,以及代码行号变量视图1.为变量名视图,显示当前代码行中所有可以访问的实例变量和局部变量2.显示所有的变量值3.可以通过该窗口来改变变量值断点视图1.显示所有断点2. 将当前窗 阅读全文
posted @ 2013-10-05 14:10 ggjucheng 阅读(5108) 评论(0) 推荐(0) 编辑

摘要: 打开资源文件所在目录 EasyExplorer 下载:http://sourceforge.net/projects/easystruts/ 直接拷贝到%ECLIPSE_HOME%\plugins 或者在%ECLIPSE_HOME%\dropins建立如下目录并拷贝文件 OpenExplorer 以 阅读全文
posted @ 2013-10-05 14:01 ggjucheng 阅读(1219) 评论(0) 推荐(0) 编辑

摘要: The HPROF ProfilerThe Heap and CPU Profiling Agent (HPROF)是JAVA2 SDK自带的一个简单的profiler代理,它通过与Java Virtual Machine Profiler Interface (JVMPI) 交互,将profiling信息通过本地文件或socket输出ASCII或二进制格式的流。HPROF可以监控CPU使用率,堆分配统计。除此之外,还可以报告JVM所有监视器和线程的完整的堆的dump状态。HPROF的JVM参数的语法如下:-Xrunhprof[:help]|[:param=value,param2=value 阅读全文
posted @ 2013-10-05 13:29 ggjucheng 阅读(6592) 评论(0) 推荐(0) 编辑

摘要: 为了分析java应用的内存泄漏,使用thread dump往往解决不了问题。使用jstat【eg:jstat-gcutil pid 1000 5】工具查看运行的java应用的heap size,perm size ,survivor ratio等,当时你无法知道是什么对象把堆填满了。什么是 Java heap dump 首先需要搞懂什么是java heap,java heap是分配给实例类和数组对象运行数据区,所有java线程在运行期间共享heap中的数据。Java heap dump相当于java应用在运行的时候在某个时间点上打了个快照(snapshot)。触发 Java heap dump 阅读全文
posted @ 2013-10-05 12:39 ggjucheng 阅读(18976) 评论(1) 推荐(2) 编辑

摘要: mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的东西我们怎能放过?BINARY[(N)]CHAR[(N)]DATEDATETIMEDECIMALSIGNED [INTEGER]TIMEUNSIGNED [INTEGER]例子:--使用CAST将varchar转换成int类型排序select server_id from cardserver where game_id = 1 order by CAST(server_id as SIGNED) desc limit 10;--使用CONVERT将varchar转换成int类型排序select server_id fro 阅读全文
posted @ 2013-10-05 12:33 ggjucheng 阅读(10740) 评论(0) 推荐(0) 编辑

摘要: MySQL 获得当前日期时间 函数获得当前日期+时间(date + time)函数:now()mysql> select now();+---------------------+| now() |+---------------------+| 2008-08-08 22:20:46 |+---------------------+获得当前日期+时间(date + time)函数:sysdate()sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。看下面的例子就明白了:mysql> 阅读全文
posted @ 2013-10-05 12:19 ggjucheng 阅读(799135) 评论(15) 推荐(44) 编辑

摘要: 一、进入BCDEdit.exe 正常启动Windows 7 系统,点击“开始” -> “所有程序” -> “附件”,右击“命令提示符” -> “以管理员身份运行”(需要将操作当前用户的权限提升至管理员权限),打开“命令提示符”窗口,即转到了 “C:\Windows\System32”目录下。然后在命令提示符窗口的C:\Windows\System32>下输入bcdedit,即可 查看bcdedit的结构。本文以Windows 7安装在C盘为例,故可以看到Windows 7的安装路径在C,而旧OS的管理权限在C盘的ntldr文件下。如下图: 二、修改XP系统启动项名称 在 阅读全文
posted @ 2013-10-05 11:47 ggjucheng 阅读(37528) 评论(0) 推荐(0) 编辑

摘要: 保护视力,将WINDOWS背景色变成淡绿色绿色和蓝色对眼睛最好,建议大家在长时间用电脑后,经常看看蓝天、绿地,就能在一定程度上缓解视疲劳。同样的道理,如果我们把电脑屏幕和网页的底色变为淡淡的苹果绿,也可在一定程度上有效地缓眼睛疲劳等症状了。 下面就教你如何把网页底色变成淡淡的苹果绿: 第一步, 在桌面上点击鼠标右键,依次点击“属性”、“外观”、“高级”按钮。 第二步, 在打开的“高级”对话框中,在“项目”下拉列表里选择“窗口”。 第三步, 再打开右边对应的“颜色”列表,选择其中的“其他”一项,在打开的对话框里,把“色调”的参数设置为85,把“饱和度”参数设置为90,把“亮度”参数设置为... 阅读全文
posted @ 2013-10-05 11:42 ggjucheng 阅读(975) 评论(0) 推荐(0) 编辑