热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于hadoop2.7.3搭建多机环境(YARN+HA)

第一:环境说明parallelsdesktopCentOS-6.5-x86_64-bin-DVD1.isojdk-7u79-linux-x64.tar.gzHado

第一:环境说明

  1. parallels desktop
  2. CentOS-6.5-x86_64-bin-DVD1.iso
  3. jdk-7u79-linux-x64.tar.gz
  4. Hadoop-2.7.3.tar.gz
  5. 搭建四个节点的集群。他们的hostname分布为hadoopA,hadoopB,hadoopC,hadoopD。其中hadoopA的角色为Activity namnode。hadoopB的角色为standby namenode,datanode,journalnode。hadoopC的角色为datanode,journalnode。hadoopD的角色为datanode,journalnode。

第二:操作系统配置

  1. 赋予hadoop用户sudo权限
[root@hadoopa hadoop]# visudo

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
  1. 修改hostname
[hadoop@hadoopa hadoop-2.7.3]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.201 hadoopA
192.168.1.202 hadoopB
192.168.1.203 hadoopC
192.168.1.204 hadoopD

第三:安装和配置jdk

分别在hadoopA,hadoopB,hadoopC,hadoopD四个节点安装jdk。

[hadoop@hadoopb ~]$ tar -zxvf jdk-7u79-linux-x64.tar.gz

修改jdk的名称

[hadoop@hadoopb ~]$ mv jdk1.7.0_79/  jdk1.7

第四:安装和配置hadoop

  1. 在hadoopA,hadoopB,hadoopC,hadoopD四个节点上解压hadoop
[hadoop@hadoopb ~]$ tar -zxvf hadoop-2.7.3.tar.gz
  1. 在hadoopA上配置hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/home/hadoop/jdk1.7
  1. 在hadoopA上配置core-site.xml
<configuration>
<property>
<name>fs.defaultFSname>
<value>hdfs://hadoopA:8020value>
property>
configuration>
  1. 在hadoopA配置hdfs-site.xml



dfs.nameservices
<value>hadoop-testvalue>

Comma-separated list of nameservices.




dfs.ha.namenodes.hadoop-test
<value>nn1,nn2value>

The prefix for a given nameservice, contains a comma-separated
list of namenodes for a given nameservice (eg EXAMPLENAMESERVICE).




dfs.namenode.rpc-address.hadoop-test.nn1
<value>hadoopA:8020value>

RPC address for nomenode1 of hadoop-test




dfs.namenode.rpc-address.hadoop-test.nn2
<value>hadoopB:8020value>

RPC address for nomenode2 of hadoop-test




dfs.namenode.http-address.hadoop-test.nn1
<value>hadoopA:50070value>

The address and the base port where the dfs namenode1 web ui will listen on.




dfs.namenode.http-address.hadoop-test.nn2
<value>hadoopB:50070value>

The address and the base port where the dfs namenode2 web ui will listen on.




dfs.namenode.name.dir
<value>file:///home/hadoop/hdfs/name
Determines where on the local filesystem the DFS name node
should store the name table(fsimage). If this is a comma-delimited list
of directories then the name table is replicated in all of the
directories, for redundancy.




dfs.namenode.shared.edits.dir
<value>qjournal://hadoopB:8485;hadoopC:8485;hadoopD:8485/hadoop-testvalue>
A directory on shared storage between the multiple namenodes
in an HA cluster. This directory will be written by the active and read
by the standby in order to keep the namespaces synchronized. This directory
does not need to be listed in dfs.namenode.edits.dir above. It should be
left empty in a non-HA cluster.




dfs.datanode.data.dir
<value>file:///home/hadoop/hdfs/data
Determines where on the local filesystem an DFS data node
should store its blocks. If this is a comma-delimited
list of directories, then data will be stored in all named
directories, typically on different devices.
Directories that do not exist are ignored.




dfs.ha.automatic-failover.enabled
<value>falsevalue>

Whether automatic failover is enabled. See the HDFS High
Availability documentation for details on automatic HA
configuration.




dfs.journalnode.edits.dir
<value>/home/hadoop/hdfs/journal/value>



  1. 在hadoopA配置mapred-site.xml
<configuration>

