在10月15日hadoop2.2 release 版本一发布就打算抽时间用6台机器搭建hadoop2.2小的测试集群。以前搭建过hadoop1.03和hadoop2.0alpha版本,以为这次能快速搭建好,结果花了一天半时间才搞定被各种环境坑了多次还有编译时网速坑爹,终于搭建好了可以玩了。现在把遇到的问题记录如下:
1.首先由于机器环境是64位,从官网下载的2.2中本地库是32位的需要自己用源码编译替换本地库( YARN加载本地库抛出Unable to load native-hadoop library)。
为了替换本地库结果编译源码又遇到问题如下(机器环境有centos ,有ubuntu 64位):
编译环境需要安装:
安装编译依赖类库
sudo apt-get install gccsudo apt-get install build-essential
sudo apt-get install libssl-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libglib2.0-dev
sudo apt-get install cmake
cmake --version
安装ProtocolBuffer 2.5.0
https://code.google.com/p/protobuf/https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz
tar zxvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0/
./configure
make
sudo make install
sudo ldconfig
进入下载好的hadoop源代码目录
mvn package -Pdist -Pnative -Dtar -DskipTests
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
安装build-essential
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (make) on project hadoop-hdfs: An Ant BuildException has occured: exec returned: 1 -> [Help 1]
安装libglib2.0-dev
[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]
安装libssl-dev
2.终于替换后又遇到问题(这是自己机器的问题,我从UBUNTU上编译的,放到centos提示依赖版本低,可以更新依赖包解决)
3.hdfs启动成功好跑wordcount例子又遇到
- org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService:
- mapreduce_shuffle does not exist
在yarn-site.xml 配置文件中增加:
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>