一、环境说明:

操作系统:Centos6.5 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
    jdk版本:java version "1.7.0_79"
    hadoop版本:Apache hadoop-2.5.2

zookeeper:3.4.6

本文实现hadoop分布式环境搭建,启用YARN,利用zookeeper实现HA。

二、节点说明:

zookeeper:node2\node3\node4

namenode:node1\node5

journalnode:node2\node3\node4

datanode:node2\node3\node4

ResourceManager:node1\node5

三、安装前准备:

1、实现各个节点之间的免密码登录设置。

2、在/etc/hosts文件中对各个节点进行配置。我的配置如下:

  1. 192.168.103.101 node1
  2. 192.168.103.102 node2
  3. 192.168.103.103 node3
  4. 192.168.103.104 node4
  5. 192.168.103.105 node5

四、步骤说明:

1、安装zookeeper。

2、配置hadoop相关文件。

3、启动hadoop系统,浏览器界面验证。

五、安装zookeeper:

首先在node2节点上进行以下操作。

1、首先从官网下载,本文使用的版本为3.4.6。

2、解压安装包,并复制到指定目录下。

  1. tar zxvf zookeeper-3.4..tar.gz
  2. mv zookeeper-3.4./ /home/install/

3、进入到zookeeper安装目录,修改配置文件zoo.cfg,若该文件不存在,将zoo_sample.cfg重命名为zoo.cfg:

  1. cd /home/install/zookeeper-3.4./
  2. vim conf/zoo.cfg

添加或修改以下代码:

  1. dataDir=/opt/tem/zookeeper #修改此处为/tmp目录以外的其他目录
  2.  
  3. server.=node2::
  4. server.=node3::
  5. server.=node4::

上面的代码定义了3台zookeeper服务器。数量必须为奇数。

3、切换到上面定义的/opt/tem/zookeeper/目录下,提供一个叫myid的文件。

  1. cd /opt/tem/zookeeper/
  2. vim myid

在myid文件中输入一个2,保存退出即可。

4、上面相同的操作在node3和node4上重复进行(或者也可以将node2上的安装目录以及/opt/tem/zookeeper/拷贝到node3和node4上)

注意将node3上的myid文件的内容修改为3,将node4上的myid文件的内容修改为4。

5、将zookeeper安装目录/bin添加到~/.bash_profile中(可选操作,仅是为了命令行操作方便)

  1. export PATH=$PATH:/home/install/zookeeper-3.4./bin

6、在node2\node3\node4上分别启动zookeeper:

  1. zkServer.sh start

7、用以下命令测试一下是否正确启动:

  1. zkCli.sh

效果如下图即可:

至此,zookeeper安装完毕。

六、配置hadoop相关脚本:

以下操作在node1上进行。

配置内容皆参考hadoop官方网站。本文中hadoop安装目录为/home/install/hadoop-2.5.

1、修改hadoop-env.sh文件,添加以下内容:

  1. export JAVA_HOME=/usr/java/jdk1..0_79
  2. export HADOOP_PREFIX=/home/install/hadoop-2.5.

2、修改core-site.xml文件:

  1. <configuration>
  2. <property>
  3. <name>hadoop.tmp.dir</name>
  4. <value>/opt/tep/hadoop-2.5.</value>
  5. </property>
  6. <property>
  7. <name>fs.defaultFS</name>
  8. <value>hdfs://mycluster</value>
  9. </property>
  10. <property>
  11. <name>ha.zookeeper.quorum</name>
  12. <value>node2:,node3:,node4:</value>
  13. </property>
  14. </configuration>

说明:

  • ha.zookeeper.quorum:指定zookeeper的3个节点访问方式。
  • fs.defaultFS:hadoop2.x中的固定写法,其中mycluster是hdfs-site.xml中配置的nameservice-id。
  • hadoop.tmp.dir:这里指定hadoop的临时文件夹,不能放在/tmp目录下。

