Hadoop

本文详细介绍了如何在Centos7.5环境下部署Hadoop 3.1.3,包括伪分布式和完全分布式两种模式。内容涵盖环境配置、主机名设置、免密登录、配置Hadoop相关参数、启动与验证等关键步骤,适合初学者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hadoop 3.1.3 伪分布式部署

安装环境:Centos7.5,只少2核4G
提前准备:Linux中要安装JDK8,Zookeeper-3.5.8

  1. 关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld
  2. 修改主机名 - Hadoop集群中,主机名中尽量不要出现-或者_
    vim /etc/hostname
    将原来的主机名删除,添加自己指定的主机名
  3. 需要将主机名和IP进行映射
    vim /etc/hosts
    进入文件之后,除了127.0.0.1以及::1这开头的两行以外,其余的行全部删除
    之后添加当前主机的IP 主机名,例如
    10.10.153.69 hadoop01
  4. 关闭SELINUX
    vim /etc/selinux/config
    将SELINUX属性的值改为disabled
  5. 重启
    reboot
  6. 配置免密登录
    ssh-keygen
    ssh-copy-id
    输入主机的密码
    测试是否免密成功:ssh hadoop01
    如果不需要密码,那么说明免密成功,那么输入logout
  7. 进入/home/software目录,来上传或者下载Hadoop。如果是云主机,那么请利用下面的地址来下载Hadoop,严禁上传
    cd /home/software/
    wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/hadoop-3.1.3.tar.gz
  8. 解压Hadoop安装包
    tar -xvf hadoop-3.1.3.tar.gz
  9. 进入Hadoop的配置文件目录
    cd hadoop-3.1.3/etc/hadoop/
  10. 编辑文件
    vim hadoop-env.sh
    在文件中添加JAVA_HOME,值是JDK的安装路径
    export JAVA_HOME=/home/software/jdk1.8
    保存退出,重新生效这个文件
    source hadoop-env.sh
  11. 编辑文件
    vim core-site.xml
    添加内容

    fs.default.name
    hdfs://hadoop01:9000


    hadoop.tmp.dir
    /home/software/hadoop-3.1.3/tmp
  12. 编辑文件
    vim hdfs-site.xml
    添加内容

    dfs.replication
    1
  13. 编辑文件
    vim mapred-site.xml
    添加内容

    mapreduce.framework.name
    yarn
  14. 编辑文件
    vim yarn-site.xml
    添加内容

    yarn.resourcemanager.hostname
    hadoop01


    yarn.nodemanager.aux-services
    mapreduce_shuffle
  15. 编辑文件
    vim workers ------- 注意,如果是在Hadoop2.X,那么这个文件是slaves
    将原来的localhost删除掉,然后添加当前主机的主机名
  16. 配置环境变量
    vim /etc/profile
    在文件末尾添加
    export HADOOP_HOME=/home/software/hadoop-3.1.3
    export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
    保存退出,重新生效这个文件
    source /etc/profile
    通过hadoop version命令来确定配置是否有效
  17. 第一次启动Hadoop之前,需要先进行一次格式化
    hadoop namenode -format
    如果出现了Storage directory /home/software/hadoop-3.1.3/tmp/dfs/name has been successfully formatted.表示格式化成功
  18. 进入Hadoop安装目录的子目录sbin下
    cd /home/software/hadoop-3.1.3/sbin/
  19. 编辑文件
    vim start-dfs.sh
    在文件头部添加
    HDFS_DATANODE_USER=root
    HDFS_DATANODE_SERCURE_USER=hdfs
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root
  20. 启动HDFS
    start-dfs.sh
  21. 通过jps查看,会发现三个进程
    NameNode
    DataNode
    SecondaryNameNode
  22. 编辑文件
    vim start-yarn.sh
    在文件头部添加
    YARN_RESOURCEMANAGER_USER=root
    HDFS_DATANODE_SECURE_USER=hdfs
    YARN_NODEMANAGER_USER=root
  23. 启动YARN
    start-yarn.sh
  24. 通过jps查看,会发现多出来两个进程
    ResourceManager
    NodeManager

