***** 全部三个节点 *****
1. 关闭防火墙
service iptables stop
chkconfig iptables off
2. 修改主机名,Hadoop主机名中不能出现_和-
vim /etc/sysconfig/network
修改其中的HOSTNAME属性的值,例如HOSTNAME=hadoop01
修改完成之后保存退出,然后需要重新生效
source /etc/sysconfig/network
3. 需要将主机名和ip进行映射
vim /etc/hosts
添加主机名 IP映射,例如:
192.168.245.130 hadoop01
192.168.245.131 hadoop02
192.168.245.132 hadoop03
注意,改完之后,三个节点中的hosts文件的内容应该是一样的
4. 重启
reboot
5. 三个节点之间配置免密互通
产生密钥
ssh-keygen
拷贝到三个节点上,注意是三个节点每一个节点都需要执行这三句话,保证任意两个节点之间能够免密互通
ssh-copy-id root@hadoop01
ssh-copy-id root@hadoop02
ssh-copy-id root@hadoop03
云主机密码:tarena2017Up;
最好三个节点都ssh连接一下看一下是否需要密码,如果连接不需要密码就能登录,那就表示免密配置成功
6. 安装JDK
7. 安装Zookeeper
***** 现在第一个节点上配置,然后拷贝给其他节点 *****
8. 将伪分布式重命名
mv hadoop-2.7.1 hadoop-standalone
9. 解压Hadoop的安装包
tar -xvf hadoop-2.7.1_64bit.tar.gz
10. 进入安装目录的子目录
cd hadoop-2.7.1/etc/hadoop/
11. 修改hadoop-env.sh
vim hadoop-env.sh
修改JAVA_HOME和HADOOP_CONF_DIR
export JAVA_HOME=/home/presoftware/jdk1.8
export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop
保存退出之后重新生效
source hadoop-env.sh
12. 修改core-site.xml
vim core-site.xml
添加:
<!--为集群起别名,以确定向Zookeeper注册的节点的名字-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns</value>
</property>
<!--指定Hadoop数据临时存放目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/software/hadoop-2.7.1/tmp</value>
</property>
<!--指定zookeeper的连接地址-->
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
13. 修改hdfs-site.xml
vim hdfs-site.xml
添加:
<!--注意要和core-site.xml中的名称保持一致-->
<property>
<name>dfs.nameservices</name>
<value>ns</value>
</property>
<!--ns集群下有两个namenode,分别为nn1, nn2-->
<property>
<name>dfs.ha.namenodes.ns</name>
<value>nn1,nn2</value>
</property>
<!--nn1的RPC通信-->
<property>
<name>dfs.namenode.rpc-address.ns.nn1</name>
<value>hadoop01:9000</value>
</property>
<!--nn1的http通信-->
<property>
<name>dfs.namenode.http-address.ns.nn1</name>
<value>hadoop01:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns.nn2</name>
<value>hadoop02:9000</value>
</property>
<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns.nn2</name>
<value>hadoop02:50070</value>
</property>
<!--指定namenode的元数据在JournalNode上存放的位置,这样,namenode2可以从journalnode集群里的指定位置上获取信息,达到热备效果-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/software/hadoop-2.7.1/tmp/journal</value>
</property>
<!-- 开启NameNode故障时自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.ns</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 配置隔离机制 -->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<!-- 使用隔离机制时需要ssh免登陆 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<!--配置namenode存放元数据的目录,可以不配置,如果不配置则默认放到hadoop.tmp.dir下-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/software/hadoop-2.7.1/tmp/hdfs/name</value>
</property>
<!--配置datanode存放元数据的目录,可以不配置,如果不配置则默认放到hadoop.tmp.dir下-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/software/hadoop-2.7.1/tmp/hdfs/data</value>
</property>
<!--配置复本数量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--设置用户的操作权限,false表示关闭权限验证,任何用户都可以操作-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
14. 编辑mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
添加:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
15. 编辑yarn-site.xml
vim yarn-site.xml
添加:
<!--配置yarn的高可用-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--指定两个resourcemaneger的名称-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!--配置rm1的主机-->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop01</value>
</property>
<!--配置rm2的主机-->
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop03</value>
</property>
<!--开启yarn恢复机制-->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!--执行rm恢复机制实现类-->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<!--配置zookeeper的地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
<!--执行yarn集群的别名-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>ns-yarn</value>
</property>
<!-- 指定nodemanager启动时加载server的方式为shuffle server -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定resourcemanager地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop03</value>
</property>
16. 编辑slaves - 这个文件是用于指定DataNode以及NodeManager的节点位置
vim slaves
添加三个节点的名字,例如
hadoop01
hadoop02
hadoop03
17. 需要将这个hadoop的安装目录拷贝给其他两个节点
scp -r hadoop-2.7.1 root@hadoop02:/home/software/
scp -r hadoop-2.7.1 root@hadoop03:/home/software/
***********************************************************
18. 三个节点需要配置环境变量
vim /etc/profile
在文件最后添加:
export HADOOP_HOME=/home/software/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存退出之后需要重新生效
source /etc/profile
19. 三个节点都需要启动Zookeeper
cd /home/software/zookeeper-3.4.7/bin
sh zkServer.sh start
sh zkServer.sh status
20. 在第一个节点上格式化Zookeeper - 实际上就是在Zookeeper上去注册节点
hdfs zkfc -formatZK
21. 在全部三个节点上启动JournalNode
hadoop-daemon.sh start journalnode
22. 在第一个节点上格式化NameNode
hadoop namenode -format
23. 在第一个节点上启动NameNode
hadoop-daemon.sh start namenode
24. 在第二个节点上格式化NameNode
hdfs namenode -bootstrapStandby
25. 在第二个节点上启动NameNode
hadoop-daemon.sh start namenode
26. 在全部三个节点上启动DataNode
hadoop-daemon.sh start datanode
27. 在第一个节点以及第二节点上来启动故障切换进程
hadoop-daemon.sh start zkfc
28. 在第三个节点上来启动yarn
start-yarn.sh
29. 在第一个节点上来单独启动resourcemanager
yarn-daemon.sh start resourcemanager
30. 从第二次启动开始,只需要用start-all.sh即可

