美文网首页大数据大数据玩转大数据
Hadoop技术内幕:深入解析Hadoop和HDFS 1.3准备

Hadoop技术内幕:深入解析Hadoop和HDFS 1.3准备

作者: 程序员1 | 来源:发表于2018-09-25 10:56 被阅读7次

    在 Hadoop 的官方网站(http://hadoop.apache.org/)中,可以找到 Hadoop 项目相关的信

    息,如图 1-14 所示

    图 1-14 Apache Hadoop 官方网站

    1.3.1 下载 Hadoop

    前面在介绍 Hadoop 生态系统的时候,已经了解到 Hadoop 发展初期的系统中包括

    Common(开始使用的名称是 Core)、HDFS 和 MapReduce 三部分,现在这些子系统都

    已 经 独 立, 成 为 Apache 的 子 项 目。 但 在 Hadoop 1.0 的 发 行 包 中,Common、HDFS 和

    MapReduce 还是打包在一起,我们只需要下载一个 hadoop-1.0.0.tar.gz 包即可。注意,

    Hadoop 官方也提供 Subversion(SVN)方式的代码下载,SVN 地址为 http://svn.apache.org/repos/asf/hadoop/common/tags/release-0.1.0/。

    熟悉 Subversion 的读者,也可以通过该地址下载 Hadoop1.0 版本代码,该 Tag 也包含了

    上述三部分的代码。

    Apache 提供了大量镜像网站,供大家下载它的软件和源码,上面提到的 hadoop-

    1.0.0.tar.gz 的 一 个 下 载 地 址 为 http://apache.etoak.com/hadoop/common/hadoop-1.0.0,

    如图 1-15 所示

    图 1-15 Apache Hadoop 1.0 的一个下载页

    该地址包含了 Hadoop 1.0 的多种发行方式,如 64 位系统上的 hadoop-1.0.0-1.adm64.rpm、不包含源代码的发行包 hadoop-1.0.0.bin.tar.gz 等。下载的 hadoop-1.0.0.tar.gz 是包括源代码的 Hadoop 发行包。

    1.3.2 创建 Eclipse 项目

    解压下载的 hadoop-1.0.0.tar.gz 包,假设解压后 Hadoop 的根目录是 E:hadoop-1.0.0,启动 Cygwin,进入项目的根目录,我们开始将代码导入 Eclipse。Hadoop 的 Ant 配置文件build.xml 中提供了 eclipse 任务,该任务可以为 Hadoop 代码生成 Eclipse 项目文件,免去创建 Eclipse 项目所需的大量配置工作。只需在 Cygwin 下简单地执行“ant eclipse”命令即可,如图 1-16 所示。

    图 1-16 创建 Eclipse 项目文件

    注意 该过程需要使用 UNIX 的在线编辑器 sed,所以一定要在 Cygwin 环境里执行上述命

    令,否则会出错。

    命令运行结束后,就可以在 Eclipse 中创建项目了。打开 Eclipse 的 File → New → JavaProject,创建一个新的 Java 项目,选择项目的位置为 Hadoop 的根目录,即 E:hadoop-1.0.0,然后单击“Finish”按钮,就完成了 Eclipse 项目的创建,如图 1-17 所示。

    图 1-17 创建 Eclipse 项目

    完成上述工作以后,Eclipse 提示一个错误 :“Unbound classpath variable: 'ANT_HOME/

    lib/ant.jar' in project 'hadoop-1.0.0'”。

    显然,我们需要设置系统的 ANT_HOME 变量,让 Eclipse 能够找到编译源码需要的

    Ant 库,选中项目,然后打开 Eclipse 的 Project → Properties → Java Build Path,在 Libraries页编辑(单击“Edit”按钮)出错的项:ANT_HOME/lib/ant.jar,创建变量 ANT_HOME(在接下来第一个对话框里单击“Varliable”,第二个对话框里单击“New”按钮),其值为 Ant的安装目录,如图 1-18 所示。

    由于本书只分析 Common 和 HDFS 两个模块,在 Project → Properties → Java Build Path

    的 Source 页只保留两个目录,分别是 core 和 hdfs,如图 1-19 所示。

    完成上述操作以后,创建 Eclipse 项目的任务就完成了。

    图 1-18 创建 ANT_HOME 变量

    图 1-19 保留 core 和 hdfs 两个源码目录

    1.3.3 Hadoop 源代码组织

    打开已经解压的 Hadoop 1.0 源代码,进入 src 目录,该目录包含了 Hadoop 中所有的代

    码,如图 1-20 所示。

    前面已经提到过,Hadoop 1.0 的发行包中,Common、HDFS 和 MapReduce 三个模块还

    是打包在一起的,它们的实现分别位于 core、hdfs 和 mapred 子目录下。源代码目录 src 下还有若干值得关注的子目录,具体如下。

    ❑tools :包含 Hadoop 的一些实用工具的实现,如存档文件 har、分布式拷贝工具 distcp、MapReduce 执行情况分析工具 rumen 等。

    ❑benchmarks :包含对 Hadoop 进行性能测试的两个工具 gridmix 和 gridmix2,通过这

    些工具,可以测试 Hadoop 集群的一些性能指标。

    ❑c++:需要提及的是 libhdfs,它通过 Java 的 C 语言库界面,实现了一套访问 HDFS 的 C 接口。

    ❑examples :为开发人员提供了一些使用 Hadoop 的例子,不过这些例子只涉MapReduce 的 API,本书中不会讨论这部分内容。

    ❑contrib:是 contribution 的缩写,包含大量 Hadoop 辅助模块的实现,如在亚马逊弹性 计算云上部署、运行 Hadoop 所需的脚本就在 contribec2 目录下。

    ❑test :包含项目的单元测试用例,在该目录中能找到 Common、HDFS 和 MapReduce ❑

    等模块的单元测试代码。

    图 1-20 Hadoop 源码组织

    1.4 小结

    大数据以及相关的概念、技术是业界和学界最近关注的热点内容,Hadoop 在其中扮演

    了十分重要的角色。本节首先对 Hadoop 进行了简单的介绍,展示了蓬勃发展的 Hadoop 生

    态系统和 Hadoop 的简单历史。并在此基础上,向读者介绍了阅读分析 Hadoop 所必需的开

    发环境的搭建过程,包括:安装与配置 JDK、安装与配置 Eclipse、安装与配置辅助工具的工

    作。最后,在上述环境中,从零开始建立了一个包含 Hadoop Common 和 HDFS 的源码环境,

    为进一步学习 Hadoop 源代码做好准备。

    这是给大家做的一个《Hadoop技术内幕》的分享,这本书是由我们的蔡斌和陈湘萍著作,大家想学Hadoop的可以在网上找这本书。

    后续还会给大家上,敬请期待。

    Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。 Hadoop也是后面其他技术的基础,学好了Hadoop才能更好地学好hive,hbase,spark,storm等。

    【1】大家想了解Hadoop知识可以,关注我下方评论转发后,私信“资料”。

    【2】部分资料有时间限制,抓紧时间吧!

    感谢大家的支持!

    相关文章

      网友评论

        本文标题:Hadoop技术内幕:深入解析Hadoop和HDFS 1.3准备

        本文链接:https://www.haomeiwen.com/subject/oibkoftx.html