hadoop三节点完全分布式

  1. 三个节点关闭防火墙:
    service iptables stop
    chkconfig iptables off
  2. 三个节点需要修改主机名:
    vim /etc/sysconfig/network
    修改HOSTNAME属性,例如:
    HOSTNAME=hadoop01
    重新生效:
    source /etc/sysconfig/network
  3. 三个节点需要进行IP和主机名的映射:
    vim /etc/hosts
    添加:
    192.168.229.131 hadoop01
    192.168.229.132 hadoop02
    192.168.229.133 hadoop03
    注意:映射完成之后,三个节点的hosts文件应该是一样的
  4. 三个节点重启
    reboot
  5. 三个节点之间来配置免密登陆:
    ssh-keygen
    注意:这三句话在三个节点上都需要执行
    ssh-copy-id root@hadoop01
    ssh-copy-id root@hadoop02
    ssh-copy-id root@hadoop03
    执行完成之后,每一个节点测试一下是否能够免密登陆:
    ssh hadoop01
    ssh hadoop02
    ssh hadoop03
  6. 安装JDK
  7. 安装Zookeeper
    ***** 在第一个节点上 *****
  8. 解压Hadoop的安装包:
    tar -xvf hadoop-2.7.1_64bit.tar.gz
  9. 进入Hadoop安装目录的子目录中:
    cd hadoop-2.7.1/etc/hadoop/
  10. 编辑hadoop-env.sh:
    vim hadoop-env.sh
    修改:
    export JAVA_HOME=/home/presoftware/jdk1.8
    export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop
    保存退出之后,重新生效:
    source hadoop-env.sh
  11. 编辑core-site.xml
    vim core-site.xml
    添加: fs.defaultFS hdfs://ns hadoop.tmp.dir /home/software/hadoop-2.7.1/tmp ha.zookeeper.quorum hadoop01:2181,hadoop02:2181,hadoop03:2181
  12. 编辑hdfs-site.xml
    vim hdfs-site.xml
    添加: dfs.nameservices ns dfs.ha.namenodes.ns nn1,nn2 dfs.namenode.rpc-address.ns.nn1 hadoop01:9000 dfs.namenode.http-address.ns.nn1 hadoop01:50070 dfs.namenode.rpc-address.ns.nn2 hadoop02:9000 dfs.namenode.http-address.ns.nn2 hadoop02:50070 dfs.namenode.shared.edits.dir qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns dfs.journalnode.edits.dir /home/software/hadoop-2.7.1/tmp/journal 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.namenode.name.dir file:///home/software/hadoop-2.7.1/tmp/hdfs/name dfs.datanode.data.dir file:///home/software/hadoop-2.7.1/tmp/hdfs/data dfs.replication 3 dfs.permissions false
  13. 编辑mapred-site.xml
    cp mapred-site.xml.template mapred-site.xml
    vim mapred-site.xml
    添加:

    mapreduce.framework.name
    yarn
  14. 编辑yarn-site.xml
    vim yarn-site.xml
    添加: yarn.resourcemanager.ha.enabled true 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.resourcemanager.cluster-id ns-yarn yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname hadoop03
  15. 编辑slaves:
    vim slaves
    添加三个节点的主机名,例如:
    hadoop01
    hadoop02
    hadoop03
  16. 将第一个节点上Hadoop的安装目录整个拷贝给另外两个节点:
    回到software目录下,然后拷贝:
    scp -r hadoop-2.7.1 root@hadoop02:/home/software/
    scp -r hadoop-2.7.1 root@hadoop03:/home/software/
    ***** 集群配置及启动 *****
  17. 三个节点配置环境变量
    vim /etc/profile
    添加:
    export HADOOP_HOME=/home/software/hadoop-2.7.1
    export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
    保存退出,并且需要重新生效:
    source /etc/profile
  18. 三个节点启动Zookeeper
    cd /home/software/zookeeper-3.4.8/bin
    sh zkServer.sh start
    启动完成之后,查看状态确认启动:
    sh zkServer.sh status
  19. 在第一个节点上格式化Zookeeper:
    hdfs zkfc -formatZK
  20. 在三个节点上启动JournalNode
    hadoop-daemon.sh start journalnode
  21. 在第一个节点上格式化NameNode
    hadoop namenode -format
  22. 在第一个节点上启动NameNode
    hadoop-daemon.sh start namenode
  23. 在第二个节点上格式化NameNode
    hadoop namenode -bootstrapStandby
  24. 在第二个节点上启动NameNode
    hadoop-daemon.sh start namenode
  25. 三个节点启动DataNode
    hadoop-daemon.sh start datanode
  26. 在第一个和第二个节点上启动FailoverController切换节点状态
    hadoop-daemon.sh start zkfc
  27. 在第三个节点上启动yarn
    start-yarn.sh
  28. 在第一个节点上启动ResourceManager
    yarn-daemon.sh start resourcemanager

如果启动完成之后,节点个数发生缺少,可以试图单独启动
如果是缺少NameNode、DataNode、JournalNode、DFSZKFailoverController,利用hadoop-daemon.sh start xxx
如果是缺少ResourceManager、NodeManager,利用yarn-daemon.sh start XXXX
jps之后,第一个节点上:
Jps
QuorumPeerMain
NameNode
DataNode
JournalNode
NodeManager
ResourceManager
DFSZKFailoverController
第二个节点上:
Jps
QuorumPeerMain
NameNode
DataNode
JournalNode
NodeManager
DFSZKFailoverController
第三个节点上:
Jps
QuorumPeerMain
DataNode
JournalNode
ResourceManager
NodeManager

问题:
启动Hadoop完全分布式之前,一定要先启动Zookeeper

  1. hdfs zkfc -formatZK — HA is not available
  2. command not found:环境变量配置错了或者配置完之后没有source
  3. unkown host:hosts文件映射错误或者主机名写错
  4. already running as 2830 ,jps — kill -9 2830 重新启动
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值