毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 报告 >> 正文

hadoop安装配置文件详解

更新时间:2014-11-20:  来源:毕业论文

Hadoop源码阅读环境搭建


一、说明

作为一个学习hadoop的同学,必须在本机上搭建hadoop源码阅读环境,这样,在方便阅读源码的同时也方便进行调试和源码修改。好了,下面开始搭建环境。

1.环境说明:hadoop 版本:1.2.1、 IDE:eclipse、操作系统:centos 

2.网上有人是通过eclipse的新建项目指定目录的方式将hadoop目录转换成Eclipse工程同时导入eclipse,具体做法如下:

File——>new——>Java Project——>勾掉Use default location选项——>在location输入框中输入hadoop的目录——>Finish的方式导入hadoop目录来生成hadoop。

这种错误的做法不但破坏了hadoop工程的项目结构,同时也会报出很多错误

二、环境搭建

1.hadoop原始目录结构参考:


2.我们下载的hadoop并不是一个eclipse工程,需要将其转换为eclipse工程才能导入eclipse。版本官方提供的hadoop是用ant工具作为项目管理工具的,因此,我们需要用ant将其转换为eclipse工程。具体过程如下:

(1).安装必须工具:

a.安装ant

yum install ant

b.安装 libtool 

yum install libtool 

c.安装ant-apache-regexp

yum install ant-apache-regexp

注:libtool 和ant-apache-regexp工具必须安装,否则后面在用ant做转换时会报错。

(2).进入到Hadoop目录下:

cd hadoop-1.2.1

(3).通过ant将hadoop-1.2.1进行转换为eclipse工程:

ant clean

ant eclipse -verbose(加入verbose选项可以查看详细输出信息,有利于观察进度和查错)

注:该过程常见错误及解决方法参考第三部分“错误说明及解决”。

(4).如果一切顺利的话,第一次操作,大概需要10分钟左右(主要时间浪费在下载jar包上了)就可以完工。

如果成功的话,就可以通过import——>Existing Projects into Workspace 将hadoop-1.2.1导入eclipse工程了。


PS:除上面这个方法外,还有一个比较笨的方法,就是新建一个java工程,然后把各个包手动地拷贝进去,这样不必全部都拷进去,可以拷一些自己关心的包,比如core、hdfs、mapred。这三个包可以基本满足项目的运行和对于hdfs和mpareduce的研究了。

注:使用该方法后,某些类可能会出现如下异常:

Access restriction: The type IPAddressUtil is not accessible due to restriction on required library /opt/myeclipse-2013/binary/com.sun.java.jdk.linux.x86_64_1.6.0.u43/jre/lib/rt.jar
原因:Eclipse 默认把这些受访问限制的API设成了ERROR。
解决方法:
  • Windows -> Preferences -> Java -> Compiler -> Errors/Warnings ->Deprecated and trstricted API -> Forbidden reference (access rules): -> change to warning 
  • 或Windows -> Preferences -> Java -> Installed JREs -> 选择用的JDK -> Edit -> Add External JARs

三、错误说明及解决

1.possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.See the Autoconf documentation.autoreconf:/usr/bin/autoconf failed with exit status: 1

如下图所示:


如果出现此错误说明你的机器中没有安装libtool工具,只需安装即可:yum install libtool

2.Could not create type regexpmapper due to No supported regular expression matcher found: java.lang.ClassNotFoundException: org.apache.tools.ant.util.regexp.Jdk14RegexpMatcher

如下图所示:

出现如上所示错误时你的机器缺少ant-apache-regexp工具,只需安装即可:

yum install ant-apache-regexp

四、Hadoop 源代码组织结构

