hadoop2.1.0和hadoop2.2.0编译安装教程
由于现在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 <goals> -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 <goals> -rf :hadoop-common
9.protobuf-2.5.0.tar.gz
下载地址:code.google.com/p/protobuf/
10.如果全新编译hadoop2.2.0需要打补丁hadoop-10110,怎么做文章最后内容有说明。如果不编译hadoop2.2.0此步骤不需要考虑。
二、准备环境环节中的软件安装
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 CLASSPATH=.:$JAVA_HOME/lib/dt.jar:/lib/tools.jar
添加完成后,运行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 移动到最后一行添加以下内容:
添加完成后,运行source /etc/profile使其立即生效,运行命令mvn -version查看是否安装成功,如下图所示则说明安装成功。
5.同样把apache-ant-1.9.2-bin.zip解压到/usr/下,配置环境变量使用vi命令编辑profile文件 vi /etc/profile 移动到最后一行添加以下内容:
运行命令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 <goals> -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 移动到最后一行添加以下内容:
添加完成后,运行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
参数说明如下:
如果直接进行编译此报错如下图,在环境变量设置中查找不到编译器。
解决上面问题,需要安装
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文件说明中有以下几种
我们选择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文件,移动到最后一行添加如下数据
- export HADOOP_DEV_HOME=/usr/hadoop/hadoop-2.1.0-beta
- export PATH=$PATH:$HADOOP_DEV_HOME/bin
- export PATH=$PATH:$HADOOP_DEV_HOME/sbin
- export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
- export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
- export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
- export YARN_HOME=${HADOOP_DEV_HOME}
- export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
- export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
- 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是公钥。
执行cat id_rsa.pub >> authorized_keys把公钥加入到authorized_keys
同时注意.ssh文件夹的权限是否为700,authorized_keys的权限是否为600,如果不是则做相应修改
测试命令: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
- <configuration>
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://localhost:8020</value>
- </property>
- </configuration>
4.3 编辑hdfs-site.xml
- <configuration>
- <property>
- <name>dfs.namenode.name.dir</name>
- <value>file:/usr/hadoop/hadoop-2.1.0-beta/dfs/name</value>
- <final>true</final>
- </property>
- <property>
- <name>dfs.datanode.data.dir</name>
- <value>file:/usr/hadoop/hadoop-2.1.0-beta/dfs/data</value>
- <final>true</final>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- <property>
- <name>dfs.permissions</name>
- <value>false</value>
- </property>
- </configuration>
4.4 编辑mapred-site.xml
- <configuration>
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- </configuration>
4.5 编辑yarn-site.xml
- <configuration>
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce.shuffle</value>
- </property>
- </configuration>
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版本搭建一个集群。
自己编译的好处是可以自己动手学习调试和修改源代码。最后需要说明如果之前按照如上方式编译过hadoop2.1,然后在编译hadoop2.2是没问题的,因为之前maven缓存问题,见不到错误,如果直接编译解压hadoop2.2源码需要先打一个补丁hadoop-10110,链接如下://issues.apache.org/jira/browse/HADOOP-10110,不然在编译Apache Hadoop Auth时会报错,原因是在hadoop2.2下载源码解压代码不完整有bug,所以要编辑hadoop-2.2.0-src/hadoop-common-project/hadoop-auth下然pom.xml然后把hadoop-10110中内容修改下其实增加一项即可,内容为:
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency> 转自:http://blog.csdn.net/linshao_andylin/article/details/12307747
hadoop2.1.0和hadoop2.2.0编译安装教程的更多相关文章
- LNMP编译安装教程
LNMP编译安装教程 此次安装在Centos上,我采用的CentOS的版本是:CentOS release 6.5 (Final) 可以通过以下命令查看:lsb_release -a 一.准备工作: ...
- Linux下nginx编译安装教程和编译参数详解
这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # y ...
- Linux(centos)下mysql编译安装教程
Linux下mysql编译安装教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 本文測试环境centOS6.6 一.Linux下编译安装MyS ...
- 【转载】Ogre3d 2.1 源码编译安装教程
原文:Ogre3d 2.1 源码编译安装教程 今年是3D手游年,今年也是游戏引擎战争进入白热的一年. 移动游戏的红海时代,让各大端游也忍不住纷纷伸出大白腿,Unreal.CryEngine纷纷宣布自己 ...
- hadoop2.1.0编译安装教程
由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...
- 64位win10+cuda8.0+vs2013+cuDNN V5下Caffe的编译安装教程并配置matlab2014a 接口
一.需要安装的软件 1)vs2013,我是在http://www.52pojie.cn/thread-492326-1-1.html这个网址安装的.我之前用的是vs2012,按照网上的配置教程会爆各种 ...
- openssl1.0在mac下的编译安装(踩坑精华)
之前做了一次brew版本升级,然后用pip3安装的一个python命令就无法执行了(涉及到openssl库),执行就会报一个错误. ImportError: dlopen(/usr/local/Cel ...
- SequoiaDB、SequoiaSQL、Cloudera Manager4.8.0、Cloudera CDH4.5 详细安装教程
1安装SequoaiDB集群 1.1配置信任关系 以root用户执行下面的操作 1 执行命令 ssh-keygen 然后一直回车确定即可 2 每台机器都打开id_rsa.pub文件 vi ~/.ssh ...
- 转 Windows+VS2013爆详细Caffe编译安装教程
1. 安装cuda Cuda是英伟达推出的GPU加速运算平台 我这里安装的是cuda7.5,已经安装过的忽略,还没有安装过的这里有安装教程.windows下面安装还是非常简单的. 点击打开链接 ...
随机推荐
- Linux LiveCD 的制作
Knoppix,只需一张光盘, 就能够让我们在任何场所,随心所欲地使用 Linux1, 打破了操作系统只能先安装再使用的传统概念. Knoppix 最初的设计用途是教学,但由于这项技术很受欢迎,使得 ...
- U盘启动格式
U盘的几种启动模式:USB-HDD.USB-ZIP.USB-HDD+.USB-ZIP+.USB-CDROM 1. USB-HDD 硬盘仿真模式,DOS启动后显示C:盘,HP U盘格式化工具制作的U盘 ...
- sql server压缩数据库和日志文件
DBCC SHRINKDATABASE 功能:压缩数据库 用法:DBCC SHRINKDATABASE tb_115sou_com 注意:只有产生许多未使用空间的操作(如截断表或删除表操作)后,执行收 ...
- codevs 3290 华容道
HAHAHA BFS+SPFA. #include<iostream> #include<cstdio> #include<cstring> #include< ...
- Remove Duplicates from Sorted List I & II
Title: Given a sorted linked list, delete all duplicates such that each element appear only once. Fo ...
- dbms_stats.gather_table_stats与analyze table 的区别[转贴]
Analyze StatementThe ANALYZE statement can be used to gather statistics for a specific table, index ...
- Ruby 文件处理
#r read, #w write, #a append, #r+ 读写方式 从文件的头位置开始读取或写入, #w+ 读写方式,如果文件已存在清空该文件,不存在就创建一个新的文件, #a+ 如果文件存 ...
- Android-监听sdcard状态
public class MyService extends Service { private static final String TAG = "MyService"; Fi ...
- 使用rsync同步Linux数据到Windows
windows: win7,cwrsyncserver 4.1.0 linux:ubuntu 14.04,rsync 3.1.0 networks:使用360wifi [Windows端] 是否使用管 ...
- 【LeetCode 160】Intersection of Two Linked Lists
Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...