<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
<property>
<name>mapreduce.jobhistory.addressname>
<value>hadoopB:10020value>
property>
<property>
<name>mapreduce.jobhistory.webapp.addressname>
<value>hadoopB:19888value>
property>
configuration>
  1. 在hadoopA配置yarn-site.xml
<configuration>


<property>
<description>The hostname of the RM.description>
<name>yarn.resourcemanager.hostnamename>
<value>hadoopAvalue>
property>

<property>
<description>The address of the applications manager interface in the RM.description>
<name>yarn.resourcemanager.addressname>
<value>${yarn.resourcemanager.hostname}:8032value>
property>

<property>
<description>The address of the scheduler interface.description>
<name>yarn.resourcemanager.scheduler.addressname>
<value>${yarn.resourcemanager.hostname}:8030value>
property>

<property>
<description>The http address of the RM web application.description>
<name>yarn.resourcemanager.webapp.addressname>
<value>${yarn.resourcemanager.hostname}:8088value>
property>

<property>
<description>The https adddress of the RM web application.description>
<name>yarn.resourcemanager.webapp.https.addressname>
<value>${yarn.resourcemanager.hostname}:8090value>
property>

<property>
<name>yarn.resourcemanager.resource-tracker.addressname>
<value>${yarn.resourcemanager.hostname}:8031value>
property>

<property>
<description>The address of the RM admin interface.description>
<name>yarn.resourcemanager.admin.addressname>
<value>${yarn.resourcemanager.hostname}:8033value>
property>

<property>
<description>The class to use as the resource scheduler.description>
<name>yarn.resourcemanager.scheduler.classname>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairSchedulervalue>
property>

<property>
<description>fair-scheduler conf locationdescription>
<name>yarn.scheduler.fair.allocation.filename>
<value>/home/hadoop/hadoop-2.7.3/etc/hadoop/fairscheduler.xmlvalue>
property>

<property>
<description>List of directories to store localized files in. An
application's localized file directory will be found in:
${yarn.nodemanager.local-dirs}/usercache/${user}/appcache/application_${appid}.
Individual containers' work directories, called container_${contid}, will
be subdirectories of this.
description>
<name>yarn.nodemanager.local-dirsname>
<value>/home/hadoop/yarn/localvalue>
property>

<property>
<description>Whether to enable log aggregationdescription>
<name>yarn.log-aggregation-enablename>
<value>truevalue>
property>

<property>
<description>Where to aggregate logs to.description>
<name>yarn.nodemanager.remote-app-log-dirname>
<value>/tmp/logsvalue>
property>

<property>
<description>Amount of physical memory, in MB, that can be allocated
for containers.description>
<name>yarn.nodemanager.resource.memory-mbname>
<value>8720value>
property>

<property>
<description>Number of CPU cores that can be allocated
for containers.description>
<name>yarn.nodemanager.resource.cpu-vcoresname>
<value>2value>
property>

<property>
<description>the valid service name should only contain a-zA-Z0-9_ and can not start with numbersdescription>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>

configuration>
  1. 在hadoopA配置fairscheduler.xml
<allocations>

<queue name="infrastructure">
<minResources>102400 mb, 50 vcores minResources>
<maxResources>153600 mb, 100 vcores maxResources>
<maxRunningApps>200maxRunningApps>
<minSharePreemptionTimeout>300minSharePreemptionTimeout>
<weight>1.0weight>
<aclSubmitApps>root,yarn,search,hdfsaclSubmitApps>
queue>

<queue name="tool">
<minResources>102400 mb, 30 vcoresminResources>
<maxResources>153600 mb, 50 vcoresmaxResources>
queue>

<queue name="sentiment">
<minResources>102400 mb, 30 vcoresminResources>
<maxResources>153600 mb, 50 vcoresmaxResources>
queue>

allocations>
  1. 在hadoopA配置slaves文件

[root@hadoopa hadoop]# cat slaves
hadoopB
hadoopC
hadoopD
  1. 将hadoopA上hadoop的安装目录复制到其它

