- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java 程序员你真的懂java吗?
一起来看下hadoop中的如何去使用java的
大数据是目前IT技术中最火热的话题,也是未来的行业方向,越来越多的人参与到大数据的学习行列中。从最基础的伪分布式环境搭建,再到分布式环境搭建,再进入代码的编写工作。这时候码农和大牛的分界点已经出现了,所谓的码农就是你让我做什么我就做什么,我只负责实现,不管原理,也不想知道原理。大牛就开始不听的问自己why?why?why?于是乎,很自然的去看源码了。然而像hadoop这样的源码N多人参与了修改和完善,看起来非常的吃力。然后不管如何大牛就是大牛,再硬的骨头也要啃。目前做大数据的80%都是从WEB开发转变过来的,什么spring mvc框架、SSH框架非常熟悉,其实不管你做了多少年的WEB开发,你很少接触到hadoop中java代码编写的风格,有些人根本就看不懂什么意思。下面我来介绍下hadoop源码怎么看。
hadoop体现的是分布式框架,因此所有的通信都基于RPC来操作,关于RPC的操作后续再介绍。hadoop源码怎么看系列分多个阶段介绍,下面重点介绍下JAVA基础知识。
一、多线程编程
在hadoop源码中,我们能看到大量的类似这样的代码
return executor.submit(new CallableString() {
@Override
public String call() throws Exception {
//方法类
}
下面简单介绍下java的多线程编程
启动一个线程可以使用下列几种方式
1、创建一个Runnable,来调度, 返回结果为空。
ExecutorService executor = Executors.newFixedThreadPool(5);
executor.submit(new Runnable() {
@Override
public void run() {
System.out.println(runnable1 running.);
}
});
这种方式启动一个线程后,在后台运行,不用等到结果,因为也不会返回结果
2、创建一个Callable,来调度,有返回结果
FutureString future1 = executor.submit(new CallableString() {
@Override
public String call() throws Exception {
// TODO Auto-generated method stub
//具体执行一些内部操作
return 返回结果了!;
}
});
System.out.println(task1: + future1.get());
这种启动方式一直等到call的方法体执行完毕后,并返回结果了才继续执行下面的代码
二、内部类实现
hadoop中同样能看到大量这样形式的代码
status = ugi.doAs(new PrivilegedExceptionActionJobStatus() {
public JobStatus run() throws IOException, InterruptedException,
ClassNotFoundException {
return submitter.submitJobInternal(Job.this, cluster);
}
});
这是一个典型的内部类实现,PrivilegedExceptionAction是一个接口,里面有一个run方法需要实现,程序调用的时候,会执行里面的submitter.submitJobInternal方法体
为了方便大家理解,我写了一个模拟程序来演示
先定义一个接口类
public interface TransactionAction {
void execute() throws Exception;
}
再定义一些模板方法,参数对象是一个接口来处理相关业务
public class TemplateAction {
public void transactionProcess(TransactionAction action, ActionEvent event){
System.out.println(lock);
try {
action.execute();
} catch (Exception e) {
// TODO Auto-generat
您可能关注的文档
- 4S店网上用户使用手册.pdf
- 5G NR 三大关键技术.docx
- 5G关键技术分析与展望.docx
- 5G系统概念验证白皮书V1.0(中文版).docx
- 5分钟教你做个有效的招生活动方案!.docx
- 6S管理推行手册.pptx
- 6西格玛培训案例.ppt
- BIM技术在工程装饰阶段方案策划中的应用研究.ppt
- Composer基础入门及视图创建--前桥教育.ppt
- copy-2012.2.19毒理学-第一部分-毒理1.ppt
- 中考语文复习专题二整本书阅读课件.ppt
- 中考语文复习积累与运用课件.ppt
- 2025年初中学业水平考试模拟试题(二)课件.ppt
- 四川省2015届理科综合试题48套第12套.pdf
- 【课件】战争与和平—美术作品反映战争+课件-2024-2025学年高中美术湘美版(2019)美术鉴赏.pptx
- 【课件】青春牢筑国家安全防线 课件 2024-2025学年高中树立总体国家安全观主题班会.pptx
- 【课件】原始人的创造+课件高中美术湘美版(2019)美术鉴赏.pptx
- 上海证券-美容护理行业周报:流量加快去中心化,强运营头部品牌影响较小 -2024-.pdf
- T_CSEIA 1005—2023_能源工业互联网平台数据治理要求.pdf
- T_CDSA 504.16-2023_急流救援技术培训与考核要求.pdf
最近下载
- GJB 841 FRACAS 故障报告、分析和纠正措施系统.docx
- 1.4高压断路器的检修.ppt VIP
- 2023-2024学年湖北省武汉市华中师范大学第一附属中学高三(上)期中检测物理试卷+答案解析(附后).pdf VIP
- 箱变安装分项及检验批验收报审和评定表.doc
- 生态规划复习试题.doc
- 2024年中考外研版英语一轮复习课件八年级下册 Modules4~6.pptx VIP
- 山东省济南2024年七年级下学期数学期中试卷2套(附答案).docx VIP
- 医院涉及未成年人被侵害案件的强制报告机制.docx VIP
- 2023年平顶山职业技术学院单招职业适应性测试题库及答案解析word版.pdf VIP
- 山东省济南2024年七年级下学期数学期中考试试卷(附答案) .docx VIP
文档评论(0)