Hadoop2.2.0--Hadoop Federation、Automatic HA、Yarn完全分布式集群结构
Hadoop有很多的上场时间,与系统上线。手头的事情略少。So,抓紧时间去通过一遍Hadoop2在下面Hadoop联盟(Federation)、Hadoop2可用性(HA)及Yarn的全然分布式配置。现记录在博客中。互相交流学习。话不多说,直入正文。
本文採用倒叙手法。先将终于结果呈现出来。例如以下:
结果展现一,通过jps查看集群守护进程
结果展现二。通过web端,查看集群执行情况
结果展现三,执行Hadoop2自带的wordcount程序。通过web查看。例如以下图,
能够看出Application Type是MapReduce。哈哈,快点在Yarn上把自己的Storm跑起来吧
OK,3张截图已献上,下文依照例如以下思路进行
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWFyb25oYWRvb3A=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
本文仅仅讲诉安装过程中的重点。对于有些步骤未做具体说明。欢迎留言交流。
一、集群环境
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWFyb25oYWRvb3A=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" style="font-size:18px">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWFyb25oYWRvb3A=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" style="font-size:18px">
软件解压后,放在/usr/local路径下
二、详细步骤
准备工作
查看CentOS系统版本号
arch/uname–a x86_64(32位的是i386、i686)
改动主机名(重新启动生效)
vi/etc/sysconfig/network
设定IP地址
改动hosts映射文件
vi/etc/hosts
202.196.37.240 hadoop0
202.196.37.241 hadoop1
202.196.37.242 hadoop2
202.196.37.243 hadoop3
配置SSH
hadoop0上运行。生成密钥对
ssh-keygen–t rsa
cp id_rsa.pub authorized_keys
非hadoop0上运行,聚集
ssh-copy-id -i hadoop0(把非hadoop0机器上的id_rsa.pub远程复制到bigdata0中的authorized_keys文件内)
hadoop0上运行,分发
scp authorized_keys hadoop1:/root/.ssh/
配置JDK
安装Zookeeper
改动核心文件zoo.cfg
dataDir=/usr/local/zookeeper-3.4.5/data
logDir=/usr/local/zookeeper-3.4.5/log
server.0=hadoop0:2887:3887
server.1=hadoop1:2887:3887
server.2=hadoop2:2887:3887
启动、验证Zookeeper集群
zkServer.shstart/status
安装Hadoop2
将自编译的64位的hadoop-2.2.0-src放到/usr/local路径下
cp -R/usr/local/hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0 /usr/local/
mvhadoop-2.2.0 hadoop
本文中的全部xml配置文件。都在/usr/local/hadoop/etc/hadoop路径下,
全部配置文件,均已測试通过,略微整理格式后,可直接copy使用。
配置分为两部分,一部分是对Hadoop2的Hadoop Federation、HA的配置;还有一部分是对Hadoop2的Yarn配置。请看下图:
开启配置文件模式。哈哈
首先在cluster1_hadoop0上配置。然后再往其它节点scp
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://cluster1</value>
<description>此处是默认的HDFS路径,在节点hadoop0和hadoop1中使用cluster1。在节点hadoop2和hadoop3中使用cluster2</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop0:2181,hadoop1:2181,hadoop2:2181</value>
<description>Zookeeper集群<description>
</property>
</configuration>
hdfs-site.xml
<configuration>
<!--1描写叙述cluster1集群的信息-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>cluster1,cluster2</value>
</property>
<property>
<name>dfs.ha.namenodes.cluster1</name>
<value>hadoop0,hadoop1</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster1.hadoop0</name>
<value>hadoop0:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster1.hadoop0</name>
<value>hadoop0:50070</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster1.hadoop1</name>
<value>hadoop1:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster1.hadoop1</name>
<value>hadoop1:50070</value>
</property>
<!--在cluster1中此处的凝视是关闭的,cluster2反之-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop0:8485;hadoop1:8485;hadoop2:8485/cluster1</value>
<description>指定cluster1的两个NameNode共享edits文件文件夹时,使用的是JournalNode集群来维护</description>
</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>
<!--2以下描写叙述cluster2集群的信息-->
<property>
<name>dfs.ha.namenodes.cluster2</name>
<value>hadoop2,hadoop3</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster2.hadoop2</name>
<value>hadoop2:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster2.hadoop2</name>
<value>hadoop2:50070</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster2.hadoop3</name>
<value>hadoop3:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster2.hadoop3</name>
<value>hadoop3:50070</value>
</property>
<!-- 在cluster1中此处的凝视是打开的。cluster2反之
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop0:8485;hadoop1:8485;hadoop2:8485/cluster1</value>
<description>指定cluster2的两个NameNode共享edits文件文件夹时。使用的是JournalNode集群来维护</description>
</property>
-->
<property>
<name>dfs.ha.automatic-failover.enabled.cluster2</name>
<value>true</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.cluster2</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!--3配置cluster1、cluster2公共的信息-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/local/hadoop/tmp/journal</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
</configuration>
以上配置完毕后,分发scp
scp -rq hadoop hadoop1:/usr/local/
scp -rq hadoop hadoop2:/usr/local/
scp -rq hadoop hadoop3:/usr/local/
在其它节点改动时,须要注意的地方
hadoop-env.sh 无需改动
slaves 无需改动
core-site.xml
1、<property>
<name>fs.defaultFS</name>
<value>hdfs://cluster1</value>
</property>
cluster1节点中的value值:hdfs://cluster1
cluster2节点中的value值:hdfs://cluster2
hdfs-site.xml
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop0:8485;hadoop1:8485;hadoop2:8485/cluster2</value>
</property>
cluster1节点中的value值:qjournal://hadoop0:8485;hadoop1:8485;hadoop2:8485/cluster1
cluster2节点中的value值:qjournal://hadoop0:8485;hadoop1:8485;hadoop2:8485/cluster2
此处的实质是使用JournalNode集群来维护Hadoop集群中两个NameNode共享edits文件文件夹的信息。
重在理解,不可盲目copy哟
仅仅需相应改动这两个地方就可以。
測试启动
1、启动Zookeeper
在hadoop0、hadoop1、hadoop2上运行zkServer.shstart
2、启动JournalNode
在hadoop0、hadoop1、hadoop2上运行sbin/hadoop-daemon.shstart journalnode
3、格式化ZooKeeper
在hadoop0、hadoop2上运行bin/hdfs zkfc -formatZK
由于Zookeeper要担当运行高可用(HA)切换的任务
对cluster1
41、对hadoop0节点进行格式化和启动
bin/hdfs namenode -format
sbin/hadoop-daemon.sh start namenode
51、对hadoop1节点进行格式化和启动
bin/hdfs namenode -bootstrapStandby
sbin/hadoop-daemon.sh start namenode
61、在hadoop0、hadoop1上启动zkfc
sbin/hadoop-daemon.sh start zkfc
运行后, hadoop0、hadoop1有一个节点就会变为active状态。
对cluster2
42、对hadoop2节点进行格式化和启动
bin/hdfs namenode -format
sbin/hadoop-daemon.sh start namenode
52、对hadoop3节点进行格式化和启动
bin/hdfs namenode -bootstrapStandby
sbin/hadoop-daemon.sh start namenode
62、在hadoop2、hadoop3上启动zkfc
sbin/hadoop-daemon.sh start zkfc
运行后。 hadoop2、hadoop3有一个节点就会变为active状态。
7、
启动datanode,在hadoop0上运行
sbin/hadoop-daemons.sh start datanode
集群的执行情况,请參见文章开头的截图
截至到此,已经能够对Hadoop2的HDFS进行操作。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWFyb25oYWRvb3A=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
以下进行Yarn的配置。配置后,就能够在Yarn上执行MapReduce作业啦,哈哈
配置Yarn
下面配置文件依然是在/usr/local/hadoop/etc/hadoop路径下
mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop0</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
測试Yarn
启动yarn,在hadoop0上运行
sbin/start-yarn.sh
执行測试程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jarwordcount /testFile /out
測试结果。请见博文開始。
OK!
已越过这道坎——Hadoop2中Hadoop Federation、HA、Yarn全然分布式配置。
今天,Hadoop2你搭建成功了吗?DO it !
文章中的xml配置未做具体description,欢迎留言交流。
Storm学习,从我自己去......
版权声明:本文博客原创文章。博客,未经同意,不得转载。
Hadoop2.2.0--Hadoop Federation、Automatic HA、Yarn完全分布式集群结构的更多相关文章
- hadoop(二)搭建伪分布式集群
前言 前面只是大概介绍了一下Hadoop,现在就开始搭建集群了.我们下尝试一下搭建一个最简单的集群.之后为什么要这样搭建会慢慢的分享,先要看一下效果吧! 一.Hadoop的三种运行模式(启动模式) 1 ...
- Windows10+VMware Workstation Pro+Ubuntu 16.04+Hadoop-2.6.5+IDEA环境搭建(单机&伪分布式&集群)
(注:下面出现的"czifan"为用户名,需替换成自己的用户名) 本篇博客是在实践该篇博客的过程中的一些补充和修改~ 0 - 安装VMware Workstation Pro 首先 ...
- hadoop3.1.1 HA高可用分布式集群安装部署
1.环境介绍 涉及到软件下载地址:https://pan.baidu.com/s/1hpcXUSJe85EsU9ara48MsQ 服务器:CentOS 6.8 其中:2 台 namenode.3 台 ...
- Hadoop单机、伪分布式、分布式集群搭建
JDK安装 设置hostname [root@bigdata111 ~]# vi /etc/hostname 设置机器hosts [root@bigdata111 ~]# vi /etc/hosts ...
- 超快速使用docker在本地搭建hadoop分布式集群
超快速使用docker在本地搭建hadoop分布式集群 超快速使用docker在本地搭建hadoop分布式集群 学习hadoop集群环境搭建是hadoop入门的必经之路.搭建分布式集群通常有两个办法: ...
- hadoop2.2.0的ha分布式集群搭建
hadoop2.2.0 ha集群搭建 使用的文件如下: jdk-6u45-linux-x64.bin hadoop-2.2.0.x86_64.tar zookeeper-3.4.5. ...
- _00018 Hadoop-2.2.0 + Hbase-0.96.2 + Hive-0.13.1 分布式环境整合,Hadoop-2.X使用HA方式
博文作者:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 个性签名:世界上最 ...
- Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)--------hadoop环境的搭建
Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)------https://blog.csdn.net/pucao_cug/article/details/71698903 ...
- Hadoop上路-01_Hadoop2.3.0的分布式集群搭建
一.配置虚拟机软件 下载地址:https://www.virtualbox.org/wiki/downloads 1.虚拟机软件设定 1)进入全集设定 2)常规设定 2.Linux安装配置 1)名称类 ...
随机推荐
- js防堵塞载入
js防堵塞载入 <script type="text/javascript"> function scriptDomElement (u) { var s = docu ...
- 求Sn=a+aa+aaa+…+aa…aaa(有n个a)…
时间限制: 1 Sec 内存限制: 128 MB 提交: 352 解决: 174 [提交][状态][讨论版] 题目描述 求Sn=a+aa+aaa+-+aa-aaa(有n个a)之值,其中a是一个数字 ...
- Gray Code -- LeetCode
原标题链接: http://oj.leetcode.com/problems/gray-code/ 这道题要求求出n位的格雷码相应的二进制数,主要在于找到一种格雷码的递增方法(格雷码并非唯一的,能够 ...
- 玩转Web之Jsp(三)-----Jsp+SQLServer 用sql语句实现分页
在BBS的实现里,jsp与sqlserver 结合的操作中,怎样实现分页,使每页显示根帖的名字,并按发表时间降序排列? 在这里举例说明,page_size为每页显示的条数,pageNo为当前页数,st ...
- 设备MyEclipse6.5的maven
设备MyEclipse6.5的maven A.首先删除MyEclipse6.5自带的maven 删除步骤: 1.关闭MyEclipse,进入MyEclipse6.5安装目录,搜索maven,将搜索结果 ...
- CVE-2014-4113:飓风熊猫(HURRICANE PANDA)Win64bit提起权0day破绽
飓风熊猫被觉得是原产于中国.主要针对基础设施公司的先进攻击者.我们知道它们除了拥有0day漏洞外.还有其它的三种本地特权提升漏洞.我们知道飓风熊猫使用的是"ChinaChopper" ...
- bonecp使用数据源
bonecp.properties jdbc.driverClass=oracle.jdbc.driver.OracleDriver jdbc.jdbcUrl=jdbc:oracle:thin:@19 ...
- Java单链逆转
本文介绍两种方法单向链表反转.记录,如下面: 1. package com.leetcode; public class ListReverse { public static void main(S ...
- js 性能优化整理之 缓存变量
简单的常见的操作:假设每个便签添加一个 属性 -webkit-animation-delay:0.1s 递增操作::通过for循环添加 <ul id="uls"> ...
- 惊人go语言(image网站开发)
[ 声明:版权全部,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 有过python web开发经验的朋友.相信对它的便利性肯定印象很深刻. 事实上利用go语言对 ...