2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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 输出目录“自行去看下执行结果

223330_mGJu_1023019.png

转载于:https://my.oschina.net/firstBlooded/blog/550198

hadoop3节点hdfs ha,yarn ha配置相关推荐

  1. 什么是Hadoop - HDFS - MapReduce - YARN - HA

    Hadoop 为什么要有Hadoop? 从计算机诞生到现今,积累了海量的数据,这些海量的数据有结构化.半结构化.非 结构的数据,并且这些海量的数据存储和检索就成为了一大问题. 我们都知道大数据技术难题 ...

  2. Hadoop【部署 02】hadoop-3.1.3 单机版YARN(配置、启动停止shell脚本修改及服务验证)

    1. 修改配置 进入 ${HADOOP_HOME}/etc/hadoop/ 目录下,修改以下配置: mapred-site.xml [root@tcloud ~]# vim /usr/local/ha ...

  3. HDFS和YARN集群新增节点

    目录 静态新增 动态新增 Hadoop HDFS 数据自动平衡脚本使用方法 静态新增 静态新增的方式,相当于我们最开始部署Hadoop集群规划一样,停止集群,新增一个DateNode数据节点,这种方法 ...

  4. HDFS HA介绍及配置理解

    1.HDFS HA介绍 相比于Hadoop1.0,Hadoop 2.0中的HDFS增加了两个重大特性,HA和Federaion.HA即为High Availability,用于解决NameNode单点 ...

  5. DataX Hdfs HA(高可用)配置支持

    官方文档地址 DataX HdfsReader 插件文档 DataX HdfsWriter 插件文档 Reader插件文档明确说明 而配置中又有HA相关配置 没办法只能试试呗!Reader和Write ...

  6. hadoop集群的yarn ha配置,亲测

    YARN HA部署 yarn-site.xml文件:<!--启用resourcemanager ha--><property><name>yarn.nodemana ...

  7. HADOOP HA之NameNode HA集群配置与应用

    目录 前言 一.HADOOP HA之NameNode HA集群配置 1.修改hadoop-env.sh 2.修改core-site.xml 3.修改hdfs-site.xml 4.修改workers ...

  8. 葵花宝典--HDFS高可用HA

    一.HA概述 所谓谓HA(High Availablity),即高可用(7*24小时不中断服务).实现高可用最关键的策略是消除单点故障.HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN ...

  9. [Hadoop][笔记]4个节点搭建Hadoop2.x HA测试集群

    为什么80%的码农都做不了架构师?>>>    搭建Hadoop2.x HA 1.机器准备 虚拟机 4台 10.211.55.22 node1 10.211.55.23 node2 ...

最新文章

  1. php框架使用统计_2015 年最好的 PHP 框架调查统计
  2. 用Fedora发行版本打包RPM,似乎无法对打好的RPM包进行签名?
  3. dpkg: 錯誤: 分析檔案 '/var/lib/dpkg/updates/0001' 的第 0 行附近: 欄位名稱 `#padding' 中有換行
  4. 手机内存卡转化linux,Android 往手机内存卡上存储用户名与密码的操作
  5. Linux中文件查找技术大全
  6. 计算机三级信息管理技术考试大纲
  7. 7-11 找最长的字符串 (15 分)
  8. jsp实现简单购物车页面
  9. 移动光猫RAISECOM的配置方法
  10. centos gedit 字体大小_【写作技巧】毕业论文格式要求及字体大小
  11. 年末巨献|大数据盛会!企业大数据落地高峰论坛倒计时,速速报名!
  12. 自定义配置log日志
  13. 写得非常好的关于CV行业的分析
  14. 苏菲兔子和魔法师小麦
  15. Java同步器之AbstractOwnableSynchronizer详解
  16. springboot+APP基于Android的洗衣店预约系统毕业设计源码260839
  17. PHP递归的三种方式
  18. 9、共享变量(Broadcast Variable和Accumulator)
  19. XYOJ1257: 捕杀恶龙(break+j=k)
  20. 图像金字塔LK光流法原理分析

热门文章

  1. mac回退jdk版本_mac中不同jdk版本切换
  2. 西门子s7-200解密软件下载_西门子S7200仿真软件如何使用?
  3. python调用shell用什么类_python脚本中调用shell命令
  4. 计算机基础知识赏花主观题,计算机研究生考什么?你知道吗?
  5. 缩进一个字符_Indesign里标点挤压及首行缩进2字符设置
  6. 电脑控制iphone_如何把苹果 iPhone/iPad 投屏到电脑
  7. vins中imu融合_VINS-Mono代码分析与总结(最终版)
  8. 我的世界连锁挖矿下载JAVA_我的世界1.7.10连锁挖矿整合包
  9. centos7 mysql 1064_【mysql报错】1064 - You have an error in your SQL syntax;
  10. C#三层架构第四课之DAL层