• Hadoop伪分布模式安装


    Hadoop伪分布模式安装

    Hadoop的运行模式分为3种
    本地运行模式,伪分布运行模式,完全分布运行模式。
    (1)本地模式(local mode)
    这种运行模式在一台单机上运行,没有HDFS分布式文件系统,而是直接读写本地操作系统中的文件系统。在本地运行模式(local mode)中不存在守护进程,所有进程都运行在一个JVM上。单机模式适用于开发阶段运行MapReduce程序,这也是最少使用的一个模式。
    (2)伪分布模式
    这种运行模式是在单台服务器上模拟Hadoop的完全分布模式,单机上的分布式并不是真正的分布式,而是使用线程模拟的分布式。在这个模式中,所有守护进程(NameNode,DataNode,ResourceManager,NodeManager,SecondaryNameNode)都在同一台机器上运行。因为伪分布运行模式的Hadoop集群只有一个节点,所以HDFS中的块复制将限制为单个副本,其secondary-master和slave也都将运行于本地主机。此种模式除了并非真正意义的分布式之外,其程序执行逻辑完全类似于完全分布式,因此,常用于开发人员测试程序的执行。
    (3)完全分布模式
    这种模式通常被用于生产环境,使用N台主机组成一个Hadoop集群,Hadoop守护进程运行在每台主机之上。这里会存在Namenode运行的主机,Datanode运行的主机,以及SecondaryNameNode运行的主机。在完全分布式环境下,主节点和从节点会分开。

    实验环境

    Linux Ubuntu 14.04

    实验内容

    在只安装Linux系统的服务器上,安装Hadoop2.6.0伪分布模式。

    实验步骤

    1.此步为可选项,建议用户创建一个新用户及用户组,后续的操作基本都是在此用户下来操作。但是用户亦可在自己当前非root用户下进行操作。 创建一个用户名为liulei,并为此用户创建home目录,此时会默认创建一个与liulei同名的用户组。

    sudo useradd -d /home/liulei -m liulei
    
    • 1

    为liulei用户设置密码,执行下面的语句

    sudo passwd liulei
    
    • 1

    按提示消息,输入密码以及确认密码即可,此处密码设置为liulei
    将liulei用户的权限,提升到sudo超级用户级别

    sudo usermod -G sudo liulei
    
    • 1

    后续操作,我们需要切换到liulei用户下来进行操作。

    su  liulei
    
    • 1

    2.首先来配置SSH免密码登陆
    SSH免密码登陆需要在服务器执行以下命令,生成公钥和私钥对

    ssh-keygen -t rsa  
    
    • 1

    此时会有多处提醒输入在冒号后输入文本,这里主要是要求输入ssh密码以及密码的放置位置。在这里,只需要使用默认值,按回车即可。

    此时ssh公钥和私钥已经生成完毕,且放置在/.ssh目录下。切换到/.ssh目录下

    cd ~/.ssh  
    
    • 1

    可以看到~/.ssh目录下的文件

    下面在~/.ssh目录下,创建一个空文本,名为authorized_keys

    touch ~/.ssh/authorized_keys  
    
    • 1

    将存储公钥文件的id_rsa.pub里的内容,追加到authorized_keys中

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  
    
    • 1

    下面执行ssh localhost测试ssh配置是否正确

    ssh localhost  
    
    • 1

    一次使用ssh访问,会提醒是否继续连接

    后续再执行ssh localhost时,就不用输入密码了
    在这里插入图片描述

    3.下面首先来创建两个目录

    sudo mkdir /apps  
    sudo mkdir /data 
    
    • 1
    • 2

    并为/apps和/data目录切换所属的用户为liulei及用户组为liulei

    sudo chown -R liulei:liulei/apps  
    sudo chown -R liulei:liulei/data  
    
    • 1
    • 2

    两个目录的作用分别为:/apps目录用来存放安装的框架,/data目录用来存放临时数据、HDFS数据、程序代码或脚本。
    执行 ls -l 命令

    ls -l  
    
    • 1

    可以看到根目录下/apps和/data目录所属用户及用户组已切换为liulei:liulei

    4.配置HDFS。
    创建/data/hadoop1目录,用来存放相关安装工具,如jdk安装包jdk-7u75-linux-x64.tar.gz及hadoop安装包hadoop-2.6.0-cdh5.4.5.tar.gz。

    mkdir -p /data/hadoop
    
    • 1

    切换目录到/data/hadoop1目录,使用wget命令,下载所需的hadoop安装包jdk-7u75-linux-x64.tar.gz及hadoop-2.6.0-cdh5.4.5.tar.gz。
    注:请自行到官网下载相应的安装包。

      cd /data/hadoop
     下载 jdk-7u75-linux-x64.tar.gz  
      下载 hadoop-2.6.0-cdh5.4.5.tar.gz  
    
    • 1
    • 2
    • 3

    5.安装jdk。将/data/hadoop1目录下jdk-7u75-linux-x64.tar.gz 解压缩到/apps目录下。

    tar -xzvf /data/hadoop1/jdk-7u75-linux-x64.tar.gz -C /apps
    其中,tar -xzvf 对文件进行解压缩,-C 指定解压后,将文件放到/apps目录下。
    切换到/apps目录下,我们可以看到目录下内容如下:

    cd /apps/  
    ls -l  
    
    • 1
    • 2

    下面将jdk1.7.0_75目录重命名为java,执行:

    mv /apps/jdk1.7.0_75/  /apps/java  
    
    • 1

    6.下面来修改环境变量:系统环境变量或用户环境变量。我们在这里修改用户环境变量。

    sudo vim ~/.bashrc  
    
    • 1

    输入上面的命令,打开存储环境变量的文件。空几行,将java的环境变量,追加进用户环境变量中。

    #java  
    export JAVA_HOME=/apps/java  
    export PATH=$JAVA_HOME/bin:$PATH  
    
    • 1
    • 2
    • 3

    输入Esc, 进入vim命令模式,输入 :wq !进行保存。
    让环境变量生效。

    source ~/.bashrc  
    
    • 1

    执行source命令,让java环境变量生效。执行完毕后,可以输入java,来测试环境变量是否配置正确。如果出现下面界面,则正常运行。

    7.下面安装hadoop,切换到/data/hadoop1目录下,将hadoop-2.6.0-cdh5.4.5.tar.gz解压缩到/apps目录下。

    cd /data/hadoop1  
    tar -xzvf /data/hadoop1/hadoop-2.6.0-cdh5.4.5.tar.gz -C /apps/  
    
    • 1
    • 2

    为了便于操作,我们也将hadoop-2.6.0-cdh5.4.5重命名为hadoop。

    mv /apps/hadoop-2.6.0-cdh5.4.5/ /apps/hadoop  
    
    • 1

    8.修改用户环境变量,将hadoop的路径添加到path中。先打开用户环境变量文件。

    sudo vim ~/.bashrc
    
    • 1

    将以下内容追加到环境变量~/.bashrc文件中。

    #hadoop  
    export HADOOP_HOME=/apps/hadoop  
    export PATH=$HADOOP_HOME/bin:$PATH  
    
    • 1
    • 2
    • 3

    让环境变量生效。

    source ~/.bashrc  
    
    • 1

    验证hadoop环境变量配置是否正常

    hadoop version
    
    • 1

    9.下面来修改hadoop本身相关的配置。首先切换到hadoop配置目录下。

    cd /apps/hadoop/etc/hadoop  
    
    • 1

    10.输入vim /apps/hadoop/etc/hadoop/hadoop-env.sh,打开hadoop-env.sh配置文件。

    vim /apps/hadoop/etc/hadoop/hadoop-env.sh  
    
    • 1

    将下面JAVA_HOME追加到hadoop-env.sh文件中。

    export JAVA_HOME=/apps/java  
    
    • 1

    11.输入vim /apps/hadoop/etc/hadoop/core-site.xml,打开core-site.xml配置文件。

    vim /apps/hadoop/etc/hadoop/core-site.xml  
    
    • 1

    添加下面配置到与标签之间。

      
        hadoop.tmp.dir  
        /data/tmp/hadoop/tmp  
      
      
        fs.defaultFS  
        hdfs://0.0.0.0:9000  
      
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    这里有两项配置:
    一项是hadoop.tmp.dir,配置hadoop处理过程中,临时文件的存储位置。这里的目录/data/tmp/hadoop/tmp需要提前创建。
    另一项是fs.defaultFS,配置hadoop HDFS文件系统的地址。

    12.输入vim /apps/hadoop/etc/hadoop/hdfs-site.xml,打开hdfs-site.xml配置文件。

    vim /apps/hadoop/etc/hadoop/hdfs-site.xml  
    
    • 1

    添加下面配置到与标签之间。

      
        dfs.namenode.name.dir  
        /data/tmp/hadoop/hdfs/name  
      
       
         dfs.datanode.data.dir  
         /data/tmp/hadoop/hdfs/data  
       
       
         dfs.replication  
         1  
       
       
         dfs.permissions.enabled  
         false  
       
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    配置项说明:
    dfs.namenode.name.dir,配置元数据信息存储位置;
    dfs.datanode.data.dir,配置具体数据存储位置;
    dfs.replication,配置每个数据库备份数,由于目前我们使用1台节点,所以,设置为1,如果设置为2的话,运行会报错。
    dfs.replications.enabled,配置hdfs是否启用权限认证
    另外/data/tmp/hadoop/hdfs路径,需要提前创建,所以我们需要执行

    mkdir -p /data/tmp/hadoop/hdfs  
    
    • 1

    13.输入vim /apps/hadoop/etc/hadoop/slaves,打开slaves配置文件。

    vim /apps/hadoop/etc/hadoop/slaves  
    
    • 1

    将集群中slave角色的节点的主机名,添加进slaves文件中。目前只有一台节点,所以slaves文件内容为:

    localhost  
    
    • 1

    14.下面格式化HDFS文件系统。执行:

    hadoop namenode -format  
    
    • 1

    15.切换目录到/apps/hadoop/sbin目录下。

    cd /apps/hadoop/sbin/  
    
    • 1

    16.启动hadoop的hdfs相关进程。

    ./start-dfs.sh  
    
    • 1

    这里只会启动HDFS相关进程。

    17.输入jps查看HDFS相关进程是否已经启动。

    jps  
    
    • 1

    我们可以看到相关进程,都已经启动。
    在这里插入图片描述
    18.下面可以再进一步验证HDFS运行状态。先在HDFS上创建一个目录。

    hadoop fs -mkdir /myhadoop1  
    
    • 1

    19.执行下面命令,查看目录是否创建成功。

    hadoop fs -ls -R /  
    
    • 1

    以上,便是HDFS安装过程。
    20.下面来配置MapReduce相关配置。再次切换到hadoop配置文件目录

    cd /apps/hadoop/etc/hadoop  
    
    • 1

    21.下面将mapreduce的配置文件mapred-site.xml.template,重命名为mapred-site.xml。

    mv /apps/hadoop/etc/hadoop/mapred-site.xml.template  /apps/hadoop/etc/hadoop/mapred-site.xml  
    
    • 1

    22.输入vim /apps/hadoop/etc/hadoop/mapred-site.xml,打开mapred-site.xml配置文件。

    vim /apps/hadoop/etc/hadoop/mapred-site.xml  
    
    • 1

    将mapreduce相关配置,添加到标签之间。

      
        mapreduce.framework.name  
        yarn  
      
    
    • 1
    • 2
    • 3
    • 4

    这里指定mapreduce任务处理所使用的框架。
    23.输入vim /apps/hadoop/etc/hadoop/yarn-site.xml,打开yarn-site.xml配置文件。

    vim /apps/hadoop/etc/hadoop/yarn-site.xml  
    
    • 1

    将yarn相关配置,添加到标签之间。

      
        yarn.nodemanager.aux-services  
        mapreduce_shuffle  
      
    
    • 1
    • 2
    • 3
    • 4

    这里的配置是指定所用服务,默认为空。
    24.下面来启动计算层面相关进程,切换到hadoop启动目录。

    cd /apps/hadoop/sbin/ 
    
    • 1

    25.执行命令,启动yarn。

    ./start-yarn.sh  
    
    • 1

    26.输入jps,查看当前运行的进程。
    在这里插入图片描述

    27.执行测试。
    切换到/apps/hadoop/share/hadoop/mapreduce目录下。

      cd /apps/hadoop/share/hadoop/mapreduce  
    
    • 1

    然后,在该目录下跑一个mapreduce程序,来检测一下hadoop是否能正常运行。

    hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.4.5.jar pi 3 3  
    
    • 1

    这个程序是计算数学中的pi值。当然暂时先不用考虑数据的准确性。当你看到下面流程的时候,表示程序已正常运行,hadoop环境也是没问题的。
    在这里插入图片描述
    至此,Hadoop 伪分布模式已经安装完成!

  • 相关阅读:
    2014软专算法题T1
    盒子阴影(重点)
    Kafka3.0.0版本——消费者(消费者组初始化流程图解)
    如何处理ChatGPT在文本生成中的语法错误和不合理性?
    字符串匹配——KMP算法
    论文解读(BSFDA)《Black-box Source-free Domain Adaptation via Two-stage Knowledge Distillation》
    实验室的服务器和本地pycharm怎么做图传
    Android 如何添加自定义字体
    pringBoot的全局异常处理汇总
    Spring MVC 中的数据验证技术
  • 原文地址:https://blog.csdn.net/m0_67403188/article/details/126367527