Hadoop下载与安装(源码安装)

本安装教程基于:

  1. 海牛部落Hadoop系列教程(四):编译Hadoop源码 http://www.hainiubl.com/topics/82
  2. Hadoop权威指南中文版

安装环境:

  • 物理机 MacOS 10.13.6
  • 虚拟机 VirtualBox
  • 虚拟机系统 CentOS 7

在安装的过程中查询很多博客,会发现采用安装文件安装后期会有很多问题,所以采用了Hadoop源码安装,其安装需要通过Maven管理来实现。

相关文件下载:

1

相关下载网址:

Hadoop: https://hadoop.apache.org/releases.html (2019年),选择Source下载,并选择网站提供的合适镜像进行下载

Apache-ant: http://ant.apache.org/

Apache-maven: http://maven.apache.org/download.cgi

Findbugs: http://findbugs.sourceforge.net/downloads.html

Protobuf: https://github.com/protocolbuffers/protobuf/releases 注意版本选择

Snappy: https://github.com/google/snappy/releases 注意版本选择,CentOS 7 的自带cmake工具为2.8, 而最新snappy-1.1.7需要cmake3.0以上版本。为避免麻烦选择1.1.3版本

java jdk: Oracle官网进行下载,注意请选择jdk1.8。原因:在安装过程中发现maven配置安装需要使用jdk1.8。使用1.7会出现如下问题:

1
2
3
Unrecognized VM option 'MaxMetaspaceSize=512M'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

MaxMetaspaceSize为Java8中新引入的参数,如果当前环境使用的是java7或更低版本,把编译环境改为java8后就OK了。
http://www.codingwhy.com/view/785.html

远程登录虚拟主机,使用rz工具将所有文件上传

查看CentOS 7 基本工具配置:
2

工具与Hadoop安装

