美文网首页
Hadoop单机环境搭建(JDK+Hadoop)

Hadoop单机环境搭建(JDK+Hadoop)

作者: analanxingde | 来源:发表于2019-01-31 16:56 被阅读0次

    我在安装的过程中的参考资料:博客和《Hbase不睡觉书》

    1. 服务器选择

    阿里云服务器基本信息
    注意本文中的系统是centos 7.3, 与centos7之前的版本可能有所不同。

    2. 软件安装版本

    2.1. 安装包下载

    软件下载地址(各自官网):JDK
    Hadoop目录下的Hadoop-2.8.4选择hadoop-2.8.4.tar.gz(编译好不加密的包)

    jdk与Hadoop版本

    2.2 安装包上传到服务器

    rz名命令上传。如果现实不存在这个命令,则说明未安装rz,执行yum -y install lrzsz安装后,上传jdk和Hadoop安装包到服务器 rz 选择要上传的安装包即可。解压tar -zxvf XXX.tar.gz
    本课题中,解压后的目录分别为:/usr/local/jdk1.8.0_201/usr/local/hadoop-2.8.4

    3. 安装过程详解

    3.1. 关于安装jdk的安装

    在第二节中解压jdk安装包后,我的解压目录为/usr/local/jdk1.8.0_201,进行环境变量的设置:vim /etc/profile在profile文件底部加入:

    export JAVA_HOME=/usr/local/jdk1.8.0_201
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    export PATH=.:${JAVA_HOME}/bin:$PATH
    

    检测安装效果:输入java -version显示如下即可:

    [root@test01 ~]# java -version
    java version "1.8.0_201"
    Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
    Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
    

    3.2 安装Hadoop

    3.2.1. 修改主机名与IP映射

    • 修改主机名
      后续的Hadoop配置中需要用到主机名,阿里云自带的主机名太过繁琐,因此首先修改主机名为test01,执行命令hostnamectl set-hostname 主机名
    [admin@iZwz9ffhe5jorfx9vdlmhmZ ~]$ hostname
    iZwz9ffhe5jorfx9vdlmhmZ
    [admin@iZwz9ffhe5jorfx9vdlmhmZ ~]$ hostnamectl set-hostname test01
    

    在阿里云服务器管理界面点击重启或者执行reboot命令,再次连接服务器,可以得到

    Welcome to Alibaba Cloud Elastic Compute Service !
    
    [admin@test01 ~]$ 
    

    至此代表主机名更改成功

    • 编辑Network文件
      编辑network文件(此为Centos 7之前的修改方式,本实验为防止后续出错,也进行了设置)vim /etc/sysconfig/network 之后将该文件中加入HOSTNAME=test01,修改之后如下所示:
    HOSTNAME=test01
    NETWORKING_IPV6=no
    PEERNTP=no
    
    • 设置IP映射
      输入vim /etc/hosts添加本机的IP映射,修改之后文件如下:
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    47.106.221.38 test01
    

    最后一行为添加的本机IP地址(此处为阿里云显示的公网IP)和修改后的HOSTNAME值

    3.2.2 关闭防火墙

    关闭防火墙:systemctl stop firewalld.service

    3.2.3 设置免密登陆

    设置免密登陆,是为了防止以后启动hadoop时,每次启动一个节点都需要输入密码。分别执行如下命令:

    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    chmod 0600 ~/.ssh/authorized_keys
    

    3.2.4 Hadoop环境配置

    配置profile文件

    配置Hadoop系统变量执行vim /etc/profile,在profile下面加入:如下环境变量

    export HADOOP_HOME=/usr/local/hadoop-2.8.4
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
    export PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH
    

    执行source /etc/profile使文件修改生效

    修改 hadoop-env.sh

    Hadoop运行在JDK之上,原本hadoop-env.sh文件中使用的是相对路径,但是在一些环境中会报错,因此此处修改为绝对路径。执行vim hadoop-env.sh
    export JAVA_HOME=${JAVA_HOME}更改为export JAVA_HOME=/usr/local/jdk1.8.0_201
    同时,可以在此处对hadoop的内存环境进行配置,在<configuration></configuration>之间添加以下内容::

    export HADOOP_NAMENODE_OPTS=" -Xms1024m -Xmx2014m -XX:+UseParallelGC"
    export HADOOP_DATANODE_OPTS=" -Xms1024m -Xmx2014m"
    export HADOOP_LOG_DIR=/data/logs/hadoop   //记得在命令行建立这个文件夹
    
    修改 core-site.xml

    执行vim core-site.xml,修改core-site.xml文件,在<configuration></configuration>之间添加以下内容:

    <property>
            <name>hadoop.tmp.dir</name>
            <value>/root/hadoop/tmp</value>
            <description>Abase for other temporary directories.</description>
       </property>
       <property>
            <name>fs.default.name</name>
            <value>hdfs://test01:8020</value>
    </property>
    
    修改hdfs-site.xml文件

    执行vim hdfs-site.xml,修改hdfs配置,在<configuration></configuration>之间添加以下内容:

    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:///root/hadoop/dfs/name</value>
    </property>
    <property>
    <name>dfs.dataenode.data.dir</name>
    <value>file:///root/hadoop/dfs/data</value>
    </property>
    

    注意此处需要在命令行中新建相应的文件夹,分别执行mkdir /root/hadoop/dfs/namemkdir /root/hadoop/dfs/data

    修改mapred-site.xml文件

    如果没有 mapred-site.xml 该文件,就复制mapred-site.xml.template文件并重命名为mapred-site.xml,所用命令:cp mapred-site.xml.template mapred-site.xml,肤质成功后,编辑mapred-site.xml文件,加入以下内容

    <property>
        <name>mapred.job.tracker</name>
        <value>test1:8021</value>
    </property>
    <property>
          <name>mapred.local.dir</name>
           <value>/root/hadoop/var</value>
    </property>
    <property>
           <name>mapreduce.framework.name</name>
           <value>yarn</value>
    </property>
    

    注意此处需要在命令行中新建相应的文件夹,执行mkdir /root/hadoop/var

    4.安装成功标志

    4.1 初始化

    第一次启动hadoop需要进行初始化,执行hadoop namenode -format得到以下结果

    初始化结果
    初始化成功

    初始化成功后,可以在/root/hadoop/dfs/name 目录下(该路径在hdfs-site.xml文件中进行了相应配置,并新建了该文件夹)新增了一个current 目录以及一些文件。 如下图所示:


    初始化结果

    4.2 hadoop 启动

    Hadoop 主要是启动HDFS和YARN

    4.2.1 启动HDFS

    进入hadoop安装目录下的sbin目录 启动HDFS ,执行:start-dfs.sh。得到以下结果,则HDFS启动成功。

    成功启动hdfs的结果

    4.2.1 启动YARN

    进入hadoop安装目录下的sbin目录启动YARN,执行start-yarn.sh
    得到以下结果,则YARN启动成功。

    成功启动YARN的结果

    此时查看当前所执行的进程,执行jps,得到以下结果,说明安装成功

    jps结果

    常见错误

    • jdk版本造成的错误
      Centos 7及以上的版本中可以选择yum直接安装openjdk,我第一次使用的是openjdk版本,openjdk在后续的hadoop安装过程中会遇到各种问题,包括:
    1. openjdk与jdk的目录结构差异造成的问题
      /root/hadoop/bin/hdfs: line 204: /opt/jdk/bin/java: No such file or directory /root/hadoop/bin/hdfs:
      注意JAVA_HOME的值必须具体到二进制java命令所在bin目录的上一级例如/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.201-2.6.16.1.el7_6.x86_64/jre而不是仅仅包括jdk版本的/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.201-2.6.16.1.el7_6.x86_64
    2. openjdk是精简版的jdk,可能导致某些命令不存在
      JPS命令不存在
      java-1.7.0-openjdk contains only the JRE. jps is part of the openjdk development package. Refer here.
      解决方案:安装缺少的包yum install java-1.7.0-openjdk-devel
    • Hadoop配置造成的问题
      FATAL namenode.NameNode: Failed to start namenode. java.lang. IllegalArgumentException: URI has an authority component
      问题在于 /hadoop/etc/hadoop/hdfs-site.xml文件中关于dfs.namenode.name.dir 和dfs.datanode.data.dir值的设置有误,检查目录是否存在等

    相关文章

      网友评论

          本文标题:Hadoop单机环境搭建(JDK+Hadoop)

          本文链接:https://www.haomeiwen.com/subject/axzndqtx.html