[hadoop@hadoopa hadoop-2.7.3]$ scp etc/hadoop/* hadoopB://home/hadoop/hadoop-2.7.3/etc/hadoop/


[hadoop@hadoopa hadoop-2.7.3]$ scp etc/hadoop/* hadoopC://home/hadoop/hadoop-2.7.3/etc/hadoop/


[hadoop@hadoopa hadoop-2.7.3]$ scp etc/hadoop/* hadoopD://home/hadoop/hadoop-2.7.3/etc/hadoop/

第五:启动hadoop

  1. 在各个JournalNode节点上,输入以下命令启动journalnode服务
[hadoop@hadoopb hadoop-2.7.3]$ sbin/hadoop-daemon.sh start journalnode
[hadoop@hadoopc hadoop-2.7.3]$ sbin/hadoop-daemon.sh start journalnode
[hadoop@hadoopd hadoop-2.7.3]$ sbin/hadoop-daemon.sh start journalnode
  1. 在[nn1]上,对其进行格式化,并启动:
[root@hadoopa hadoop-2.7.3]# bin/hdfs namenode -format
[root@hadoopa hadoop-2.7.3]# sbin/hadoop-daemon.sh start namenode

  1. 在[nn2]上,同步nn1的元数据信息
[hadoop@hadoopb hadoop-2.7.3]$ bin/hdfs namenode -bootstrapStandby
  1. 在[nn2]上,启动NameNode:
[hadoop@hadoopb hadoop-2.7.3]$ sbin/hadoop-daemon.sh start namenode
(经过以上四步操作,nn1和nn2均处理standby状态)
  1. 在[nn1]上,将NameNode切换为Active

[root@hadoopa hadoop-2.7.3]# bin/hdfs haadmin -transitionToActive nn1
  1. 在[nn1]上,启动所有datanode

[root@hadoopa hadoop-2.7.3]# sbin/hadoop-daemons.sh start datanode
  1. 启动yarn:在[nn1]上,输入以下命令
[root@hadoopa hadoop-2.7.3]# sbin/start-yarn.sh
  1. 关闭Hadoop集群:在[nn1]上,输入以下命令
[root@hadoopa hadoop-2.7.3]# sbin/stop-dfs.sh
[root@hadoopa hadoop-2.7.3]# sbin/stop-yarn.sh

第六:验证hadoop

  1. hadoopA输入命令

[root@hadoopa jdk1.7]# /home/hadoop/jdk1.7/bin/jps
10747 -- process information unavailable
15583 Jps
16576 -- process information unavailable
  1. hadoopB输入命令
[hadoop@hadoopb hadoop-2.7.3]$ /home/hadoop/jdk1.7/bin/jps
15709 NodeManager
2405 JournalNode
11551 NameNode
12862 DataNode
15398 Jps
  1. hadoopC输入命令
[hadoop@hadoopc ~]$ /home/hadoop/jdk1.7/bin/jps
2388 JournalNode
13091 Jps
13553 DataNode
15214 NodeManager
  1. hadoopD输入命令
[hadoop@hadoopd hadoop-2.7.3]$ /home/hadoop/jdk1.7/bin/jps
13506 DataNode
12675 Jps
15334 NodeManager
2570 JournalNode

打开浏览器输入以下地址:

http://192.168.1.201:50070/dfshealth.html#tab-overview
http://192.168.1.202:50070/dfshealth.html#tab-overview
http://192.168.1.201:8088/cluster/scheduler

第七:关闭hadoop

  1. 关闭Hadoop集群:在[nn1]上,输入以下命令
[root@hadoopa hadoop-2.7.3]# sbin/stop-dfs.sh
[root@hadoopa hadoop-2.7.3]# sbin/stop-yarn.sh

第八:特别说明

说明:
步骤2:在[nn1]上,对其进行格式化,并启动:
bin/hdfs namenode -fromal
步骤3:在[nn2]上,同步nn1的元数据信息
bin/hdfs namenode -bootstrapStandby

这两步操作,只是在第一次建立集群的时候才使用
下次重启节点,是不需要操作这两步


推荐阅读
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 本文记录了作者对x265开源代码的实现与框架进行学习与探索的过程,包括x265的下载地址与参考资料,以及在Win7 32 bit PC、VS2010平台上的安装与配置步骤。 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
author-avatar
书友59082326
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有