一、下载源文件
1. 登录hadoop官网下载相应的版本。官网地址:http://hadoop.apache.org
2. 下载的文件一般在当前用户的下载文件夹。我的位置是:/home/penglaozi/下载
3. 进入/usr/local/新建一个空文件夹:sudomkdir hadoop
将下载的文件拷贝到新建的文件夹里:sudo cp /home/penglaozi/下载/hadoop-2.7.1-src.tar.gz/usr/local/hadoop/
将该文件解压:sudotar xzvf hadoop-2.7.1-src.tar.gz
解压后得到文件:hadoop-2.7.1-src
二、下载编译所需软件
1. jdk下载、解压、配置环境变量
(1)下载jdk1.7以后的版本,按上面所述的步骤解压。这里我的jdk文件路径为:/usr/local/jdk1.8.0_101
(2)配置环境变量:
sudo vim /etc/profile
在done和unset i中间配置环境变量(在vim中插入文本要先按i,编辑完成后按esc,然后输入:wq即可退出)
export JAVA_HOME=/usr/local/jdk1.8.0_101
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
检验是否安装成功:java -version 如果有出现java版本,则安装成功
2. 安装maven
sudo apt-get install maven
验证安装是否成功:mvn -version
3. 安装protobuf
(1)先安装g++
sudo apt-get install g++
(2)下载protobuf-2.5.0.tar.gz,解压
进入protobuf-2.5.0文件夹,进行如下操作:
sudo ./configure
sudo make
sudo make check
sudo make install
sudo ldconfig
(3)修改环境变量
sudo vim /etc/profile
export LD_LIBRARY_PATH=~/protobuf-2.5.0
退出后输入source /etc/profile
(4)验证:protoc --version
4. 安装openssl库
sudo apt-get install libssl-dev
5. 安装cmake
sudo apt-get install cmake
6. 安装ant
(1)下载ant-1.9.4-bin.tar.gz并解压
(2)配置环境变量:
sudo vim /etc/profile
export ANT_HOME=/usr/local/apache-ant-1.9.4
export PATH=$PATH:$ANT_HOME/bin
退出后输入source /etc/profile使其生效
三、编译hadoop-2.7.1
为避免一直出现权限错误,先切换到root
sudo -s
mvn package -Pdist,native -DskipTests -Dtar
编译成功后在hadoop-2.7.1-src/hadoop-dist/target下有文件hadoop-2.4.0.tar.gz
四、这里讲一些我碰到的错误
1. 在切换到root后执行mvn命令,出现warning:JAVA_HOME environment virable is not set。但是在/etc/profile中已经设置了JAVA_HOME,并且在普通用户下是不会出现些警告的。
原因是我的系统有默认的jdk,与后面下载的jdk版本不一致。解决办法是先在root下管理jdk,设置自己要用的jdk为默认jdk;
update-alternatives --config java然后选择相应版本的jdk
此时改变的是java,若要改变javac,则要执行update-alternatives --config javac
update-alternatives --install注解:
update-alternatives --install <link><name> <path> <priority>
priority表示的是优先级,在auto mode时起作用。eg:
update-alternatives --install /usr/bin/javajava /usr/local/jdk1.8.0_101/bin/java 1234
update-alternatives --install/usr/bin/javac javac /usr/local/jdk1.8.0_101/bin javac 1234
然后在/etc/profile不作修改,退出后source /etc/profile即可。
2. 多次报类似Could not resolve dependencies for projectorg.apache.hadoop:hadoop-minikdc:jar:2.7.0之类的错误,一般是因为没有下载完,重新执行之前的mvn命令即可。