内容简介:想要学习hadoop,自定义hadoop代码并运行,build是绕不开的一步。但这个操作实在是太复杂,以至于不容易完成。本文聊一下我在build中遇到的坑。本文内容基于
想要学习hadoop,自定义hadoop代码并运行,build是绕不开的一步。
但这个操作实在是太复杂,以至于不容易完成。本文聊一下我在build中遇到的坑。
本文内容基于 ubuntu 16.04
JDK8
获取代码
hadoop项目代码从 https://github.com/apache/hadoop 获取。如果你的项目对hadoop版本有要求,clone下来后checkout到相应的分支或者tag即可。
git clone https://github.com/apache/hadoop.git git checkout release-2.7.1
安装依赖
阅读编译说明
由于hadoop编译实在是太复杂,官方甚至有一个编译说明。
打开项目根目录的 BUILDING.txt
,注意以下内容:
Installing required packages for clean install of Ubuntu 14.04 LTS Desktop: * Oracle JDK 1.7 (preferred) (作者注:Ubuntu原生 java 或者JDK8都可以成功编译,这一段可以忽略) $ sudo apt-get purge openjdk* $ sudo apt-get install software-properties-common $ sudo add-apt-repository ppa:webupd8team/java $ sudo apt-get update $ sudo apt-get install oracle-java7-installer * Maven $ sudo apt-get -y install maven * Native libraries $ sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev * ProtocolBuffer 2.5.0 (required) (作者注:必须是2.5.0,但是下面的命令现在会自动下载2.6.1,所以不要用下面的命令) $ sudo apt-get -y install libprotobuf-dev protobuf-compiler
说明中对于所需依赖分为4个方面:
- JDK 1.7:根据实践1.8也可以用,如果你已经安装了JDK此处可以忽略
- Maven:没有安装的话,执行命令
- Native libraries:一般都需要安装,执行命令
- ProtocolBuffer 2.5.0:编译成功的必备。但是下方命令会下载2.6.1,不要执行。
手动安装ProtocolBuffer 2.5.0
接上文,安装好其它依赖后,需要手动安装 ProtocolBuffer 2.5.0
。首先运行
protoc --version
确认本地是否已有ProtocolBuffer,及版本是否为2.5.0。如果安装了其它版本,需要卸载:
sudo apt-get -y remove libprotobuf-dev protobuf-compiler
执行以下命令手动安装:(自行确认是否需要sudo)
cd /usr/local/src/ wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz tar xvf protobuf-2.5.0.tar.gz cd protobuf-2.5.0 ./autogen.sh ./configure --prefix=/usr make make install protoc --version
切换Maven源
hadoop编译过程中需要从Maven中下载大量依赖,如果你是国内环境,切换到阿里云的源会10倍地提高编译速度。
apt安装的Maven,打开 /etc/maven/settings.xml
。手动安装的Maven,打开maven目录下的 conf/settings.xml
。
在 <mirros>
中添加:
<mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
注意 <mirrorOf>
中是 *
才可以替换所有源,笔者最开始为 central
,导致很多包无法下载。
在 <profiles>
中添加:
<repository>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
最终 settings.xml
应该为:(忽略注释和无关代码块)
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<repository>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
</profiles>
</settings>
切换到项目根目录,运行:
mvn package -Pdist -DskipTests -Dtar
如果上面命令成功,可以运行更多的编译内容:
mvn package -Pdist,native,docs -DskipTests -Dtar
一般来说第一个命令就够用了,很多hadoop工具只需要java代码
以上就是我在 ubuntu 16.04
上编译成功hadoop的经验,成功编译hadoop对于调试集群,测试新功能都有帮助。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
并行算法的设计与分析
陈国良 / 2009-8 / 66.00元
第3版在修订版的基础上进行了大幅度的修订,新增加3章、重写3章,改写8章。《普通高等教育十一五国家级规划教材·并行算法的设计与分析(第3版)》系统深入地讨论了计算机领域中诸多计算问题的并行算法的设计和分析方法。在着重介绍各种并行计算模型上的常用和典型的并行算法的同时,也力图反映本学科的最新成就、学科前沿和发展趋势。 全书共分二十章,包括基础篇4章(绪论、设计技术、前缀计算、排序和选择网络),......一起来看看 《并行算法的设计与分析》 这本书的介绍吧!