可能出现的问题的解决方案
25. 如果出现了Name or Service not known或者是UnknownHost之类的问题,那么检查hosts文件是否配置正确,或者是主机名是否写对
26. 如果出现了commandc not found,那么检查环境变量是否正确,或者修改完环境变量之后是否进行了source
27. 在第一次关闭Hadoop之前,同样修改stop-dfs.sh以及stop-yarn.sh
28. 之后,再次启动Hadoop,那么可以使用start-all.sh。如果单独启动HDFS,那么使用start-dfs.sh;如果单独启动YAR,那么使用start-yarn.sh。如果要关闭,将start命令改成stop命令即可

完全分布式部署

硬件配置:2核4G*3台
环境配置:JDK1.8+Zookeeper3.5.7

  1. 三台主机关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld
  2. 修改三台主机的主机名
    vim /etc/hostname
    修改对应的主机名,最好是hadoop01~hadoop03
  3. 将主机名和IP进行映射
    vim /etc/hosts
    然后将三台主机的主机名和IP配置
  4. 关系SELINUX
    vim /etc/selinux/config
    将SELINUX的值改为disabled
  5. 三台主机重启
    reboot
  6. 三台主机之间需要相互免密
    ssh-keygen
    ssh-copy-id root@hadoop01
    ssh hadoop01
    如果不需要密码,那么输入logout
    ssh-copy-id root@hadoop02
    ssh hadoop02
    如果不需要密码,那么输入logout
    ssh-copy-id root@hadoop03
    ssh hadoop03
    如果不需要密码,那么输入logout
  7. 在第一台主机上进入software目录,下载或者上传Hadoop的安装包
    cd /home/software/
    云主机下载地址:wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/hadoop-3.1.3.tar.gz
  8. 先将伪分布式保留下来
    mv hadoop-3.1.3 hadoop-alone
  9. 解压
    tar -xvf hadoop-3.1.3.tar.gz
  10. 进入Hadoop的配置目录
    cd /home/software/hadoop-3.1.3/etc/hadoop/
  11. 编辑文件
    vim hadoop-env.sh
    添加JAVA_HOME,例如
    export JAVA_HOME=/home/software/jdk1.8
    保存退出,重新生效
    source hadoop-env.sh
  12. 编辑文件
    vim core-site.xml
    添加内容 fs.defaultFS hdfs://ns hadoop.tmp.dir /home/software/hadoop-3.1.3/tmp ha.zookeeper.quorum hadoop01:2181,hadoop02:2181,hadoop03:2181
  13. 编辑文件
    vim hdfs-site.xml
    添加内容 dfs.nameservices ns dfs.ha.namenodes.ns nn1,nn2, nn3 dfs.namenode.rpc-address.ns.nn1 hadoop01:9000 dfs.namenode.rpc-address.ns.nn2 hadoop02:9000 dfs.namenode.rpc-address.ns.nn3 hadoop03:9000 dfs.namenode.http-address.ns.nn1 hadoop01:9870 dfs.namenode.http-address.ns.nn2 hadoop02:9870 dfs.namenode.http-address.ns.nn3 hadoop03:9870 dfs.namenode.shared.edits.dir qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns dfs.journalnode.edits.dir /home/software/hadoop-3.1.3/tmp/journal dfs.namenode.name.dir file:///home/software/hadoop-3.1.3/tmp/hdfs/name dfs.datanode.data.dir file:///home/software/hadoop-3.1.3/tmp/hdfs/data dfs.ha.automatic-failover.enabled true dfs.client.failover.proxy.provider.ns org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider dfs.ha.fencing.methods sshfence dfs.ha.fencing.ssh.private-key-files /root/.ssh/id_rsa dfs.replication 3 dfs.permissions false
  14. 编辑文件
    vim mapred-site.xml
    添加内容

    mapreduce.framework.name
    yarn
  15. 编辑文件
    vim yarn-site.xml
    添加内容 yarn.resourcemanager.ha.enabled true yarn.resourcemanager.cluster-id ns-yarn yarn.resourcemanager.ha.rm-ids rm1,rm2 yarn.resourcemanager.hostname.rm1 hadoop01 yarn.resourcemanager.hostname.rm2 hadoop03 yarn.resourcemanager.recovery.enabled true yarn.resourcemanager.store.class org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore yarn.resourcemanager.zk-address hadoop01:2181,hadoop02:2181,hadoop03:2181 yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname hadoop03
  16. 编辑文件
    vim workers
    删除掉localhost,将三台主机的主机名写上
  17. 进入Hadoop安装目录的子目录sbin下
    cd /home/software/hadoop-3.1.3/sbin/
  18. 编辑文件
    vim start-dfs.sh
    在文件头部添加
    HDFS_DATANODE_USER=root
    HDFS_DATANODE_SECURE_USER=hdfs
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root
    HDFS_JOURNALNODE_USER=root
    HDFS_ZKFC_USER=root
  19. 编辑文件
    vim start-yarn.sh
    在文件头部添加
    YARN_RESOURCEMANAGER_USER=root
    YARN_NODEMANAGER_USER=root
    HDFS_DATANODE_SECURE_USER=yarn
  20. 远程拷贝给另外两台主机
    cd /home/software/
    scp -r hadoop-3.1.3 root@hadoop02: P W D s c p − r h a d o o p − 3.1.3 r o o t @ h a d o o p 03 : PWD scp -r hadoop-3.1.3 root@hadoop03: PWDscprhadoop3.1.3root@hadoop03:PWD
  21. 三台主机配置环境变量
    vim /etc/profile
    在文件末尾添加
    export HADOOP_HOME=/home/software/hadoop-3.1.3
    export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
    保存退出,重新生效
    source /etc/profile
    可以通过hadoop version来查看是否配置成功
  22. 三台主机需要启动Zookeeper
    cd /home/software/apache-zookeeper-3.5.7-bin/bin
    sh zkServer.sh start
    sh zkServer.sh status
    如果出现了1个leader+2个follower表示启动成功
  23. 在第一台主机上格式化Zookeeper - 实际上就是在Zookeeper上注册节点
    hdfs zkfc -formatZK
    如果出现Successfully created /hadoop-ha/ns in ZK.表示格式化成功
  24. 在三台主机上启动JournalNode
    hdfs --daemon start journalnode
  25. 在第一台主机上格式化NameNode
    hadoop namenode -format
    如果出现Storage directory /home/software/hadoop-3.1.3/tmp/hdfs/name has been successfully formatted.表示格式化成功
  26. 在第一台主机上启动NameNode
    hdfs --daemon start namenode
  27. 在第二台和第三台主机上格式化NameNode
    hdfs namenode -bootstrapStandby
    如果出现Storage directory /home/software/hadoop-3.1.3/tmp/hdfs/name has been successfully formatted.表示格式化成功
  28. 在第二台和第三台主机上启动NameNode
    hdfs --daemon start namenode
  29. 在三台节点上启动DataNode
    hdfs --daemon start datanode
  30. 在三个节点上启动zkfc
    hdfs --daemon start zkfc
  31. 在第三台主机上启动YARN
    start-yarn.sh
    通过jps查看,第一台主机上出现
    NameNode
    DataNode
    JournalNode
    ResourceManager
    NodeManager
    DFSZKFailoverController
    QuorumPeerMain
    第二台主机上出现
    NameNode
    DataNode
    JournalNode
    NodeManager
    DFSZKFailoverController
    QuorumPeerMain
    第三台主机上出现
    NameNode
    DataNode
    JournalNode
    ResourceManager
    NodeManager
    DFSZKFailoverController
    QuorumPeerMain
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值