由于实验室工作
不断地安装了好几次hadoop环境
趁印象还深刻
赶紧mark下先重要步骤
如果不build native code
直接搭建hadoop也是没问题的
只是每次用terminal运行hadoop的时候一定都会在开始有一大堆提示:
Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /opt/hadoop-2.2.0/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
13/11/01 10:58:59 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
主要原因是默认提供的是32bits的libhadoop
所以64bits的使用不了,然后只能用Java的code
由于native code是用c写,实际上运行起来的效能肯定会比Java好。
build完native code会生成一个 hadoop-2.2.0.tar.gz
我们再用这个去搭建hadoop环境
而不是使用官方的直接下载。
(为了突显重点就居中好了)步骤如下:
1. 由于是用c写的,所以build native code肯定需要很多c的编译工具,在terminal执行一下语句:
- sudo apt-get install build-essential,
- sudo apt-get install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev,(中间有空格的)
- sudo apt-get install maven
2. 还要下载一个叫protoco buffer, 从这里下载: protoco buffer下载 , 在terminal执行以下语句: (其实可以在termianl执行 protobuf -version检查是否安装了)
- tar zxvf protobuf-2.5.0.tar.gz
- cd protobuf-2.5.0
- ./config --prefix=/usr
- make
- make check
- sudo make install
3. 从官网上下载hadoop-2.2.0.src.tar.gz. 记着是src!然后解压缩后, 进入到该目录, 用maven执行命令
- tar zxvf hadoop-2.2.0-src.tar.gz
- cd hadoop-2.2.0-src
- mvn package -Pdist,native -DskipTests, -Dtar
PS. 重重的PS, 其它版本的hadoop可以不执行一下步骤, 直接按照上面1,2,3执行, 版本改回去你们相应的版本就好. 但是
hadoop-2.2.0的用于必须执行这步才能执行步骤3
- cd hadoop-2.2.0-src/hadoop-common-project/hadoop-auth
- sudo nano pom.xml
- 按下面修改后在执行步骤3
<dependency><groupId>org.mortbay.jetty</groupId>+ <artifactId>jetty-util</artifactId>+ </dependency>+ <scope>test</scope> + <dependency><artifactId>jetty</artifactId>+ <groupId>org.mortbay.jetty</groupId> <scope>test</scope></dependency>
- 最后看到BUILD SUCCESS后, 在hadoop-2.2.0-src/hadoop-dist/target/ 下找到hadoop-2.2.0.tar.gz
- 我们将使用这个包来进行hadoop完全分布式环境的搭建