CentOS-7安装Hadoop完全分布式模式(hadoop-2.9.2)

备忘录:为查询和总结记录。
记录:NO.226
本例环境:
        操作系统:CentOS-7-x86_64-DVD-1908
        JDK版本:jdk-8u251-linux-x64
        Hadoop版本:hadoop-2.9.2
        远程连接工具:SecureCRT 8.0
        官网地址:https://hadoop.apache.org/
        官网文档地址:https://hadoop.apache.org/docs
        官网下载地址:https://archive.apache.org/dist/hadoop/common/
        Linux环境准备:https://blog.csdn.net/zhangbeizhen18/article/details/107437516
1.Hadoop运行模式
        本地模式,Standalone Operation。
        伪分布式模式,Pseudo-Distributed Operation。
        完全分布式模式,Fully-Distributed Operation。
2.准备三台虚拟
        本例配置规划如下:
3.三台虚拟基础环境
3.1创建目录
        本例在/home/apps目录下创建module和software,安装包放在software备用,
        module目录存安装软件。
        命令如下:
        sudo mkdir module
        sudo mkdir software
        sudo chown learn:learn /home/apps/module/ /home/apps/software/
        注意:在部署操作使用一个普通用户learn进行操作。
        其中learn用户具备root操作权限,即在
        /etc/sudoers文件中新增
        learn    ALL=(ALL)       ALL
        在遇到需要root权限时,就在操作命令前添加sudo即可。
3.2本例jdk安装
        tar -zxvf jdk-8u251-linux-x64.rpm
        如上安装就在默认路径下,即/usr/java/jdk1.8.0_251-amd64中
        指定目录安装:
        tar -zxvf jdk-8u251-linux-x64.rpm -C /home/apps/module/    
        在 /etc/profile新增环境变量:
        vim /etc/profile
        ##JAVA_HOME
        export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
        export PATH=$PATH:$JAVA_HOME/bin
        生效:
        source /etc/profile
        验证java命令生效:
        java -version
3.3三台虚拟机防火墙均关闭
        关闭防火墙
        systemctl disable firewalld
        设置开机禁用防火墙
        systemctl stop firewalld
        查看防火墙状态
        systemctl status firewalld
4.三台虚拟机主机名与域名映射
        主机名:
        hostnamectl  set-hostname  hadoop151
        hostnamectl  set-hostname  hadoop152
        hostnamectl  set-hostname  hadoop153
        域名映射在/etc/hosts新增如下
        192.168.110.151  hadoop151
        192.168.110.152  hadoop152
        192.168.110.153  hadoop153
5.在Hadoop151机器安装hadoop并配置好集群
        部署规划按照:
        XX
5.1安装Hadoop
        在/home/apps/software/操作
        tar -zxvf hadoop-2.9.2.tar.gz -C /home/apps/module/
        安装后hadoop落盘在/home/apps/module/hadoop-2.9.2
5.2.配置Hadoop环境变量
        在 /etc/profile新增环境变量:
        vim /etc/profile
        sudo vim /etc/profile
        ###HADOOP_HOME 2020-7-19
        export HADOOP_HOME=/home/apps/module/hadoop-2.9.2
        export PATH=$PATH:$HADOOP_HOME/bin
        export PATH=$PATH:$HADOOP_HOME/sbin
        生效:
        source /etc/profile
        验证hadoop命令生效:
        hadoop
6.本例配置的文件
        数量全量配置
        配置HDFS
        hadoop-env.sh
        core-site.xml
        hdfs-site.xml
        配置YARN,历史日志服务器,日志聚合
        yarn-env.sh
        yarn-site.xml
        mapred-env.sh
        mapred-site.xml
6.配置集群-HDFS配置
        在/home/apps/module/hadoop-2.9.2/etc/hadoop目录中的配置文件 
6.1配置hadoop-env.sh
        ##JAVA_HOME
        export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
6.2配置core-site.xml
        
       
            fs.defaultFS
            hdfs://hadoop151:9000
       

       
       
            hadoop.tmp.dir
            /home/apps/module/hadoop-2.9.2/data/tmp
       
    
6.3配置hdfs-site.xml
        
       
            dfs.replication
            3
       

        
       
            dfs.namenode.secondary.http-address
            hadoop152:50090
       

7.配置集群-YARN配置
7.1配置yarn-env.sh
        ##JAVA_HOME
        export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
7.2配置yarn-site.xml
       
       
            yarn.nodemanager.aux-services
            mapreduce_shuffle
       

       
       
            yarn.resourcemanager.hostname
            hadoop153
       

7.3配置mapred-env.sh
        ##JAVA_HOME
        export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
7.3配置mapred-site.xml
        注意将mapred-site.xml.template复制一份为mapred-site.xml
        
       
            mapreduce.jobhistory.address
            hadoop151:10020
       

       
       
            mapreduce.jobhistory.webapp.address
            hadoop151:19888
       

       
       
            yarn.log-aggregation-enable
            true
       

       
       
            yarn.log-aggregation.retain-seconds
            259200
       

8.将hadoop151主机安装的hadoop环境拷贝到hadoop152和hadoop153
        在/home/apps中拷贝
        scp -r module/ root@hadoop152:/home/apps/module
        scp -r module/ root@hadoop153:/home/apps/module
        在hadoop152和hadoop153中的/home/apps目录修改所有权
        sudo chown learn:learn module/  -R  
        注意:-r和-R标示递归
9.将hadoop151主机安装的profile环境拷贝到hadoop152和hadoop153        
        scp /etc/profile root@hadoop152:/etc/profile
        scp /etc/profile root@hadoop153:/etc/profile
        分别在hadoop152和hadoop153
        source /etc/profile
10.启动与关闭
        在/home/apps/module/hadoop-2.9.2目录下操作
10.1逐个启动节点顺序如下
        格式化namenode:
        在格式化前先清空删除历史格式化的东西
        rm -rf data/  logs/
        格式化namenode:
        bin/hdfs namenode -format
        启动HDFS
        在hadoop151:
        sbin/hadoop-daemon.sh start namenode
        sbin/hadoop-daemon.sh start datanode
        在hadoop152:
        sbin/hadoop-daemon.sh start datanode
        sbin/hadoop-daemon.sh start secondarynamenode
        在hadoop153:
        sbin/hadoop-daemon.sh start datanode
        启动YARN
        在hadoop153:
        sbin/yarn-daemon.sh start resourcemanager
        sbin/yarn-daemon.sh start nodemanager
        在hadoop152:
        sbin/yarn-daemon.sh start nodemanager
        在hadoop151:
        sbin/yarn-daemon.sh start nodemanager
10.2逐个关闭节点顺序如下
        关闭YARN
        在hadoop151:
        sbin/yarn-daemon.sh stop nodemanager
        在hadoop152:
        sbin/yarn-daemon.sh stop nodemanager
        在hadoop153:
        sbin/yarn-daemon.sh stop nodemanager
        sbin/yarn-daemon.sh stop resourcemanager
        关闭HDFS
        在hadoop153:
        sbin/hadoop-daemon.sh stop datanode
        在hadoop152:
        sbin/hadoop-daemon.sh stop datanode
        在hadoop151:
        sbin/hadoop-daemon.sh stop datanode
        在hadoop152:
        sbin/hadoop-daemon.sh stop secondarynamenode
        在hadoop151:
        sbin/hadoop-daemon.sh stop namenode
10.3浏览器查看
        查看HDFS
        http://hadoop151:50070/
        或者
        192.168.110.151:50070
        查看MapReduce
        http://hadoop153:8088
10.4通过jps查看进程:
        hadoop151中进程:
        NodeManager
        DataNode
        NameNode
        hadoop152中进程:
        NodeManager
        DataNode
        SecondaryNameNode
        hadoop153中进程:
        DataNode
        NodeManager
        ResourceManager
11.配置免密登入
        以上,可以体验一下,3个台机器启动9个进程,逐个启动能做,但是费时。
        因此,配置ssh免密登陆是非常必要。
        本例NameNode在hadoop151中即,启动HDFS命令在这台机器执行,
        即hadoop151需要免密登入hadoop152和hadoop153.
        本例ResourceManager在hadoop153中即,启动YARN命令在这台机器执行,
        即hadoop153需要免密登入hadoop151和hadoop152.
11.1在hadoop151配置免密登入hadoop152和hadoop153
        使用learn用户配置
        在/home/learn进行配置
        使用ll -al查看是否有.ssh目录
        <1>.hadoop151生成秘钥和公钥
        ssh-keygen -t rsa
        生成过程中敲3次回车即可。
        <2>.在/home/learn/.ssh生成文件
        id_rsa 存储私钥文件
        id_rsa.pub 存储公钥文件
        <3>.配置hadoop151免密登入hadoop152
        ssh-copy-id  hadoop152
        在hadoop152的/home/learn/.ssh目录下生成authorized_keys
        authorized_keys即授权文件
        <4>.配置hadoop151免密登入hadoop153
        ssh-copy-id  hadoop153
        在hadoop153的/home/learn/.ssh目录下生成authorized_keys
        <5>.配置hadoop151免密登入hadoop151
        ssh-copy-id  hadoop151
        在hadoop153的/home/learn/.ssh目录下生成authorized_keys
        authorized_keys即授权文件
11.2在hadoop153配置免密登入hadoop151和hadoop152    
        使用learn用户配置
        在/home/learn进行配置
        使用ll -al查看是否有.ssh目录
        <1>.hadoop153生成秘钥和公钥
        ssh-keygen -t rsa
        <2>.在hadoop153的/home/learn/.ssh生成文件
        id_rsa 存储私钥文件
        id_rsa.pub 存储公钥文件
        <3>.配置hadoop153免密登入hadoop151
        ssh-copy-id  hadoop151
        在hadoop152的/home/learn/.ssh目录下生成authorized_keys
        authorized_keys即授权文件
        CentOS-7安装Hadoop完全分布式模式(hadoop-2.9.2)_第1张图片
        <4>.配置hadoop153免密登入hadoop152
        ssh-copy-id  hadoop152
        在hadoop153的/home/learn/.ssh目录下生成authorized_keys
        authorized_keys即授权文件
        <5>.配置hadoop153免密登入hadoop153
        ssh-copy-id  hadoop153
        在hadoop153的/home/learn/.ssh目录下生成authorized_keys
        authorized_keys即授权文件
        查看hadoop152的authorized_keys
        能看到learn@hadoop151和learn@hadoop153即可表明这两台计算机可以免密登入learn@hadoop152
11.3配置root用户从hadoop151免密登入hadoop152和hadoop153
        ssh-keygen -t rsa
        ssh-copy-id  hadoop151
        ssh-copy-id  hadoop152
        ssh-copy-id  hadoop153
11.4在/home/learn/.ssh的4个文件
        authorized_keys:存放授权过的无密登录服务器公钥
        id_rsa:生成的私钥
        id_rsa.pub:生成的公钥
        known_hosts:记录ssh访问过计算机的公钥
        公钥私钥是成对的:
        Generating public/private rsa key pair
12.配置hadoop集群启动
        在/home/apps/module/hadoop-2.9.2/etc/hadoop中        
        修改slaves文件
        此文件存放节点域名
        hadoop151
        hadoop152
        hadoop153
        主要此文件不能有任何空格字符
        将配置文件同步从hadoop151同步到hadoop152和hadoop153
        scp -r slaves learn@hadoop152:/home/apps/module/hadoop-2.9.2/etc/hadoop
        scp -r slaves learn@hadoop153:/home/apps/module/hadoop-2.9.2/etc/hadoop
        注意slaves存放信息,在集群启动时会读取
13.启动集群
        在/home/apps/module/hadoop-2.9.2中启动
13.1在hadoop151启动HDFS
        因为NameNode部署在这台服务器
        启动:
        sbin/start-dfs.sh
        关闭:
        sbin/stop-dfs.sh
        启动日志:
        CentOS-7安装Hadoop完全分布式模式(hadoop-2.9.2)_第2张图片
13.2在hadoop153启动YARN
        因为ResourceManager部署在这台服务器
        启动:
        sbin/start-yarn.sh
        关闭:
        sbin/stop-yarn.sh
        启动日志:
        CentOS-7安装Hadoop完全分布式模式(hadoop-2.9.2)_第3张图片
13.3使用jps查看进程
        hadoop151中进程:
        NodeManager
        DataNode
        NameNode
        hadoop152中进程:
        NodeManager
        DataNode
        SecondaryNameNode
        hadoop153中进程:
        DataNode
        NodeManager
        ResourceManager
13.4使用浏览器查看
        http://hadoop151:50070
        http://hadoop153:8088
13.5启动日志服务器
        在hadoop151中启动,配置就在这台服务器
        启动:
        sbin/mr-jobhistory-daemon.sh start historyserver
        关闭:
        sbin/mr-jobhistory-daemon.sh stop historyserver
        浏览器查看:
        http://hadoop151:19888
        在启动日志服务器后hadoop151进程:
        NameNode
        DataNode
        JobHistoryServer
        NodeManager
14.测试
14.1上传文件
        在hadoop151机器的/home/apps/module/hadoop-2.9.2
        在hdfs文件系统创建文件夹并上传文件
        bin/hdfs dfs -mkdir -p /user/learn/input
        创建多级目录需带 -p
        bin/hdfs dfs -put input/info.txt /user/learn/input
        在浏览器查看/user/learn/inputCentOS-7安装Hadoop完全分布式模式(hadoop-2.9.2)_第4张图片
15.运行典型的WordCount案例
        bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /user/learn/input /user/learn/output
        在浏览器查看/user/learn/outputCentOS-7安装Hadoop完全分布式模式(hadoop-2.9.2)_第5张图片
以上,感谢。

你可能感兴趣的:(Hadoop)