`

hadoop2.2.0集群搭建ha-yarn

 
阅读更多
hadoop2.2.0 ha集群搭建

使用的文件如下:
jdk-6u45-linux-x64.bin
hadoop-2.2.0.x86_64.tar
zookeeper-3.4.5.tar.gz
hbase-0.96.2-hadoop2-bin.tar
使用WinSCP工具将上述文件复制到linux的根目录的cloud文件夹下

文件所在路径为:
/cloud/jdk-6u45-linux-x64.bin
/cloud/hadoop-2.2.0.x86_64.tar
/cloud/zookeeper-3.4.5.tar.gz
/cloud/hbase-0.96.2-hadoop2-bin.tar

文件安装路径为:
/cloud/jdk
/cloud/hadoop

1使用wmware创建6台虚拟机,这里不再一一叙述配置过程
主机名 IP地址 安装的软件 运行的进程
hdp1 192.168.1.11 jdk1.6、hadoop2.2.0 NameNode、DFSZKFailoverController
hdp2 192.168.1.12 jdk1.6、hadoop2.2.0 NameNode、DFSZKFailoverController
hdp3 192.168.1.13 jdk1.6、hadoop2.2.0 ResourceManager
hdp4 192.168.1.14 jdk1.6、hadoop2.2.0、zookeeper3.4.5 DataNode、NodeManager、JournalNode、QuorumPeerMain
hdp5 192.168.1.15 jdk1.6、hadoop2.2.0、zookeeper3.4.5 DataNode、NodeManager、JournalNode、QuorumPeerMain
hdp6 192.168.1.16 jdk1.6、hadoop2.2.0、zookeeper3.4.5 DataNode、NodeManager、JournalNode、QuorumPeerMain

2关闭防火墙
关闭防火墙如下:     
    停止运行防火墙:service iptables stop 
    关闭防火墙自启动:chkconfig iptables off 
    验证防火墙是否关闭:chkconfig --list | grep iptables 

3生成ssh免密码登录
分别在每个节点上生成公钥私钥:
cd /root/.ssh
ssh-keygen -t rsa三次回车 
cp id_rsa.put authorized_keys
将hdp2、hdp3、hdp4、hdp5、hdp6的私钥复制到hdp1节点上:
在hdp2节点上执行:ssh-copy-id -i hdp1
在hdp3节点上执行:ssh-copy-id -i hdp1
在hdp4节点上执行:ssh-copy-id -i hdp1
在hdp5节点上执行:ssh-copy-id -i hdp1
在hdp6节点上执行:ssh-copy-id -i hdp1
将hdp1节点上的authorized_keys复制给hdp2、hdp3、hdp4、hdp5、hdp6节点:
在hdp1节点上执行:scp /root/.ssh/authorized_keys hdp2:/root/.ssh/
在hdp1节点上执行:scp /root/.ssh/authorized_keys hdp3:/root/.ssh/
在hdp1节点上执行:scp /root/.ssh/authorized_keys hdp4:/root/.ssh/
在hdp1节点上执行:scp /root/.ssh/authorized_keys hdp5:/root/.ssh/
在hdp1节点上执行:scp /root/.ssh/authorized_keys hdp6:/root/.ssh/
验证ssh免密码登录(包括登录自己):
在hdp1节点上执行:ssh hdp1、ssh hdp2、ssh hdp3、ssh hdp4、ssh hdp5、ssh hdp6
在hdp2节点上执行:ssh hdp1、ssh hdp2、ssh hdp3、ssh hdp4、ssh hdp5、ssh hdp6
在hdp3节点上执行:ssh hdp1、ssh hdp2、ssh hdp3、ssh hdp4、ssh hdp5、ssh hdp6
在hdp4节点上执行:ssh hdp1、ssh hdp2、ssh hdp3、ssh hdp4、ssh hdp5、ssh hdp6
在hdp5节点上执行:ssh hdp1、ssh hdp2、ssh hdp3、ssh hdp4、ssh hdp5、ssh hdp6
在hdp6节点上执行:ssh hdp1、ssh hdp2、ssh hdp3、ssh hdp4、ssh hdp5、ssh hdp6

4配置hdp1节点上的jdk-6u45-linux-x64.bin
cd /cloud/目录下
为jdk-6u45-linux-x64.bin赋予执行权限:chmod u+x jdk-6u45-linux-x64.bin
在当前目录下解压jdk-6u45-linux-x64.bin:./jdk-6u45-linux-x64.bin(/cloud/文件夹下多了一个jdk1.6.0.45文件夹)
重命名jdk1.6.0.45:mv jdk1.6.0.45 jdk
配置jdk到环境变量:
vi /etc/profile添加如下内容:
export JAVA_HOME=/cloud/jdk
export PATH=.:$JAVA_HOME/bin:$PATH
保存退出
使修改的环境变量立即生效:
source /etc/profile
验证jak:
java -version

5配置hdp1节点上的hadoop-2.2.0.x86_64.tar
cd /cloud/目录下
在当前目录下解压hadoop-2.2.0.x86_64.tar:tar -zxvf hadoop-2.2.0.x86_64.tar(/cloud/下多了个hadoop-2.2.0文件夹)
重命名hadoop2.2.0:mv hadoop-2.2.0 hadoop
配置hadoop到环境变量:
vi /etc/profile添加如下内容:
export HADOOP_HOME=/cloud/hadoop
修改PATH变量为:export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
保存退出
使修改的环境变量立即生效:
source /etc/profile
修改位于hadoop/etc/hadoop下的配置文件(hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves)如下:
修改hadoop-env.sh的27行jdk
export JAVA_HOME=/cloud/jdk

修改core-site.xml
<configuration>
<!-- 指定hdfs的nameservice为ns1 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1</value>
</property>
<!-- 指定hadoop临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/cloud/hadoop/data</value>
</property>
<!-- 指定zookeeper地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>hdp4:2181,hdp5:2181,hdp6:2181</value>
</property>
</configuration>

修改hdfs-site.xml
<configuration>
<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>hdp1:9000</value>
</property>
<!-- nn1的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>hdp1:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>hdp2:9000</value>
</property>
<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>hdp2:50070</value>
</property>
<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hdp4:8485;hdp5:8485;hdp6:8485/ns1</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/cloud/hadoop/journal</value>
</property>
<!-- 开启NameNode失败自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.ns1</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>
<configuration>

修改mapred-site.xml
<configuration>
<!-- 指定mr框架为yarn方式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

修改yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- 指定resourcemanager地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hdp3</value>
</property>
<!-- 指定nodemanager启动时加载server的方式为shuffle server -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration

修改slaves
hdp4
hdp5
hdp6
由于core-site.xml中指定了hadoop数据存放的本地磁盘路径是/cloud/hadoop/data,而这个/cloud/hadoop/下data文件夹是不存在需要创建;
由于hdfs-site.xml中指定了JournalNode在本地磁盘存放数据的位置是/cloud/hadoop/journal,而/cloud/hadoop/下的journal文件夹是不存在的需要创建。
此上6个配置文件都是hdp1节点上的,修改完成后将配置好的环境变量/etc/profile文件、/cloud/jdk文件夹和/cloud/hadoop文件夹复制到其他节点:
将/cloud/jdk文件夹和/cloud/hadoop文件夹复制到其他节点:
在hdp1节点上执行:scp -r /cloud/ hdp2:/
在hdp1节点上执行:scp -r /cloud/ hdp3:/
在hdp1节点上执行:scp -r /cloud/ hdp4:/
在hdp1节点上执行:scp -r /cloud/ hdp5:/
在hdp1节点上执行:scp -r /cloud/ hdp6:/
将环境变量/etc/profile文件复制到其他节点(在其他节点上要执行source /etc/profile使其修改立即生效):
scp /etc/profile hdp2:/etc/
scp /etc/profile hdp3:/etc/
scp /etc/profile hdp4:/etc/
scp /etc/profile hdp5:/etc/
scp /etc/profile hdp6:/etc/

6在hdp4节点配置zookeeper-3.4.5.tar.gz
cd /cloud/目录下
解压zookeeper-3.4.5.tar.gz:tar -zxvf zookeeper-3.4.5.tar.gz(当前目录下多了一个zookeeper-3.4.5文件夹)
重命名zookeeper-3.4.5:mv zookeeper-3.4.5 zk
cd到/cloud/zk/conf/目录下:cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
修改:dataDir=/cloud/zk/data
在最后面添加:
server.1=hdp4:2888:3888
server.2=hdp5:2888:3888
server.3=hdp6:2888:3888
在/cloud/zk/创建data文件夹,进入/cloud/zk/data下创建myid文件,内容为1
将/cloud/zk文件夹复制到hdp5和hdp6下:
在hdp4节点上执行:scp -r /cloud/zk hdp5:/cloud/
在hdp4节点上执行:scp -r /cloud/zk hdp6:/cloud/

在hdp5节点上修改/cloud/zk/data/myid为2
在hdp6节点上修改/cloud/zk/data/myid为3

7启动hdp4、hdp5和hdp6节点上的zk
分别在每个节点上执行:
cd /cloud/zk/bin目录下
启动zk:zkServer.sh start
查看状态:
zkServer.sh status(leader或follower)
jps后多出来个quorumpeerMain

8在hdp1节点上启动journalnode(会启动所有journalnode)
cd /cloud/hadoop/sbin目录下
启动journalnode:hadoop-daemons.sh start journalnode(在hdp4、hdp5和hdp6节点上运行jps命令检验,多了JournalNode进程)

9在hdp1节点上格式化HDFS
格式化HDFS:hadoop namenode -format
将格式化后生成的hadoop的数据文件都在hdp1节点上,需要将hdp1节点上的数据同步到hdp2节点上,因为hdp1节点和hdp2节点是ha,这里我直接复制:scp -r /cloud/hadoop/data hdp2:/cloud/hadoop

10在hdp1节点上格式化ZK
格式化ZK:hdfs zkfc -formatZK

11在hdp1节点上启动HDFS
cd /cloud/hadoop/sbin目录下
启动HDFS:start-dfs.sh

12在hdp3节点上启动YARN
cd /cloud/hadoop/sbin目录下
启动YARN:start-yarn.sh

验证:
验证hdp1节点上的NameNode:jps或者http://hdp1:50070
验证hdp2节点上的NameNode:jps或者http://hdp2:50070
验证hdp3节点上的YARN:jps或者http://hdp3:8088/

各个节点进程如下:
hdp1
5267 DFSZKFailoverController
4990 NameNode
5380 Jps
hdp2
4471 Jps
4388 DFSZKFailoverController
4285 NameNode
hdp3
3734 ResourceManager
3982 Jps
hdp4
4214 DataNode
2373 QuorumPeerMain
4543 Jps
4431 NodeManager
4304 JournalNode
hdp5
4050 DataNode
2458 QuorumPeerMain
4267 NodeManager
4374 Jps
4140 JournalNode
hdp6
4437 NodeManager
4220 DataNode
4310 JournalNode
4549 Jps
2705 QuorumPeerMain

完成

分享到:
EJB
评论

相关推荐

    hadoop2.2.0-linux-64bit安装包和源码包

    - **功能增强**:Hadoop 2.2.0 版本中的HDFS进行了多项改进,例如支持更多的元数据操作、增强了HA(High Availability)功能,使得集群在出现故障时能够更快地恢复。 - **性能提升**:通过对HDFS内部机制的优化,...

    hadoop-common2.2.0和2.7.1版本

    Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它的核心组件包括Hadoop Common、Hadoop HDFS(Hadoop Distributed File System)和Hadoop YARN(Yet Another Resource Negotiator)。这里我们关注的是...

    hadoop2.2.0

    5. Hadoop HA:Hadoop 2.2.0引入了High Availability(HA)特性,通过NameNode的热备和故障切换,实现了HDFS服务的连续性。这包括两个活动NameNode(Active和Standby)和一个共享编辑日志(Journal Node),确保了...

    7自己配置HADOOP2.2.0[整理].pdf

    在本文中,我们将深入探讨如何配置Hadoop 2.2.0集群,这是一个基于软件开发的实践过程。Hadoop是一个开源的分布式计算框架,能够处理和存储大量数据。在这个配置中,我们会有4台虚拟机,分布在两台物理机上,它们...

    hadoop2.2.0API

    在Hadoop 2.2.0中,MapReduce得到了重大改进,推出了YARN(Yet Another Resource Negotiator),它将资源管理和应用程序管理分离,增强了集群的资源利用率。YARN允许不同计算框架如Spark、Tez等并行运行,提高了集群...

    Hadoop2.2.0中HDFS的高可用性实现原理.pdf )

    Hadoop2.2.0的HDFS(Hadoop分布式文件系统)高可用性(HA)解决方案是针对Hadoop早期版本中NameNode存在的单点故障问题而设计的。在Hadoop2.0.0之前,HDFS集群中只有一个NameNode,如果NameNode所在机器出现故障,会...

    hadoop 集群搭建

    3. **配置 Hadoop 配置文件**:主要包括 `core-site.xml`, `hdfs-site.xml`, `yarn-site.xml` 和 `mapred-site.xml` 等配置文件的编辑,以适应当前集群的具体需求。 4. **格式化 HDFS 文件系统**:在 NameNode 上...

    spark环境安装(Hadoop HA+Hbase+phoneix+kafka+flume+zookeeper+spark+scala)

    本项目旨在搭建一套完整的Spark集群环境,包括Hadoop HA(高可用)、HBase、Phoenix、Kafka、Flume、Zookeeper以及Scala等多个组件的集成。这样的环境适用于大规模的数据处理与分析任务,能够有效地支持实时数据流...

    hadoop2.2 hbase0.96.2 hive 0.13.1整合部署

    【Hadoop2.2.0】 Hadoop2.2.0是Apache Hadoop项目的一个稳定版本,提供了改进的性能和稳定性。它引入了YARN(Yet Another Resource Negotiator),这是一个资源管理和调度器,用于更好地管理和优化分布式计算任务。...

    大数据各种工具配合安装手册

    本文档详细介绍了如何在CentOS 6.5 i586系统上搭建一个基本的Hadoop 2.2.0集群,包括环境准备、具体安装步骤以及配置方法。通过遵循这些步骤,您可以成功地构建自己的Hadoop集群,并为进一步的大数据分析工作打下...

    hadoop版本差异详解.doc

    a) **YARN**:YARN(Yet Another Resource Negotiator)是新一代的资源调度器,允许Hadoop集群运行多种应用程序和框架,如MapReduce、Tez和Storm。YARN的引入打破了原本仅限于MapReduce的局限性,使得Hadoop成为一个...

    大数据平台搭建实验手册-罗登1

    在搭建过程中,特别强调了Hadoop高可用性(HA)的配置,这是一个复杂的过程,需要仔细配置各个节点间的通信和故障转移机制。一旦Hadoop基础环境搭建完毕,其他组件如Spark、Hive、HBase等的安装就相对简单,因为它们...

    hadoop版本差异详解.docx.doc

    此外,Hadoop 2.2.0及以后的版本还引入了NameNode HA(High Availability),即主备NameNode切换机制,进一步增强了系统的稳定性。HDFS快照功能也在此期间引入,允许用户创建文件系统的只读副本,以保护重要数据免受...

    java连接hdfs ha和调用mapreduce jar示例

    例如`yarn.resourcemanager.address`和`yarn.resourcemanager.scheduler.address`分别指定了ResourceManager的地址,`fs.defaultFS`和前面的配置相同,用于设置HDFS的默认文件系统,其他参数如`dfs.nameservices`、`...

Global site tag (gtag.js) - Google Analytics