hadoop3节点hdfs ha,yarn ha配置
2019独角兽企业重金招聘Python工程师标准>>>
0 各机器职责
进程 | node1 | node2 | node3 | |
NN |
NameNode |
1 | 1 | |
DN |
DateNode |
1 | 1 | 1 |
JN |
JournalNode |
1 | 1 | 1 |
YARN |
ResourceManage |
1 | 1 | |
NodeManager | 1 | 1 | 1 | |
ZOO | QuorumPeerMain | 1 | 1 | 1 |
ZKFC |
DFSZKFailoverController |
1 | 1 |
1 系统ip,hostname,hosts,环境变量配置
这里三台机器如下,具体配置略,java环境配置略
192.168.158.101 node1
192.168.158.102 node2
192.168.158.103 node3
每台机器环境变量 配置:
执行vi ~/.bash_profile,加入如下内容(目录大家根据自己实际情况更改)
export ZOOKEEPER_HOME=/home/hadoop/app/zookeeper
export HADOOP_HOME=/home/hadoop/app/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
2 免密码配置
1 检查每台机器的防火墙是否关闭 ,防火墙需要关闭(必须,博主这一步忘了后面zookeeper怎么也不能启动成功)
2 关闭Selinux,避免对其他服务影响,具体影响博主还不清楚,知道后更新
3 配置免密码登录
a) 如果用户路径下存在.ssh文件夹,需要先删除
b) 所有节点生成RSA密钥对,命令如下:
ssh-keygen -t rsa
一路回车就好
c) 在所有节点之间建立两两互信。
步骤如下:
将每个机器生成的公钥id_rsa.pub的内容复制到本机的 ~/.ssh/ 的authorized_keys 文件 里。命令如下:
cp id_rsa.pub authorized_keys
然后,将各个机器的 authorized_keys 文件中的内容追加到其余机器上的 ~/.ssh/ authorized_keys 文件中(包括
namenode和datanode)
d) 修改权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
e) 经过以上步骤,ssh配置也已完成。通过以下命令验证:
ssh 节点名
第一次连接需要密码,输入yes和机器密码就可以,以后即不用再输入。
注意: .ssh是700 .ssh下的文件是600 这一步也千万别忘了,博主吃过亏的
3 配置zookeeper
1) 下载zookeeper包,并解压到/home/hadoop/app/
2) 编辑安装路径下conf/zoo.cfg文件,加入以下内容:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/data/zookeeper
clientPort=2181
#server.x=主机名:F和F之间同步和通信端口:选举端口
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
右边可以配置两个端口,第一个端口用于 F和L之间的数据同步和其它通信,第二个端口用于Leader 选举过程中投票通信。
在 Node1、Node2、Node3 的$dataDir 下新建 myid 文件,分别放入各自的 server.id,比如 Node3 的 myid
文件中写入3.
3) 将zookeeper的文件夹分发到node2、node3
4) 配置环境变量
5) Zookeeper启动并检查状态
启动zkServer.sh start
查看状态zkServer.shstatus
注意:每个节点启动后再查看状态,三节点的话必须两个以上启动成功才算成功
4 HDFS 集群 HA 环境搭建
1 配置hadoop-env.sh
将JAVA_HOME设置为具体路径,如下
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_05
2 配置core-site.xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://cluster1</value></property><property><name>hadoop.tmp.dir</name><value>/home/hadoop/data/tmp</value></property><property><name>ha.zookeeper.quorum</name><value>node1:2181,node2:2181,node3:2181</value></property>
</configuration>
3 配置hdfs-site.xml
<configuration><property><name>dfs.permissions</name><value>false</value></property><property><name>dfs.permissions.enabled</name><value>false</value></property><property><name>dfs.name.dir</name><value>/home/hadoop/data/hdfs/name</value></property><property><name>dfs.data.dir</name><value>/home/hadoop/data/hdfs/data</value></property><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.nameservices</name><value>cluster1</value></property><property><name>dfs.ha.namenodes.cluster1</name><value>node1,node2</value></property><property><name>dfs.namenode.rpc-address.cluster1.node1</name><value>node1:9000</value></property><property><name>dfs.namenode.http-address.cluster1.node1</name><value>node1:50070</value></property><property><name>dfs.namenode.rpc-address.cluster1.node2</name><value>node2:9000</value></property><property><name>dfs.namenode.http-address.cluster1.node2</name><value>node2:50070</value></property><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://node1:8485;node2:8485;node3:8485/cluster1</value></property><property><name>dfs.ha.automatic-failover.enabled.cluster1</name><value>true</value></property><property><name>dfs.client.failover.proxy.provider.cluster1</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><property><name>dfs.journalnode.edits.dir</name><value>/home/hadoop/data/journaldata/jn</value></property><property><name>dfs.ha.fencing.methods</name><value>shell(/bin/true)</value></property><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/home/hadoop/.ssh/id_rsa</value></property><property><name>dfs.namenode.handler.count</name><value>100</value></property>
</configuration>
4 配置slave
node1
node2
node3
5 启动
1、启动Zookeeper集群
分别在node1、node2、node3上执行
zkServer.sh start
然后执行
zkServer.sh status
查看是否启动,确保启动后执行后面的步骤
2、格式化Zookeeper集群,目的是在Zookeeper集群上建立HA的相应节点
在node1上执行(任选一节点)
hdfs zkfc -formatZK
3、启动Journal集群
分别在node1、node2、node3分别上执行
hadoop-daemon.sh start journalnode
4、格式化集群上的一个NameNode
从node1和node2上任选一个即可,这里我是在os1
hdfs namenode -format
5、启动集群中步骤4中的NameNode
启动os1上的NameNode
hadoop-daemon.sh start namenode
6、把NameNode的数据同步到另一个NameNode上
把NameNode的数据同步到node2上,在node2中执行
hdfs namenode –bootstrapStandby
7、启动另个一NameNode
在node2上执行
hadoop-daemon.sh start namenode
8、启动所有的DataNode
在node1中执行
hadoop-daemons.sh start datanode
9、启动ZKFC
分别在node1、node2上执行
hadoop-daemon.sh start zkfc
6 YARN-HA环境搭建
1 配置mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>
2 配置yarn-site.xml
<property><name>yarn.resourcemanager.ha.enabled</name><value>true</value>
</property>
<!--是否启用自动故障转移。默认情况下,在启用 HA 时,启用自动故障转移。-->
<property><name>yarn.resourcemanager.ha.automatic-failover.enabled</name><value>true</value>
</property>
<!--启用内置的自动故障转移。默认情况下,在启用 HA 时,启用内置的自动故障转移。-->
<property><name>yarn.resourcemanager.ha.automatic-failover.embedded</name><value>true</value>
</property>
<property><name>yarn.resourcemanager.cluster-id</name><value>yarn-rm-cluster</value>
</property>
<property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value>
</property>
<property><name>yarn.resourcemanager.hostname.rm1</name><value>node1</value>
</property>
<property><name>yarn.resourcemanager.hostname.rm2</name><value>node2</value>
</property>
<!--启用 resourcemanager 自动恢复-->
<property><name>yarn.resourcemanager.recovery.enabled</name><value>true</value>
</property>
<!--配置 Zookeeper 地址-->
<property><name>yarn.resourcemanager.zk.state-store.address</name><value>node1:2181,node2:2181,node3:2181</value>
</property>
<property><name>yarn.resourcemanager.zk-address</name><value>node1:2181,node2:2181,node3:2181</value>
</property>
<property><name>yarn.resourcemanager.address.rm1</name><value>node1:8032</value>
</property>
<property><name>yarn.resourcemanager.address.rm2</name><value>node2:8032</value>
</property>
<property><name>yarn.resourcemanager.scheduler.address.rm1</name><value>node1:8034</value>
</property>
<property><name>yarn.resourcemanager.webapp.address.rm1</name><value>node1:8088</value>
</property>
<property><name>yarn.resourcemanager.scheduler.address.rm2</name><value>node2:8034</value>
</property>
<property><name>yarn.resourcemanager.webapp.address.rm2</name><value>node2:8088</value>
</property>
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property>
<!--执行 MapReduce 需要配置的 shuffle 过程-->
<property><name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
3 将上面两个配置文件分发到各节点,然后按下面步骤启动
a)在node1执行 sbin/start-yarn.sh
jps查看ResourceManager进程是否启动,如果没有看日志排查问题后重新执行
b) node1中成功启动ResourceManager进城后在node2执行
sbin/yarn-daemon.sh start resourcemanager
同时打开一下web界面。
http://node1:8088
http://node2:8088
关闭其中一个resourcemanager,然后再启动,看看这个过程的web界面变化。
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh stop resourcemanager
4 检查一下ResourceManager状态
bin/yarn rmadmin -getServiceState rm1
bin/yarn rmadmin -getServiceState rm2
7 Wordcount示例测试
1. 准备test.txt文件,内容如下:
hello world hello hadoop
2 .hdfs中创建test目录并上传测试文件,然后执行hadooop自带wordcount程序
hadoop fs - mkdir -p /testhadoop fs -put test.txt /testhadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /test/test.txt /test/out/
出现下图代表执行成功,大家可以通过”hadoop fs -ls 输出目录“自行去看下执行结果
转载于:https://my.oschina.net/firstBlooded/blog/550198
hadoop3节点hdfs ha,yarn ha配置相关推荐
- 什么是Hadoop - HDFS - MapReduce - YARN - HA
Hadoop 为什么要有Hadoop? 从计算机诞生到现今,积累了海量的数据,这些海量的数据有结构化.半结构化.非 结构的数据,并且这些海量的数据存储和检索就成为了一大问题. 我们都知道大数据技术难题 ...
- Hadoop【部署 02】hadoop-3.1.3 单机版YARN(配置、启动停止shell脚本修改及服务验证)
1. 修改配置 进入 ${HADOOP_HOME}/etc/hadoop/ 目录下,修改以下配置: mapred-site.xml [root@tcloud ~]# vim /usr/local/ha ...
- HDFS和YARN集群新增节点
目录 静态新增 动态新增 Hadoop HDFS 数据自动平衡脚本使用方法 静态新增 静态新增的方式,相当于我们最开始部署Hadoop集群规划一样,停止集群,新增一个DateNode数据节点,这种方法 ...
- HDFS HA介绍及配置理解
1.HDFS HA介绍 相比于Hadoop1.0,Hadoop 2.0中的HDFS增加了两个重大特性,HA和Federaion.HA即为High Availability,用于解决NameNode单点 ...
- DataX Hdfs HA(高可用)配置支持
官方文档地址 DataX HdfsReader 插件文档 DataX HdfsWriter 插件文档 Reader插件文档明确说明 而配置中又有HA相关配置 没办法只能试试呗!Reader和Write ...
- hadoop集群的yarn ha配置,亲测
YARN HA部署 yarn-site.xml文件:<!--启用resourcemanager ha--><property><name>yarn.nodemana ...
- HADOOP HA之NameNode HA集群配置与应用
目录 前言 一.HADOOP HA之NameNode HA集群配置 1.修改hadoop-env.sh 2.修改core-site.xml 3.修改hdfs-site.xml 4.修改workers ...
- 葵花宝典--HDFS高可用HA
一.HA概述 所谓谓HA(High Availablity),即高可用(7*24小时不中断服务).实现高可用最关键的策略是消除单点故障.HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN ...
- [Hadoop][笔记]4个节点搭建Hadoop2.x HA测试集群
为什么80%的码农都做不了架构师?>>> 搭建Hadoop2.x HA 1.机器准备 虚拟机 4台 10.211.55.22 node1 10.211.55.23 node2 ...
最新文章
- php框架使用统计_2015 年最好的 PHP 框架调查统计
- 用Fedora发行版本打包RPM,似乎无法对打好的RPM包进行签名?
- dpkg: 錯誤: 分析檔案 '/var/lib/dpkg/updates/0001' 的第 0 行附近: 欄位名稱 `#padding' 中有換行
- 手机内存卡转化linux,Android 往手机内存卡上存储用户名与密码的操作
- Linux中文件查找技术大全
- 计算机三级信息管理技术考试大纲
- 7-11 找最长的字符串 (15 分)
- jsp实现简单购物车页面
- 移动光猫RAISECOM的配置方法
- centos gedit 字体大小_【写作技巧】毕业论文格式要求及字体大小
- 年末巨献|大数据盛会!企业大数据落地高峰论坛倒计时,速速报名!
- 自定义配置log日志
- 写得非常好的关于CV行业的分析
- 苏菲兔子和魔法师小麦
- Java同步器之AbstractOwnableSynchronizer详解
- springboot+APP基于Android的洗衣店预约系统毕业设计源码260839
- PHP递归的三种方式
- 9、共享变量(Broadcast Variable和Accumulator)
- XYOJ1257: 捕杀恶龙(break+j=k)
- 图像金字塔LK光流法原理分析
热门文章
- mac回退jdk版本_mac中不同jdk版本切换
- 西门子s7-200解密软件下载_西门子S7200仿真软件如何使用?
- python调用shell用什么类_python脚本中调用shell命令
- 计算机基础知识赏花主观题,计算机研究生考什么?你知道吗?
- 缩进一个字符_Indesign里标点挤压及首行缩进2字符设置
- 电脑控制iphone_如何把苹果 iPhone/iPad 投屏到电脑
- vins中imu融合_VINS-Mono代码分析与总结(最终版)
- 我的世界连锁挖矿下载JAVA_我的世界1.7.10连锁挖矿整合包
- centos7 mysql 1064_【mysql报错】1064 - You have an error in your SQL syntax;
- C#三层架构第四课之DAL层