Hadoop

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

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=PATH: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:PWDscp−rhadoop−3.1.3root@hadoop03: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=PATH: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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值