• Hadoop2源码分析-准备篇


    1.概述

      我们已经能够搭建一个高可用的Hadoop平台了,也熟悉并掌握了一个项目在Hadoop平台下的开发流程,基于Hadoop的一些套件我们也能够使用,并且能利用这些套件进行一些任务的开发。在Hadoop的应用级别上,我们接着往后面去研究学习,那就是Hadoop的源码了,作为Hadoop开发人员,我们得去学习和研究Hadoop得实现原理,底层框架的设计,编码的实现过程等等,下面就开始我们今天的Hadoop源码分析之旅。

    2.准备

      在分析源码之前,我们需要准备好分析源码的环境,以及如何去分析(分析的方法)。

    2.1基础环境

      本系列分析的源码是基于Hadoop-2.6.0-src,源码下载地址如下:

    http://apache.osuosl.org/hadoop/common/hadoop-2.6.0/hadoop-2.6.0-src.tar.gz

      JDK使用的是Oracle的JDK1.7,下载地址如下:

    • Windows版下载地址:
    http://download.oracle.com/otn-pub/java/jdk/7u75-b13/jdk-7u75-windows-x64.exe
    • Linux版下载地址:
    http://download.oracle.com/otn-pub/java/jdk/7u75-b13/jdk-7u75-linux-x64.tar.gz
    • Mac OS X版下载地址:

    http://download.oracle.com/otn-pub/java/jdk/7u75-b13/jdk-7u75-macosx-x64.dmg

    2.2操作系统

      目前主流的3种操作系统,Windows,Linux,Mac OS X;下面依次来说明不同环境下的配置。

    • Windows

      直接安装下的 jdk-7u75-windows-x64.exe 文件,一路默认安装即可,安装完成后在 cmd 下输入 java -verison 若显示对应的版本好,即表示安装成功。若出现 “java 不是内部或外部命令”的错误提示,可在 Windows 的环境变量下设置JAVA_HOME,和PATH以及CLASSPATH等环境变量即可。如下图所示:

      注:例外还需要Maven环境,和Linux壳,下载IDE(下面Mac OS X环境中提供的IDE,Windows也可以使用),这里不做赘述。

    • Linux

      Linux采用的是CentOS 6,由于Linux自带JDK,本文使用的Oracle的JDK,故我们先卸载系统自带的JDK,安装我们下载好的 jdk-7u75-linux-x64.tar.gz,具体步骤命令如下:

    # 卸载自带JDK
    rpm -qa | grep java
    yum -y remove java*

      在使用rpm -qa | grep java命令,查找JDK信息,若没有则表示卸载完成。接着是安装下载好的JDK,首先是解压并创建目录,命令如下所示:

    tar -zxvf  jdk-7u75-linux-x64.tar.gz
    mkdir -p /usr/java && mv  jdk-7u75-linux-x64 /usr/java/jdk1.7

      然后配置环境变量,内容如下:

    export JAVA_HOME=/usr/java/jdk1.7
    export PATH=$PATH:$JAVA_HOME/bin

      然后输入命令让环境变量立即生效,命令如下:

    . /etc/profile

      接着,我们输入:java -version 验证即可。

      注:Linux环境下同样需要配置Maven环境,IDE可以使用下面Mac OS X的IDE。

    • Mac OS X

      Mac系统下面直接安装下载好的dmg文件,安装文件路径如图所示:

      验证截图:

      安装Maven环境:

      下载地址如下所示:

      maven下载

      安装命令如下所示:

    $ cd /usr/local 
    $ sudo mv /Users/dengjie/Downloads/apache-maven-3.2.3-bin.tar.gz ./ 
    $ sudo tar -xvf apache-maven-3.2.3-bin.tar.gz

       配置:

    $ vi /etc/profile 
    #Add below lines
    in the profile export M2_HOME=/usr/local/apache-maven-3.2.3 export PATH=$PATH:$M2_HOME/bin
    #save and quit $ .
    /etc/profile

      验证截图:

      IDE

      IDE使用Redhat公司推出的JBoss Studio(Eclipse的升级版),下载地址如下:

      JBoss Developer Studio 8.0.0.GA

    3.源码准备

     Hadoop2的源码分析,整个流程都是基于Mac OS X系统下来完成的。Linux系统基本配置可以参考Mac OS X配置,Windows系统IDE可以使用JBoss Studio(需要Windows系统下安装JDK)。

     首先我们来预览一下Hadoop-2.6.0-src的源码目录结构,如下图所示:

    3.1项目构建

      分析hadoop2源码的方式有2种,一种方式是使用maven结构来分析阅读Hadoop的源码,另一种方式使用一般的Java Project来分析阅读。首先先赘述下一般的Java Project创建Hadoop的源码分析工程。如下图所示:

    • Java Project

      在完成Hadoop的源码导入后,我们还需要添加一些依赖 jar 包,在直接在Hadoop-2.6.0的share/hadoop目录下将依赖包取出添加到IDE环境变量。如下图所示:

      另外,若需要的依赖 jar 不存在,可在Hadoop共享的Maven仓库去下载对应的依赖 jar,下载地址:

    http://maven.outofmemory.cn/org.apache.hadoop/
    • Maven结构

      若使用Maven结构,可直接导入Hadoop的源码文件,Hadoop-2.6.0-src工程就算Maven结构的。导入过程如下图所示:

      

      在点击 Finish 按钮后,会根据 pom.xml 文件中的依赖下载对应的 jar 到本地Maven仓库,首次导入需要下载的依赖 jar 包较多,时间会有点长,请耐心等待下载完成。

    4.总结

      整个Hadoop2源码的项目导入完成后,将近有100子项目,由于项目文件较多,在分析阅读的时候需要认真谨慎。在导入Hadoop2源码到IDE中的时候,项目结构我给出了2种方式:一般的Java Project结构和Maven结构,当然这个是可以根据自己实际情况来考虑,若是对Maven结构不熟悉的同学,可以直接使用一般的Java Project工程结构来分析Hadoop2的源码,这个是不影响学习源码分析的;若是对Maven结构敢兴趣,也可自行使用Maven结构来学习源码分析。

    5.结束语

      这篇Hadoop2源码分析的准备篇就和大家分享到这里,若是在大家在学习研究的过程中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!

  • 相关阅读:
    [Java]去除html中的标签或者元素属性(正则表达式)
    一份非常完整的 MySQL 规范
    前端统计图 echarts 实现简单柱状图
    获取一个表中的字段总数(mysql) Navicat如何导出Excel格式表结构 获取某个库中的一个表中的所有字段和数据类型
    【学习笔记】splay入门(更新中)
    【题解】P1972 [SDOI2009]HH的项链
    【题解】P2024 [NOI2001]食物链
    【题解】P1291 百事世界杯之旅
    【题解】P2602 数字计数
    【题解】P2831 愤怒的小鸟
  • 原文地址:https://www.cnblogs.com/smartloli/p/4418821.html
Copyright © 2020-2023  润新知