java二次开发流程,源码修改流程(Hadoop)

1、困难

        在实际业务场景中,目前现有的框架在很大情况下可能不能满足现有的需求,用代码进行二次开发就是最好的选择。在一开始进行的时候,根本无从下手是一方面,因为源码的量特别大,如果是在官方的源码中,基本上是没有注解的,有的一般也是对方法的总体概述以及参数的介绍,往往困难是源码中的某一步我们理解不了,导致整个流程无法理解是一方面。另一方面是如何阅读源码,用什么来阅读源码。对于java开发者来说,我们在ide集成开发工具中从maven仓库中引入的依赖就是一个个jar包,打开jar包我们可以直接看的到源码,但是却不能修改。当然这里有一个办法就是从官网下载源码包然后在源码的右上角可以选择本地jar包这样便可以修改了,但是实际上修改完之后还是使用的是maven引入的jar包依赖,如果想实现自定义jar包,便只能自己引入第三方jar包,而不是从maven仓库中下载。

2、解决方案

        在Hadoop大家族中,我们有非常多的组件,而Hadoop官方的安装包中只是集成了其中的一小部分。

1、了解安装包的目录

bin:使用hdfs和mapreduce时,常用的Hadoop命令目录。

sbin:管理员常用命令目录,主要用于启动和停止集群。

etc:存放Hadoop的配置文件的目录

include:C语言写的一些工具类

lib:存放Hadoop的本地库文件(对数据进行压缩解压功能)

libexec:存放hadoop配置环境的一些文件

share:本次的主角,存放Hadoop的依赖jar包,在集群运行时所有的一切都来源于这里。

所以要想对Hadoop进行二次开发,我们就必须要更换share目录中的jar包,这里可以根据实际需求替换掉相应的jar包,比如Mapreduce中的各种jar包。

2、更换jar包

        在博主初期修改jar包时,首先碰到的难题就是jar包是一种压缩格式,我们可以轻松的把他解压,但是在打包时会遇到各种压缩软件将它打包成zip的格式,查阅了各种资料最多的说就是说可以先打成zip形式,然后改后缀名的格式,当然这种是完全行不通的。只有一种办法便是不要解压缩,直接在jar包上进行添加删除操作。这里推荐两种软件。

  •         mac版本  betterzip
  •         Windows版本 winRAR

        打开jar包之后我们可以发现,里面都是经过编译器处理之后的class文件,这里便碰到了第二个困难,就是如何打开class文件。当然这里有很多反编译工具,比如说jdGui,当然我们最常用的还是ide,再者比如说我碰到了一个类,在经过编译之后形成了4个class文件,所以如果在相当不熟悉源码文件的时候,不太建议用class文件进行反编译。 

         最推荐的方法还是先经过ide进行源码阅读,然后找到目标的包或者类,将其复制到ide中进行开发,当然其中肯定会报错,因为少了各种各样的包,这里可以经过maven引入相关的依赖。

        当修改完目标类或者包之后,将其进行编译,然后找到ide对应的目录将class文件取出,经由上述两款软件直接进行替换,而不是解压再压缩,最后更换至Hadoop目录下的share文件夹中便成功达到二次开发目的。

3、总结

        当然不仅仅是Hadoop,包括jdk本身都可以这样进行二次开发。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
deform是一个基于Python的Web表单框架,可以进行二次开发以满足特定需求。deform二次开发的过程如下。 首先,需要了解deform的基本架构和功能,熟悉它的使用方法和原理。理解deform的核心概念,如Schema和Widget,了解它们在表单创建和验证过程中的作用。 其次,根据具体需求,选择合适的开发工具和环境。可以使用Python的虚拟环境来隔离开发环境,使用pip管理依赖包。可以使用文本编辑器或者集成开发环境(如PyCharm)来开发和调试代码。 在开始开发之前,应该进行需求分析和设计,明确要实现的功能和界面。可以参考deform的文档和示例代码,了解如何创建和配置表单,如何处理用户输入数据等。 接下来,可以根据需求对deform进行二次开发。可以扩展已有的Widget,添加自定义的验证器或者渲染器,以满足特定的业务逻辑。可以重写已有的Widget的某些方法,实现特定的功能要求。 在开发过程中,需要进行测试和调试。可以使用单元测试框架(如pytest)编写测试代码,对开发的功能进行验证。可以通过日志输出或调试工具(如pdb)定位和解决问题。 最后,完成开发后,需要进行部署和运行环境的搭建。可以使用Nginx或Apache等Web服务器来部署应用程序,并配置相应的反向代理。可以使用WSGI服务器(如uWSGI)或应用服务器(如Gunicorn)来运行Python应用。 总结来说,deform二次开发过程是先理解deform的基本原理和使用方法,然后根据需求进行设计和开发,最后进行测试、部署和运行。通过合理的开发流程和工具,能够高效完成deform二次开发任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值