1
2
3
解压与压缩命令:
tar xvzf xxx.tar.gz -C dest_dir #解压路径
tar cvzf dest_file.tar.gz -C source_dir #压缩文件
  1. 切换到root权限下,将Hadoop源码包解压到/usr/local

    1
    tar xvzf hadoop-2.9.2-src.tar.gz -C /usr/local

    查看/usr/local/hadoop-2.9.2-src/BUILDING.txt查看Requirements:
    3

  2. 安装源码编译需要的本地库

    1
    2
    yum -y install svn ncurses-devel gcc*
    yum -y install lzo-devel zlib-devel autoconf automake libtool cmake openssl-devel bzip2

    注意,如果zlib-devel和openssl-devel没有安装,会出现安装报错,executable通常显示“cmake”
    http://www.voidcn.com/article/p-bkvnropx-bog.html

  3. 安装包部分
    3.1 protobuf 安装, 将protobuf压缩包解压至/usr/local/

    1
    2
    3
    4
    5
    6
    tar xvzf protobuf-2.5.0.tar.gz -C /usr/local
    cd ./protobuf-2.5.0/
    ./configure
    make
    make install
    protoc --version #查看版本信息验证安装成功

    3.2 apache-ant 安装, 解压至/usr/local
    3.3 findbugs安装, 解压至/usr/local

    1
    /usr/local/findbugs-3.0.1/bin/findbugs -version #查看版本验证

    3.4 maven安装, 解压至/usr/local
    3.5 nappy安装, 解压至/usr/local

    1
    2
    3
    4
    5
    6
    7
    tar xvzf snappy-1.1.3.tar.gz -C /usr/local
    cd ./snappy-1.1.3/
    ./configure
    make
    make install
    ls -lh /usr/local/lib | grep snappy
    注意这是采用1.1.3的安装方法,最新的1.1.7需要通过cmake3.0编译

    3.6 java jdk安装
    参考linux java jdk安装:

    1
    java -version #查看java版本
  4. 环境变量配置 vim /etc/profile

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 检查java路径是否正确
    export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
    export JRE_HOME=$JAVA_HOME/jre
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
    # hadoop编译环境
    export CLASSPATH=$CLASSPATH:./:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export MAVEN_HOME=/usr/local/apache-maven-3.6.1
    export FINDBUGS_HOME=/usr/local/findbugs-3.0.1
    export PROTOBUF_HOME=/usr/local/protobuf-2.5.0
    export ANT_HOME=/usr/local/apache-ant-1.9.14
    export PATH=$PATH:$MAVEN_HOME/bin:$FINDBUGS_HOME/bin:$ANT_HOME/bin
    export MAVEN_OPTS="-Xmx2g -XX:MaxMetaspaceSize=512M -XX:ReservedCodeCacheSize=512m"

    启用环境变量 source /etc/profile

  5. 使用maven进行编译
    在/usr/local/hadoop/BUILDING.txt文件中说明了如何使用Maven进行编译
    4
    5

    基本命令:

    1
    2
    cd /usr/local/hadoop-2.9.2-src/
    mvn clean package -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/lib

    在编译下载过程中,发现使用了apache的源,下载非常缓慢,在网络不良的时候还会发生安装错误,于是要配置国内阿里云的maven镜像:

    5.1 在/usr/local/maven/conf中,找到settings.xml
    中添加路径

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
    ---------------------
    作者:行走的IT 人
    来源:CSDN
    原文:https://blog.csdn.net/tengxing007/article/details/72588242
    版权声明:本文为博主原创文章,转载请附上博文链接!

    并且在/usr/local/hadoop/pom.xlm文件下添加

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     <repository>
    <id>nexus-aliyun</id>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </repository>
    ---------------------
    作者:行走的IT 人
    来源:CSDN
    原文:https://blog.csdn.net/tengxing007/article/details/72588242
    版权声明:本文为博主原创文章,转载请附上博文链接!

    然后再使用mvn命令进行安装,注意是在hadoop路径下。

    1
    mvn clean package -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/lib

    源码安装好之后,二进制配置文件位于/hadoop-2.9.2-src/hadoop-dist/target/hadoop-2.9.2/
    配置hadoop环境变量

    1
    2
    export HADOOP_HOME=/usr/local/hadoop-2.9.2-src/hadoop-dist/target/hadoop-2.9.2
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    可以用 hadoop version来检查是否安装成功
    hadoop_version

    Hadoop的各个组件均可以利用XML文件进行配置。

    • Core-site.xml文件用用配置通用属性,

    • hdfs-site.xml用于配置HDFS属性,

    • mapred-site.xml用于配置madpreduce属性,

    • yarn-site.xml用于配置YARN属性。
      这些配置文件都放在/etc/hadoop子目录中。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      完整配置文件
      # set hadoop path
      export HADOOP_HOME=/usr/local/hadoop-2.9.2-src/hadoop-dist/target/hadoop-2.9.2
      export HADOOP_COMMON_HOME=$HADOOP_HOME
      export HADOOP_HDFS_HOME=$HADOOP_HOME
      export HADOOP_MAPRED_HOME=$HADOOP_HOME
      export HADOOP_YARN_HOME=$HADOOP_HOME
      export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
      export HDFS_CONF_DIR=$HADOOP_HOME/etc/hadoop
      export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
      export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:/usr/lib64

      export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

      安装中出现的错误

  6. 在第一次配置的过程中,出现多次网络中断或异常终止的状况,这是因为使用了apache的源,即使开了vpn下载速度也受限。所以在国内请务必配置阿里云的镜像。

  7. 在使用apache源的情况下,如果安装出错,继续执行上述mvn命令仍然可以继续安装,但可能会出一些比较奇怪的错。我出现的问题在:

    6

    1
    2
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (tar) on project hadoop-dist: An Ant BuildException has occured: exec returned: 1
    [ERROR] around Ant part ...<exec failonerror="true" dir="/usr/local/hadoop-2.9.2-src/hadoop-dist/target" executable="bash">... @ 21:99 in /usr/local/hadoop-2.9.2-src/hadoop-dist/target/antrun/build-main.xml

    在help文档中查到这不是maven内核的问题,而是antrun插件的问题,所以寻找到了如下博客 http://www.voidcn.com/article/p-bkvnropx-bog.html 。该博客中说明在jdk1.8的环境下可能会出现相同的错误,于是我卸载了之前装的jdk1.8安装了jdk1.7(源码安装),但java直接不能使用。

    解决方法:清空虚拟机,并重新按照上边步骤来,使用rpm安装jdk1.8. 一定要配置阿里云mirror.然后耐心等待,就装好了。