直接解压 Hadoop 压缩包后,可看到下图所示的目录结构,其中,比较重要的目录有 src、conf、lib、bin 等。下面分别介绍这几个目录的作用:
src :Hadoop 源代码所在的目录。最核心的代码所在子目录分别是 core、hdfs 和 mapred,它们分别实现了 Hadoop 最重要的三个模块,即基础公共库、HDFS 实现和MapReduce 实现。
conf: 配置文件所在目录。 Hadoop 的配置文件比较多,其设计原则可概括为如下两点。
○ 尽可能模块化,即每个重要模块拥有自己的配置文件,这样使得维护以及管理变得简单。
○ 动静分离,即将可动态加载的配置选项剥离出来,组成独立配置文件。比如,Hadoop 1.0.0 版本之前,作业队列权限管理相关的配置选项被放在配置文件 mapred-site.xml 中,而该文件是不可以动态加载的,每次修改后必须重启 MapReduce。但从 1.0.0 版本开始,这些配置选项被剥离放到独立配置文件 mapred-queue-acls.xml中,该文件可以通过 Hadoop 命令行动态加载。conf 目录下最重要的配置文件有core-site.xml、hdfs-site.xml 和 mapred-site.xml,分别设置了基础公共库 core、分布式文件系统 HDFS 和分布式计算框架 MapReduce 的配置选项。
lib:Hadoop 运行时依赖的三方库,包括编译好的 jar 包以及其他语言生成的动态库。 Hadoop 启动或者用户提交作业时,会自动加载这些库。
bin:运行以及管理 Hadoop 集群相关的脚本。这里介绍几个常用的脚本。 ❑
○ hadoop:最基本且功能最完备的管理脚本,其他大部分脚本都会调用该脚本。
○ start-all.sh/stop-all.sh:启动 / 停止所有节点上的 HDFS 和 MapReduce 相关服务。
○ start-mapred.sh/stop-mapred.sh:单独启动 / 停止 MapReduce 相关服务。
○ start-dfs.sh/stop-dfs.sh:单独启动 / 停止 HDFS 相关服务。


下面就 Hadoop MapReduce 源代码组织结构进行介绍。Hadoop MapReduce 源代码组织结构 如下图所示。

总体上看,Hadoop MapReduce 分为两部分:一部分是 org.apache.hadoop.mapred.*,这里面主要包含旧的对外编程接口以及 MapReduce 各个服务(JobTracker 以及 TaskTracker)的实现 ;另一部分是 org.apache.hadoop.mapreduce.*,主要内容涉及新版本的对外编程接口以及一些新特性(比如 MapReduce 安全) 。
1. MapReduce 编程模型相关
org.apache.hadoop.mapred.lib.*:这一系列 Java 包提供了各种可直接在应用程序中使用的 InputFormat、Mapper、Partitioner、Reducer 和OuputFormat,以减少用户编写MapReduce 程序的工作量。
org.apache.hadoop.mapred.jobcontrol :该 Java 包允许用户管理具有相互依赖关系的作业(DAG 作业) 。
org.apache.hadoop.mapred.join :该 Java 包实现了 map-side join 算法。该算法要求数据已经按照 key 排好序,且分好片,这样可以只使用 Map Task 实现 join 算法,避免 re-partition、sort、shuffling 等开销。 
org.apache.hadoop.mapred.pipes: 该 Java 包允许用户用 C/C++ 编写 MapReduce 作业。 
org.apache.hadoop.mapreduce:该 Java 包定义了一套新版本的编程接口,这套接口比旧版接口封装性更好。
org.apache.hadoop.mapreduce.* : 这 一 系 列 Java 包 根 据 新 版 接 口 实 现 了各 种InputFormat、Mapper、Partitioner、Reducer 和 OuputFormat。


2. MapReduce 计算框架相关
org.apache.hadoop.mapred:Hadoop MapReduce 最核心的实现代码,包括各个服务的具体实现。
org.apache.hadoop.mapred.filecache:Hadoop DistributedCache 实现。DistributedCache是 Hadoop 提供的数据分发工具,可将用户应用程序中需要的文件分发到各个节点上。
org.apache.hadoop.mapred.tools :管理控制 Hadoop MapReduce,当前功能仅包括允许用户动态更新服务级别的授权策略和 ACL(访问权限控制)属性。
org.apache.hadoop.mapreduce.split :该 Java 包的主要功能是根据作业的 InputFormat生成相应的输入 split。
org.apache.hadoop.mapreduce.server.jobtracker :该 Java 包维护了 JobTracker 可看到的 TaskTracker 状态信息和资源使用情况。
org.apache.hadoop.mapreduce.server.tasktracker.*:TaskTracker 的一些辅助类。


3. MapReduce 安全机制相关
这里只涉及 org.apache.hadoop.mapreduce.security.*。这一系列 Java 包实现了 MapReduce安全机制。

hadoop安装配置文件详解下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.cn 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。