如果启动成功,则各个节点的进程分布如下:
第一个节点8个:
Jps
NameNode
DataNode
JournalNode
ResourceManager
NodeMyarn-daemon.sh start resourcemanageranager
DFSZKFailoverController
QuorumPeerMain
第二个节点7个:
Jps
NameNode
DataNode
JournalNode
NodeManager
DFSZKFailoverController
QuorumPeerMain
第三个节点6个:
Jps
DataNode
JournalNode
ResourceManager
NodeManager
QuorumPeerMain

如果发现少了节点,可以试着单独启动一次:
hadoop-daemon.sh start namenode/datanode/journalnode/zkfc
yarn-daemon.sh start resourcemanager/nodemanager

Hadoop完全分布式配置的更多相关文章

  1. Data - Hadoop伪分布式配置 - 使用Hadoop2.8.0和Ubuntu16.04

    系统版本 anliven@Ubuntu1604:~$ uname -a Linux Ubuntu1604 4.8.0-36-generic #36~16.04.1-Ubuntu SMP Sun Feb ...

  2. Hadoop伪分布式配置

    一步一步来: 安装VMWARE简单,安装CentOS也简单 但是,碰到了一个问题:安装的虚拟机没有图形化界面 最后,我选择了CentOS-7-x86_64-DVD-1503-01.iso镜像 配置用户 ...

  3. Hadoop伪分布式配置:CentOS6.5(64)+JDK1.7+hadoop2.7.2

    java环境配置 修改环境变量 export JAVA_HOME=/usr/java/jdk1.7.0_79 export PATH=$PATH:$JAVA_HOME/bin export CLASS ...

  4. 转载:Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    原文 http://www.powerxing.com/install-hadoop/ 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单,书上有写到, ...

  5. Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    摘自: http://www.cnblogs.com/kinglau/p/3796164.html http://www.powerxing.com/install-hadoop/ 当开始着手实践 H ...

  6. Hadoop安装教程_单机/伪分布式配置

    环境 本教程使用 CentOS 6.4 32位 作为系统环境,请自行安装系统(可参考使用VirtualBox安装CentOS).如果用的是 Ubuntu 系统,请查看相应的 Ubuntu安装Hadoo ...

  7. 新手推荐:Hadoop安装教程_单机/伪分布式配置_Hadoop-2.7.1/Ubuntu14.04

    下述教程本人在最新版的-jre openjdk-7-jdk OpenJDK 默认的安装位置为: /usr/lib/jvm/java-7-openjdk-amd64 (32位系统则是 /usr/lib/ ...

  8. 在Linux(Centos7)系统上对进行Hadoop分布式配置以及运行Hadoop伪分布式实例

    在Linux(Centos7)系统上对进行Hadoop分布式配置以及运行Hadoop伪分布式实例                                                     ...

  9. Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04(转)

    http://www.powerxing.com/install-hadoop/ http://blog.csdn.net/beginner_lee/article/details/6429146 h ...

随机推荐

  1. layui中load具体用法

    遮盖窗体,demo: layer.load(,{ // content: "加载中...", shade: [0.4,'#000'], //0.1透明度的白色背景 time:* } ...

  2. JAVA javah

    { 用法:  javah [options] <classes>其中, [options] 包括:  -o <file>                输出文件 (只能使用 - ...

  3. Dart编程循环

    有时,某些指令需要重复执行.循环是一种理想的方法.循环表示必须重复的一组指令.在循环的上下文中,重复被称为迭代 . 下图说明了循环的分类 让我们开始讨论确定循环.迭代次数是确定/固定的循环称为确定循环 ...

  4. 阿里巴巴持续投入,etcd 正式加入 CNCF

    摘要: 2018 年 12 月 11 日,在 KubeCon + CloudNativeCon 北美峰会上,etcd 项目正式加入 CNCF. 2018 年 12 月 11 日,在 KubeCon + ...

  5. javascript 插件开发教程

    如何自己开发一款js或者jquery插件 引子 初学js不久,接触到js插件开发,其实很简单,不像网上吹嘘的那么复杂,又要掌握js,掌握jquery,其实没有那么复杂,下面简单介绍,供学习使用. jq ...

  6. faster-rcnn代码阅读-roi-data层

    这一节讲述roi-data层,和这一层有关的结构图如下: roi-data层的prototxt定义如下: layer { name: 'roi-data' type: 'Python' bottom: ...

  7. 2019 牛客多校第六场 B Shorten IPv6 Address

    题目链接:https://ac.nowcoder.com/acm/contest/886/B 题目大意 给定一个 128 位的二进制 ip 地址,让你以 16 位一组,每组转成 16 进制,用冒号连接 ...

  8. 关于DEBUG的一点体会

    目录 1. 看待问题 2. 为什么要debug 3. 我理解的问题定位能力 4. debug能力模型的4个层级 5. 小结与扩展 1. 看待问题 遇到更高级的bug,解决更重要的问题,是开发同学的迭代 ...

  9. Ubuntu环境下Postgres源码文件编译安装步骤

    step1:官网下载postgres源码 URL:https://www.postgresql.org/ftp/source/ step2:解压源码文件 tar -zxvf postgresql-12 ...

  10. 今天真的很SB

    在公司Review系统网页上,写了一篇几百字的作文, 然后突然手一抖,竟然没有保存就切换页面了, 赶快退回来...没了,啥都没了... 怎么办... 还好洒家N久之前看了一本什么什么杂七杂八的书, 里 ...