hadoop2.1.0编译安装教程

nw37

贡献于2015-01-08

字数:10568 关键词: Hadoop 分布式/云计算/大数据

hadoop2.1.0编译安装教程 http://blog.csdn.net/linshao_andylin/article/details/12307747  由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable的错误,但在实际测试中是可以正常安装并可以运行自带的wordcont例子,所以这 个错误不会导致hadoop2.1.0的安装和运行失败,此错误引起原因是由于鉴于性能问题以及某些Java类库的缺失,对于某些组件,Hadoop提供 了自己的本地实现。 这些组件保存在Hadoop的一个独立的动态链接的库里。这个库在*nix平台上叫libhadoop.so,此文件在发行的hadoop版本 lib/native目录下。详细请看下面的这个官方链接hadoop.apache.org/docs/r2.1.0-beta/hadoop- project-dist/hadoop-common/NativeLibraries.html。当然这里也可以在core-site.xml里配置 不使用本地库。 一、准备环境 (先列出这些所需的软件环境,如果不安装除hadoop2.1.0源码中BUILDING.txt要求的软件环境则编译的时候会报错,后面会加以说明):   1.CentOS-6.4-x86_64-bin-DVD1(1).iso(不一定使用centos系统,主流的unix like即可,但后面软件环境可能有出入)   下载地址:isoredirect.centos.org/centos/6/isos/x86_64/   2.hadoop-2.1.0-beta-src.tar.gz   下载地址:apache.dataguru.cn/hadoop/common/hadoop-2.1.0-beta/   下载地址:svn.apache.org/repos/asf/hadoop/common/tags/release-2.1.0-beta/(svn工具checkout链接)   上面两个链接都可以获取hadoop2.1.0-beta源码   3.jdk-7u40-linux-x64.rpm(hadoop2.1.0源码中BUILDING.txt中要求使用1.6 or newer)   下载地址:www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html   4.apache-maven-3.0.5-bin.tar.gz(hadoop2.1.0源码中BUILDING.txt中要求使用3.0,从hadoop2.0版本以后使用maven编译,之前用Ant)   下载地址:maven.apache.org/download.cgi(目前最新版本3.1,hadoop2.1.0源码中BUILDING.txt中要求使用3.0)   5.apache-ant-1.9.2-bin.zip(下载二进制版本的,这个需要编译安装findbugs)   下载地址:ant.apache.org/bindownload.cgi   6.CMake 2.6 x86-64 or newer (if compiling native code)(hadoop2.1.0源码中BUILDING.txt中要求使用2.6 or newer)   下载地址:www.cmake.org/cmake/resources/software.html   7.findbugs-2.0.2-source.zip(hadoop2.1.0源码中BUILDING.txt中要求使用1.3.9 or newer)   下载地址:sourceforge.jp/projects/sfnet_findbugs/releases/    如果不安装则报如下错误: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (site) on project hadoop-common: An Ant BuildException has occured: stylesheet /usr/hadoop2.1/hadoop-2.1.0-beta-src/hadoop-common-project/hadoop-common/${env.FINDBUGS_HOME}/src/xsl/default.xsl doesn't exist. -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR]   mvn -rf :hadoop-common   8.zlib-devel-1.2.3-3.x86_64.rpm   下载地址:rpm.pbone.net/index.php3/stat/4/idpl/8192688/dir/startcom_5/com/zlib-devel-1.2.3-3.x86_64.rpm.html   如果不安装则报如下错误: [exec] CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:57 (MESSAGE): [exec]   Could NOT find ZLIB (missing: ZLIB_INCLUDE_DIR) [exec] Call Stack (most recent call first): [exec]   /usr/share/cmake/Modules/FindZLIB.cmake:22 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) [exec]   CMakeLists.txt:89 (find_package) [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (make) on project hadoop-common: An Ant BuildException has occured: exec returned: 1 -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR]   mvn -rf :hadoop-common   9.protobuf-2.5.0.tar.gz   下载地址:code.google.com/p/protobuf/ 二、准备环境环节中的软件安装   1.安装centos系统,不在这里介绍网上很多教程   2.解压hadoop-2.1.0-beta-src.tar.gz源码到/usr/hadoop/  命令如下:tar -zxvf hadoop-2.1.0-beta-src.tar.gz -C /usr/hadoop/   3.用rpm命令安装:rpm -ivh jdk-7u40-linux-x64.rpm,如果你安装centos是带有界面的,双击rpm文件即可安装。     安装完成后,配置环境变量,使用vi命令编辑profile文件 vi /etc/profile 移动到最后一行添加以下内容:     export JAVA_HOME=/usr/java/jdk1.7.0_40     export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:/lib/dt.jar     export PATH=$JAVA_HOME/bin:$PATH     添加完成后,运行source /etc/profile使其立即生效     运行命令java -version查看是否安装成功,如下图所示则说明安装成功。        4.解压apache-maven-3.0.5-bin.tar.gz到/usr 命令如下:tar -zxvf apache-maven-3.0.5-bin.tar.gz -C /usr/     配置环境变量使用vi命令编辑profile文件 vi /etc/profile 移动到最后一行添加以下内容:     export MAVEN_HOME=/usr/apache-maven-3.0.5     export PATH=$PATH:$MAVEN_HOME/bin     添加完成后,运行source /etc/profile使其立即生效,运行命令mvn -version查看是否安装成功,如下图所示则说明安装成功。        5.同样把apache-ant-1.9.2-bin.zip解压到/usr/下,配置环境变量使用vi命令编辑profile文件 vi /etc/profile 移动到最后一行添加以下内容:     export ANT_HOME=/usr/apache-ant-1.9.2     export PATH=$PATH:$ANT_HOME/bin     运行命令ant -version查看是否安装成功,如下图所示则说明安装成功。          注:虽然本身centos操作系统自带ant,但不好用,编译findbugs会失败。所以要重新安装。  6.安装CMake,可以使用yum命令在线安装,yum命令不熟悉的网上查资料,安装命令:yum install cmake ,如图所示          下面需要再安装openssl-devel,安装命令yum install openssl-devel,此步不做的话会报如下错误 [exec] CMake Error at /usr/share/cmake/Modules/FindOpenSSL.cmake:66 (MESSAGE): [exec]   Could NOT find OpenSSL [exec] Call Stack (most recent call first): [exec]   CMakeLists.txt:20 (find_package) [exec] [exec] [exec] -- Configuring incomplete, errors occurred! [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (make) on project hadoop-pipes: An Ant BuildException has occured: exec returned: 1 -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR]   mvn -rf :hadoop-pipes        7.解压findbugs-2.0.2-source.zip到/usr,使用ant编译安装。如果不安装则编译的时候会报     hadoop-common-project/hadoop-common/${env.FINDBUGS_HOME}/src/xsl/default.xsl doesn’t exist. -> [Help 1]     先进入解压后的目录cd /usr/findbugs-2.0.2     执行ant命令 如图所示则说明成功          配置环境变量使用vi命令编辑profile文件 vi /etc/profile 移动到最后一行添加以下内容:     export FINDBUGS_HOME=/usr/findbugs-2.0.2     export PATH=$PATH:$FINDBUGS_HOME/bin     添加完成后,运行source /etc/profile使其立即生效   8.用rpm命令安装:rpm -ivh zlib-devel-1.2.3-3.x86_64.rpm,如果你安装centos是带有界面的,双击rpm文件即可安装。     也可以不用下载rpm文件,用yum命令在线安装也可以,安装命令:     yum install zlib     yum install zlib-devel   9.tar命令解压protobuf-2.5.0.tar.gz到/usr目录下,     进入到解压后的目录下:cd /usr/protobuf-2.5.0     在linux64bit下编译执行./configure LDFLAGS="-s" CFLAGS=-m64 CXXFLAGS=-m64 FFLAGS=-m64 FCFLAGS=-m64       --build=x86_64-gnu-linux --host=x86_64-gnu-linux --target=x86_64-gnu-linux     在linux32bit下编译使用执行./configure LDFLAGS="-s" CFLAGS=-m32 CXXFLAGS=-m32 FFLAGS=-m32 FCFLAGS=-m32 --     --build=x86_64-gnu-linux --host=x86-gnu-linux --target=x86-gnu-linux     参数说明如下:        --prefix                 安装目录;       --LDFLAGS="-s"           消除库的依赖性;       --CFLAGS                  C compiler flags;       --CXXFLAGS                C++ compiler flags;       --FCFLAGS                 设置compiler是32bit还是64bit;       --build                   configure for building on BUILD;       --host                    cross-compile to build programs to run on HOST;       --target                  configure for building compilers for TARGET;      如果直接进行编译此报错如下图,在环境变量设置中查找不到编译器。          解决上面问题,需要安装     yum install glibc-headers     yum install glibc-devel     yum install gcc     yum install gcc-c++     其实直接安装最后一项即可,因为gcc-c++安装的时候会依赖上面的三个包的安装,所以直接运行yum install gcc-c++     如图所示          安装完成后再执行./configure LDFLAGS="-s" CFLAGS=-m64 CXXFLAGS=-m64 FFLAGS=-m64 FCFLAGS=-m64       --build=x86_64-gnu-linux --host=x86_64-gnu-linux --target=x86_64-gnu-linux     make     male install     执行protoc --version 返回版本号则证明安装成功     如下图则说明安装成功      三、hadoop2.1.0编译   1.进入hadoop2.1.0解压后的源码目录:cd /usr/hadoop/hadoop-2.1.0-beta-src   2.执行mvn命令编译,此过程需要连接到网络,编译的速度取决于你的网速,在源码的BUILDING.txt文件说明中有以下几种     Building distributions:     2.1.Create binary distribution without native code and without documentation:     $ mvn package -Pdist -DskipTests -Dtar     2.2.Create binary distribution with native code and with documentation:     $ mvn package -Pdist,native,docs -DskipTests -Dtar     2.3.Create source distribution:     $ mvn package -Psrc -DskipTests     2.4.Create source and binary distributions with native code and documentation:     $ mvn package -Pdist,native,docs,src -DskipTests -Dtar     2.5.Create a local staging version of the website (in /tmp/hadoop-site)     $ mvn clean site; mvn site:stage -DstagingDirectory=/tmp/hadoop-site     我们选择2.2执行mvn package -Pdist,native,docs -DskipTests -Dtar     执行结果如下图,执行时间大约用了40多分钟。          编译后的项目发布版本在/usr/hadoop/hadoop-2.1.0-beta-src/hadoop-dist/target/目录下,如图说明        四、hadoop2.1.0单机安装   1.把我们上面编译好的项目拷贝到/usr/hadoop目录下   2.配置环境变量,编辑vi /etc/profile文件,移动到最后一行添加如下数据      [html] view plaincopy 1. export HADOOP_DEV_HOME=/usr/hadoop/hadoop-2.1.0-beta   2.    3. export PATH=$PATH:$HADOOP_DEV_HOME/bin   4.    5. export PATH=$PATH:$HADOOP_DEV_HOME/sbin   6.    7. export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}   8.    9. export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}   10.    11. export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}   12.    13. export YARN_HOME=${HADOOP_DEV_HOME}   14.    15. export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop   16.    17. export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop   18.    19. export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop       保存退出,执行source /etc/profile使其立即生效。   3.配置ssh免密码登陆     由于centos已经自带给安装好,如果你系统中没有安装ssh请先进行安装。在这里不做说明,网上大把的。     执行ssh-keygen -t rsa -P "" 加上-P ""参数只需要一次回车就可以执行完毕。不加需要三次回车     执行cd /root/.ssh     执行ls 你会看到如下图所示文件,会产生公私钥,后缀为.pub是公钥。          执行id_dsa.pub >> authorized_keys把公钥加入到authorized_keys     测试命令:ssh localhost,如果不需要输入密码就能连接,则说明成功配置   4.编写hadoop配置文件,在目录etc/hadoop下,一共五个文件需要配置,分别是:     hadoop-env.sh,core-site.xml,hdfs-site.xml,     mapred-site.xml(etc/hadoop没有这个配置文件,但有mapred-site.xml.template复制一份,去掉.template后缀),yarn-site.xml     4.1 编辑hadoop-env.sh加入export JAVA_HOME=/usr/java/jdk1.7.0_40     4.2 编辑core-site.xml         [html] view plaincopy 1.    2.      3.      fs.defaultFS   4.      hdfs://localhost:8020   5.      6.        4.3 编辑hdfs-site.xml     [html] view plaincopy 1.    2.       3.         dfs.namenode.name.dir   4.         file:/usr/hadoop/hadoop-2.1.0-beta/dfs/name   5.         true   6.            7.       8.         dfs.datanode.data.dir   9.         file:/usr/hadoop/hadoop-2.1.0-beta/dfs/data   10.         true   11.        12.       13.         dfs.replication   14.         1   15.         16.       17.            dfs.permissions   18.            false   19.        20.               4.4 编辑mapred-site.xml                  [html] view plaincopy 1.    2.       3.       mapreduce.framework.name   4.       yarn   5.            6.        4.5 编辑yarn-site.xml       [html] view plaincopy 1.    2.      3.     yarn.nodemanager.aux-services   4.     mapreduce.shuffle   5.      6.      5. 格式化HDFS文件系统      执行命令 hadoop namenode -format      执行结果如图所示,则说明执行成功。              需要说明的是,从2.0以后启动和停止hadoop的命令start-all.sh和stop-all.sh不建议使用,开始摒弃掉      取而代之的将使用start-dfs.sh和start-yarn.sh启动hadoop,详细请看官方说明,      分别运行start-dfs.sh和start-yarn.sh守护进程,如下图运行正常,并且使用自己编译的hadoop版本没有报无法加载本地库的错误            访问localhost:50070正常                                    访问资源管理界面localhost:8088,hadoop从版本2.0以后界面功能变的很强大                      五、hadoop2.1.0单机运行hadoop自带的wordcount例子   1.在hdfs文件系统创建两个目录/tmp/input     hadoop fs -mkdir /tmp     hadoop fs -mkdir /tmp/input   2.从本地上传一个文件到hdfs     hadoop fs -put /usr/hadoop/test.txt /tmp/input   3.查看test.txt文件是否成功上传到hdfs上     hadoop fs -ls /tmp/input     如图已经上传成功         4.执行wordcount自带的例子      切换到如图所示目录            执行如图所示命令,此时运行一个job任务           任务运行成功                        查看执行的结果,和预期的结果一致             以上仅是单纯的测试一下,有需要编译好的请回复我,后续会写第二章,用自己编译的hadoop版本搭建一个集群。    自己编译的好处是可以自己动手学习调试和修改源代码。            

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享文档获得金币 ]
0 人已下载

下载文档

相关文档