设为首页 收藏本站
查看: 1171|回复: 0

[经验分享] Hadoop入门进阶课程2--Hadoop2.X 64位编译

[复制链接]

尚未签到

发表于 2017-2-28 12:18:17 | 显示全部楼层 |阅读模式
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  。该系列课程是应邀实验楼整理编写的,这里需要赞一下实验楼提供了学习的新方式,可以边看博客边上机实验,课程地址为 https://www.shiyanlou.com/courses/237
【注】该系列所使用到安装包、测试数据和代码均可在百度网盘下载,具体地址为 http://pan.baidu.com/s/10PnDs,下载该PDF文件
1、编译环境
1.1软硬件环境说明
所有节点均是CentOS系统,防火墙和SElinux禁用,所有节点上均创建了一个shiyanlou用户,并在系统根目录下创建/app目录,用于存放Hadoop等组件运行包。因为该目录用于安装hadoop等组件程序,用户对shiyanlou必须赋予rwx权限(一般做法是root用户在根目录下创建/app目录,并修改该目录拥有者为shiyanlou(chown –R shiyanlou:shiyanlou /app)。
Hadoop搭建环境:
l  虚拟机操作系统: CentOS6.6  64位,单核,1G内存
l  JDK:1.7.0_55 64位
l  Hadoop:1.1.2
1.2环境搭建
1.2.1JDK安装和Java环境变量配置
1.下载JDK1.7 64bit安装包
打开JDK1.7 64bit安装包下载链接为:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
打开界面之后,先选中 Accept License Agreement ,然后下载 jdk-7u55-linux-x64.tar.gz,如下图所示:
DSC0000.jpg
2.创建/app目录,把该目录的所有者修改为shiyanlou
sudo mkdir /app
sudo chown -R shiyanlou:shiyanlou /app

DSC0001.jpg
3.创建/app/lib目录,使用命令如下:
mkdir /app/lib

DSC0002.jpg

4. 把下载的安装包解压并迁移到/app/lib目录下
cd /home/shiyanlou/install-pack

tar -zxf jdk-7u55-linux-x64.tar.gz

mv jdk1.7.0_55/ /app/lib

ll /app/lib

DSC0003.jpg

5.使用sudo vi /etc/profile命令打开配置文件,设置JDK路径
export JAVA_HOME=/app/lib/jdk1.7.0_55

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

DSC0004.jpg
6.编译并验证
source /etc/profile
java -version
DSC0005.jpg
1.2.2安装并设置maven
1.下载maven安装包(建议安装3.0以上版本)本次安装选择的是maven3.0.5的二进制包,下载地址http://mirror.bit.edu.cn/apache/maven/maven-3/  ,也可以在/home/shiyanlou/install-pack目录中找到该安装包
DSC0006.jpg

2. 解压缩apache-maven-3.0.5-bin.tar.gz包,并把apache-maven-3.0.5目录移到/app/lib目录下
cd /home/shiyanlou/install-pack

tar -zxf apache-maven-3.0.5-bin.tar.gz

mv apache-maven-3.0.5 /app/lib

DSC0007.jpg

3.使用sudo vi /etc/profile打开配置文件,并加入maven设置
export MAVEN_HOME=/app/lib/apache-maven-3.0.5

export PATH=$PATH:$MAVEN_HOME/bin

DSC0008.jpg
4.编译/etc/profile文件并验证配置是否成功:
source /etc/profile

mvn -version

DSC0009.jpg

1.2.3使用yum安装svn
sudo yum install svn

DSC00010.jpg
DSC00011.jpg
DSC00012.jpg
1.2.4使用yum安装autoconf automake libtool cmake
sudo yum install autoconf automake libtool cmake

DSC00013.jpg
DSC00014.jpg
DSC00015.jpg
1.2.5使用yum安装ncurses-devel
sudo yum install ncurses-devel

DSC00016.jpg
1.2.6使用yum安装openssl-devel
sudo yum install openssl-devel

DSC00017.jpg
DSC00018.jpg
DSC00019.jpg
1.2.7使用yum安装gcc*
sudo yum install gcc*

DSC00020.jpg
DSC00021.jpg
DSC00022.jpg
1.2.8安装并设置protobuf
注:该程序包需要在gcc安装完毕后才能安装,否则提示无法找到gcc编译器。
1.下载protobuf安装包
下载链接为 https://code.google.com/p/protobuf/downloads/list ,也可以在/home/shiyanlou/install-pack目录中找到该安装包
DSC00023.jpg

2.解压安装包并把protobuf-2.5.0目录转移到/app/lib目录下
cd /home/shiyanlou/install-pack

tar -zxf protobuf-2.5.0.tar.gz

mv protobuf-2.5.0 /app/lib

DSC00024.jpg
3.进行目录运行命令
进入目录运行如下命令:
cd /app/lib/protobuf-2.5.0/

sudo ./configure


sudo make

sudo make check

sudo make install

DSC00025.jpg
DSC00026.jpg
make过程时间较长,需要运行几分钟时间
DSC00027.jpg
check结果如下
DSC00028.jpg
运行install命令及结果如下
DSC00029.jpg
DSC00030.jpg
4.验证是否安装成功
运行成功之后,通过如下方式来验证是否安装成功,如果出现"Missing input file"表示成功安装protobuf
protoc

DSC00031.jpg
2、编译Hadoop
2.1下载Hadoop源代码 Release2.2.0
在/app目录下新建compile子目录,在该文件夹通过SVN获取Hadoop2.2.0源代码,命令如下:
cd /app

mkdir compile

cd compile

svn checkout http://svn.apache.org/repos/asf/hadoop/common/tags/release-2.2.0

获取时间较长,大小约75.3M
DSC00032.jpg
2.2编译Hadoop源代码
由于hadoop2.2.0在svn中pom.xml有点问题,会造成编译中出错,可先参考3.1修复该问题。在Hadoop源代码的根目录执行如下命令:
cd /app/compile/release-2.2.0/

mvn package -Pdist,native -DskipTests –Dtar

(注意:这行命令需要手工输入,如果复制执行会报异常!)
DSC00033.jpg

在编译过程需要联网,从网络中下载所依赖的包,编译的过程时间根据网速时间不等,一般在30分钟左右。
DSC00034.jpg
DSC00035.jpg

编译好的Hadoop2.X 64位安装包在hadoop-dist/target目录中,该文件为hadoop-2.2.2.tar.gz。
DSC00036.jpg
2.3验证编译是否成功
到 hadoop-dist/target/hadoop-2.2.0/lib/native 目录中查看libhadoop.so.1.0.0属性:
cd /app/compile/release-2.2.0/hadoop-dist/target/hadoop-2.2.0/lib/native

file *

该文件为ELF 64-bit LSB则表示文件成功编译为64位(如果系统没有file命令,则使用sudo yum install file进行安装)
DSC00037.jpg
3、问题解决
3.1编译Hadoop2.2.0出现代码异常
目前的2.2.0 的Source Code 压缩包解压出来的code有个bug 需要patch后才能编译。否则编译hadoop-auth 会提示下面错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project hadoop-auth: Compilation failure: Compilation failure:
[ERROR] /home/hadoop/Downloads/release-2.2.0/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[88,11] error: cannot access AbstractLifeCycle
[ERROR] class file for org.mortbay.component.AbstractLifeCycle not found
[ERROR] /home/hadoop/Downloads/release-2.2.0/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[96,29] error: cannot access LifeCycle
[ERROR] class file for org.mortbay.component.LifeCycle not found
DSC00038.jpg
直接修改hadoop-common-project/hadoop-auth/pom.xml,其实就是少了一个包,添加一个dependency:
<dependency>

      <groupId>org.mortbay.jetty</groupId>

      <artifactId>jetty-util</artifactId>

      <scope>test</scope>

</dependency>

DSC00039.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348452-1-1.html 上篇帖子: hadoop:将WordCount打包成独立运行的jar包 下篇帖子: 浅谈hbase表中数据导出导入(也就是备份)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表