3、修改hdfs-site.xml文件:

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value></value>
  5. </property>
  6. <property>
  7. <name>dfs.nameservices</name>
  8. <value>mycluster</value>
  9. </property>
  10. <property>
  11. <name>dfs.ha.namenodes.mycluster</name>
  12. <value>nn1,nn2</value>
  13. </property>
  14. <property>
  15. <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  16. <value>node1:</value>
  17. </property>
  18. <property>
  19. <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  20. <value>node5:</value>
  21. </property>
  22. <property>
  23. <name>dfs.namenode.http-address.mycluster.nn1</name>
  24. <value>node1:</value>
  25. </property>
  26. <property>
  27. <name>dfs.namenode.http-address.mycluster.nn2</name>
  28. <value>node5:</value>
  29. </property>
  30. <property>
  31. <name>dfs.namenode.shared.edits.dir</name>
  32. <value>qjournal://node2:8485;node3:8485;node4:8485/mycluster</value>
  33. </property>
  34. <property>
  35. <name>dfs.client.failover.proxy.provider.mycluster</name>
  36. <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  37. </property>
  38. <property>
  39. <name>dfs.ha.fencing.methods</name>
  40. <value>sshfence</value>
  41. </property>
  42. <property>
  43. <name>dfs.ha.fencing.ssh.private-key-files</name>
  44. <value>/root/.ssh/id_dsa</value>
  45. </property>
  46. <property>
  47. <name>dfs.journalnode.edits.dir</name>
  48. <value>/opt/tem/journalnode</value>
  49. </property>
  50. <property>
  51. <name>dfs.ha.automatic-failover.enabled</name>
  52. <value>true</value>
  53. </property>
  54. </configuration>

4、修改yarn-site.xml中的内容:

  1. <configuration>
  2.  
  3. <!-- Site specific YARN configuration properties -->
  4. <property>
  5. <name>yarn.resourcemanager.ha.enabled</name>
  6. <value>true</value>
  7. </property>
  8. <property>
  9. <name>yarn.resourcemanager.cluster-id</name>
  10. <value>cluster1</value>
  11. </property>
  12. <property>
  13. <name>yarn.resourcemanager.ha.rm-ids</name>
  14. <value>rm1,rm2</value>
  15. </property>
  16. <property>
  17. <name>yarn.resourcemanager.hostname.rm1</name>
  18. <value>node1</value>
  19. </property>
  20. <property>
  21. <name>yarn.resourcemanager.hostname.rm2</name>
  22. <value>node5</value>
  23. </property>
  24. <property>
  25. <name>yarn.resourcemanager.zk-address</name>
  26. <value>node2:,node3:,node4:</value>
  27. </property>
  28. <property>
  29. <name>yarn.nodemanager.aux-services</name>
  30. <value>mapreduce_shuffle</value>
  31. </property>
  32. </configuration>

5、修改mapred-site.xml文件:

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. </configuration>

6、保证conf目录下不要有masters文件。

7、修改slaves文件:

  1. node2
  2. node3
  3. node4

