如何学习一门新的IT技术
本文适合IT技术小白,或者刚入IT行业的从业者。本文将以hadoop为例,介绍如何学习一门新的技术。
第一步、了解概念
百度/Google 搜索,了解基本概念,了解软件结构
第二步、查看官方文档
安装单机版(略)
安装集群版(略)
简单使用:
运行mapreduce
第三步、源码下载编译
下载软件源码,了解源码结构,进行编译、启动、测试、构建。
hadoop (主目录)
- hadoop-project (公共父POM)
(All plugins & dependencies versions are defined here.)
- hadoop-project-dist (Parent POM for modules that generate distributions.)
- hadoop-annotations (Generates the Hadoop doclet used to generated the Javadocs)
- hadoop-assemblies (Maven assemblies used by the different modules)
- hadoop-common-project (Hadoop Common 公共基础模块、方法、接口)
- hadoop-hdfs-project (Hadoop HDFS 核心存储)
- hadoop-mapreduce-project (Hadoop MapReduce)
- hadoop-tools (hadoop工具)
- hadoop-dist (Hadoop distribution assembler)
第四步、了解通信机制与核心流程
从软件启动入口出发,探索启动流程,了解通信机制;从核心业务操作接口或任务提交执行入口出发,了解业务与底层实现逻辑原理。
例如:hdfs文件上传
文件上传时序图:
demo入口:
OutputStream os = fs.create(new Path("/test.log"));
DistributedFileSystem.java
DFSClient的create()返回一个DFSOutputStream对象:
newStreamForCreate()中的业务逻辑:到namenode中创建文件元数据
第五步、了解生态体系与同类软件对比
回顾思考软件架构与设计思路,明确软件的优缺点和应用场景,与相似软件与对比,了解软件应用相关生态体系。
hadoop生态圈: