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
        <!-- 指定HDFS中NameNode的地址 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://hadoop151:9000</value>
        </property>
        <!-- 指定Hadoop运行时产生文件的存储目录 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/apps/module/hadoop-2.9.2/data/tmp</value>
        </property>    
6.3配置hdfs-site.xml
        <!-- 指定HDFS副本的数量 -->
        <property>
            <name>dfs.replication</name>
            <value>3</value>
        </property>
        <!-- 指定Hadoop辅助名称节点主机配置 -->
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>hadoop152:50090</value>
        </property>
7.配置集群-YARN配置
7.1配置yarn-env.sh
        ##JAVA_HOME
        export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
7.2配置yarn-site.xml
        <!-- Reducer获取数据的方式 -->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <!-- 指定YARN的ResourceManager的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop153</value>
        </property>
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
        <!-- 历史服务器地址 -->
        <property>
            <name>mapreduce.jobhistory.address</name>
            <value>hadoop151:10020</value>
        </property>
        <!-- 历史服务器web端地址 -->
        <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>hadoop151:19888</value>
        </property>
        <!-- 日志聚集功能使能为true即可 -->
        <property>
            <name>yarn.log-aggregation-enable</name>
            <value>true</value>
        </property>
        <!-- 日志保留时间设置为3天 -->
        <property>
            <name>yarn.log-aggregation.retain-seconds</name>
            <value>259200</value>
        </property>
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即授权文件
        
        <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
        启动日志:
        
13.2在hadoop153启动YARN
        因为ResourceManager部署在这台服务器
        启动:
        sbin/start-yarn.sh
        关闭:
        sbin/stop-yarn.sh
        启动日志:
        
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/input
15.运行典型的WordCount案例
        bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /user/learn/input /user/learn/output
        在浏览器查看/user/learn/output
以上,感谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 首先安装Java环境,Hadoop需要Java环境支持,可以使用yum命令安装: ``` yum install java-1.8.0-openjdk-devel.x86_64 ``` 2. 下载Hadoop安装包,可以从官网下载最新版本: ``` wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz ``` 3. 解压Hadoop安装包: ``` tar -zxvf hadoop-3.3.0.tar.gz ``` 4. 配置Hadoop环境变量,在/etc/profile文件中添加以下内容: ``` export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 然后执行以下命令使环境变量生效: ``` source /etc/profile ``` 5. 配置Hadoop分布式模式,修改以下配置文件: - /usr/local/hadoop/etc/hadoop/hadoop-env.sh ``` export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-0.el7_9.x86_64 ``` - /usr/local/hadoop/etc/hadoop/core-site.xml ``` <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` - /usr/local/hadoop/etc/hadoop/hdfs-site.xml ``` <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/usr/local/hadoop/hadoop_data/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/usr/local/hadoop/hadoop_data/hdfs/datanode</value> </property> </configuration> ``` - /usr/local/hadoop/etc/hadoop/mapred-site.xml ``` <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` - /usr/local/hadoop/etc/hadoop/yarn-site.xml ``` <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>localhost</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>1024</value> </property> <property> <name>yarn.nodemanager.resource.cpu-vcores</name> <value>1</value> </property> </configuration> ``` 6. 格式化Hadoop文件系统,执行以下命令: ``` hdfs namenode -format ``` 7. 启动Hadoop服务,执行以下命令: ``` start-all.sh ``` 8. 查看Hadoop服务状态,执行以下命令: ``` jps ``` 如果输出以下内容,则表示Hadoop服务已经启动成功: ``` 12345 NameNode 23456 DataNode 34567 ResourceManager 45678 NodeManager 56789 Jps ``` 9. 访问Hadoop Web界面,打开浏览器,输入以下地址: ``` http://localhost:9870/ ``` 如果能够正常访问,则表示Hadoop分布式安装成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值