8、将$HADOOP_HOME/etc/hadoop/下的配置文件分别拷贝到node2\node3\node4\node5节点上。

  1. scp etc/hadoop/* root@node2:/home/install/hadoop-2.5.1/etc/hadoop/
  2. scp etc/hadoop/* root@node3:/home/install/hadoop-2.5.1/etc/hadoop/
  3. scp etc/hadoop/* root@node4:/home/install/hadoop-2.5.1/etc/hadoop/
  4. scp etc/hadoop/* root@node5:/home/install/hadoop-2.5.1/etc/hadoop/

9、执行下述命令:

  1. hdfs zkfc -formatZK

其作用是在zookeeper中创建一个属于当前集群的目录:

10、启动zk:

  1. hadoop-daemon.sh start zkfc

11、启动hdfs:

  1. start-dfs.sh

9、在node1上启动yarn:

  1. start-yarn.sh

10、在node5上执行下述命令:

  1. yarn-daemon.sh start resourcemanager

11、浏览器中查看界面:http://node1:8088

攻城狮在路上(陆)-- hadoop分布式环境搭建(HA模式)的更多相关文章

  1. 一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)

    1)集群规划:主机名        IP      安装的软件                     运行的进程master    192.168.199.130   jdk.hadoop      ...

  2. 攻城狮在路上(陆)-- 配置hadoop本地windows运行MapReduce程序环境

    本文的目的是实现在windows环境下实现模拟运行Map/Reduce程序.最终实现效果:MapReduce程序不会被提交到实际集群,但是运算结果会写入到集群的HDFS系统中. 一.环境说明:     ...

  3. [大数据学习研究] 3. hadoop分布式环境搭建

    1. Java安装与环境配置 Hadoop是基于Java的,所以首先需要安装配置好java环境.从官网下载JDK,我用的是1.8版本. 在Mac下可以在终端下使用scp命令远程拷贝到虚拟机linux中 ...

  4. 攻城狮在路上(陆)-- hadoop单机环境搭建(一)

    一.环境说明:     操作系统:Centos6.5 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86 ...

  5. 攻城狮在路上(陆)-- 提交运行MapReduce程序到hadoop集群运行

    此种方式不能直接在eclipse中调试代码. 首先需要在src下放置服务器上的hadoop配置文件:core-site.xml\yarn-site.xml\hdfs-site.xml\mapred-s ...

  6. 攻城狮在路上(壹) Hibernate(十六)--- Hibernate声明数据库事务

    一.数据库事务的概念: 数据库的ACID特征:Atomic.Consistency.Isolation.Durability.原子性.一致性.隔离性.持久性.不同的隔离级别引发的不同问题. 事务的AC ...

  7. 攻城狮在路上(伍)How tomcat works(四)Tomcat的默认连接器

     在第4章中将通过剖析Tomcat4的默认连接器的代码,讨论需要什么来创建一个真实的Tomcat连接器.     注意:本章中提及的“默认连接器”是指Tomcat4的默认连接器.即使默认的连机器已经被 ...

  8. 攻城狮在路上(肆)How tomcat works(三) 连接器:Connector

     在介绍中提到,Catalina中有两个主要的模块:连接器和容器.本章中你将会写一个可以创建更好的请求和响应对象的连接器,用来改进第2章中的程序.一个符合Servlet 2.3和2.4规范的连接器必须 ...

  9. 攻城狮在路上(肆)How tomcat works(二) 一个简单的servlet容器

    该节在上一节的基础上增加了所谓对静态资源和动态资源访问的不同控制流程.示例里面采用的是对路径“/servlet/”进行了特殊处理. 一. 主要还是从HttpServer1中的main方法开始,先解析出 ...

随机推荐

  1. sdk开发时,对外暴露的接口封装

    思考,用同步还是异步? 实质就是屏蔽一些东西,让使用者直接传参数 拿结果 而不用关心具体实现 eg.登陆接口 1.定义接口LoginCallBack,两个函数 请求成功和失败 public inter ...

  2. nginx_mysql_redis配置

    #Nginx所用用户和组,window下不指定 #user nobody; #工作的子进程数量(通常等于CPU数量或者2倍于CPU) worker_processes 2; #错误日志存放路径 #er ...

  3. 如何在latex 中插入EPS格式图片

    如何在latex 中插入EPS格式图片 第一步:生成.eps格式的图片 1.利用visio画图,另存为pdf格式的图片 利用Adobe Acrobat裁边,使图片大小合适 另存为.eps格式,如下图所 ...

  4. split分割大文件--包含通过awk按规则分割文件到对应子文件

    当对一个大文件进行传输或者分析的时候,一个可以参考的办法是先通过split对文件进行分割,再对每个子文件进行处理,如果需要合并再进行合并. split函数可以按文件大小或者行数来进行分割. -a :  ...

  5. YII2-数据库数据查询方法,关联查询with, joinWith区别和分页

    一.ActiveRecord 活动记录 1.with关联查询 例如,查询评论 $post = Post::find()->with('comments'); 等价于以下结果集 SELECT * ...

  6. json-c与树

    json是一种轻量级的数据交换格式,因为其灵巧使得其在应用层开发以及接口层开发使用的十分广泛,最常用的莫过于协议交流使用json数据,比xml轻巧,又比二进制数据有规则.无论是各大公司的开放平台或者是 ...

  7. LPC1768\1769之中断优先级与中断优先级组

    一.背景 USB在持续通信几十万次后,会出现USB IN中断丢失几次的情况,分析是中断优先级不够高,导 致USB中断在排队,然而排队还未完成,又有新的USB中断发生,致使其中断丢失.LPC1769的所 ...

  8. Distinct Subsequences

    https://leetcode.com/problems/distinct-subsequences/ Given a string S and a string T, count the numb ...

  9. pip安装报错:is not a supported wheel on this platform

    可能的原因1:安装的不是对应python版本的库,下载的库名中cp27代表python2.7,其它同理. 可能的原因2:这个是我遇到的情况(下载的是对应版本的库,然后仍然提示不支持当前平台) 我下载到 ...

  10. django rest framework 再撸体验

    曾经了解过. 放在一边,嫌麻烦. 如今身为leader,站在团队沟通的角度看看,还不错. 有几个优点: 1. api一览表 2. api web预览界面(类似.net的webservice预览界面), ...