hadoop多机安装YARN
hadoop伪分布安装称为测试环境安装,多机分布称为生成环境安装。以下安装没有进行HA(热备)和Federation(联邦)。除非是性能需要,否则没必要安装Federation,HA可以一试,涉及到Zookeeper自动切换。
准备工作
1) linux优化
①安装虚拟机linux系统,采用1.2 中的CentOS调优所有步骤,关闭防火墙;②设置网络为桥接模式(编辑虚拟机设置—>网络适配器),查看自动分配ip或手动配置ip;③等JDK安装的JAVA_HOME(见1.3.1)和HADOOP_HOME(见2.1.6(8))配置好后,直接复制虚拟机,将whaozl001的虚拟机系统复制成3个文件夹作为DataNode的数据节点的linux主机,网卡要重新删除和编辑,见2.1.7(3);④配置NameNode节点的主机whaozl001到其他主机ssh免密码登录,见2.1.7;⑤注意:在配置过程中所有的property中的name和value值都不能存在空格、配置中的删除线部分表示可不添加进去。
2) 配置节点
对所有Node,配置vim /etc/hosts添加10.30.30.1 whaozl001等ip映射;
10.30.30.1 whaozl001
10.30.30.5 whaozl005
10.30.30.6 whaozl006
10.30.30.7 whaozl007
10.30.30.8 whaozl008
这里配置4个DataNode,1个NameNode,给每个节点主机修改主机名(虚拟机名称、ip映射名、linux主机名):
主机名
ip地址(内网)
linux用户名
密码
充当角色
NameNode
whaozl001
10.30.30.1
haozhulin
123456
nn/snn/rm
DataNode
whaozl005
10.30.30.5
haozhulin
123456
dn/nm
DataNode
whaozl006
10.30.30.6
haozhulin
123456
dn/nm
DataNode
whaozl007
10.30.30.7
haozhulin
123456
dn/nm
DataNode
whaozl008
10.30.30.8
haozhulin
123456
dn/nm
虚拟机名称就是虚拟机文件夹名。用户均为haozhulin,其在linux的/home目录下有一个haozhulin文件夹(用户文件夹)。在cluster中充当的角色(namenode, secondary namenode, datanode , resourcemanager, nodemanager)。
解压
将安装包hadoop-2.2.0.tar.gz存放到/home/haozhulin/install/目录下,并解压
先让其有执行权限,然后直接./就可以解压
chmod
+x hadoop-2.2.0.tar.gz./hadoop-2.2.0.tar.gz
配置之前,在whaozl001主机的/home/haozhulin/install/hadoop-2.2.0/下建立三个文件夹:~/dfs/name、~/dfs/data、~/temp;
接下来修改/home/haozhulin/install/hadoop-2.2.0/etc/hadoop/下的7个文件。
hadoop-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves
yarn-env.sh
修改hadoop-env.sh
配置hadoop的jdk版本环境
cd /home/haozhulin/install/hadoop-2.2.0/etc/hadoop/
vim hadoop-env.sh
hadoop-env.sh为hadoop环境变量,依赖JDK,进行如下修改
#第27行
export JAVA_HOME=/home/haozhulin/install/java/jdk1.7.0_09
修改core-site.xml
在其<configuration></ configuration >中插入:
<!-- 制定HDFS的老大(NameNode)的地址 -->
<property>
<!--<name>fs.default.name</name>-->
<name>fs.defaultFS</name>
<value>hdfs://whaozl001:9000</value>
</property>
<!--指定hadoop运行时产生文件的存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>file:///home/haozhulin/install/hadoop-2.2.0/tmp</value>
</property>
<!--指定hadoop运行的流文件的缓冲区,单位B,这里设置为128KB,默认4KB-->
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.proxyuser.haozhulin.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.haozhulin.groups</name>
<value>*</value>
</property>
修改hdfs-site.xml
在其<configuration></ configuration >中插入:
<!--HA就不需要secondary咯,这里不是HA,就需要配置Secondaryhtpp通信地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value> whaozl001:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/haozhulin/install/hadoop-2.2.0/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir </name>
<value>file:///home/haozhulin/install/hadoop-2.2.0/dfs/data</value>
</property>
<!--指定HDFS存在block的副本数量,默认值是3个,现有4个DataNode,该值不大于4即可-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
修改mapred-site.xml
从template命名mapred-site.xml后<configuration></configuration>中插入:
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>whaozl001:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value> whaozl001:19888</value>
</property>
修改yarn-site.xml
在其<configuration></ configuration >中插入:
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>whaozl001</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>whaozl001:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value> whaozl001:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value> whaozl001:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value> whaozl001:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value> whaozl001:8088</value>
</property>
修改slaves
#定位到/home/haozhulin/install/hadoop-2.2.0/etc/hadoop/slaves文件
vim etc/hadoop/slaves
#由于是单机伪分布,所以DataNode就只有localhost
#不需要修改,也可以改为127.0.0.1,都是指本机
#slaves文件中记录所有的slave节点,写入以下内容
whaozl005
whaozl006
whaozl007
whaozl008
修改yarn-en.sh
同修改hadoop-env.sh,修改里面的JAVA_HOME值。
将配置复制到其他节点
这里可以写一个shell脚本进行操作(有大量节点时比较方便)。
scp –r /home/haozhulin/install/hadoop-2.2.0 haozhulin@whaozl005:~/
scp –r /home/haozhulin/install/hadoop-2.2.0 haozhulin@whaozl006:~/
scp –r /home/haozhulin/install/hadoop-2.2.0 haozhulin@whaozl007:~/
scp –r /home/haozhulin/install/hadoop-2.2.0 haozhulin@whaozl008:~/
scp –r 表示递归到目录和目录中文件远程复制到目标主机,~表示当前用户目录(用户目录就是保存在/home下)。
格式化namenode
#进入hadoop位置/home/haozhulin/install/hadoop-2.2.0
cd /home/haozhulin/install/hadoop-2.2.0
#格式化namenode
./bin/hdfs namenode –format
启动hadoop
#进入hadoop位置/home/haozhulin/install/hadoop-2.2.0
cd /home/haozhulin/install/hadoop-2.2.0
#启动hdfs
./sbin/start-dfs.sh
#jps可查看进程
#此时在whaozl001上面运行的进程有namenode secondarynamenode
#whaozl005/whaozl006/whaozl007/whaozl008上运行的进程有datanode
#启动yarn
./sbin/start-yarn.sh
#此时在whaozl001上面有namenode secondarynamenode resourcemanager
#whaozl005/whaozl006/whaozl007/whaozl008有:datanode nodemanaget
了解hadoop运行情况:
#查看集群状态
./bin/hdfs dfsadmin –report
#查看文件块组成
./bin/hdfsfsck / -files –blocks
#查看HDFS:
http://10.30.30.1:50070
#查看RM
http://10.30.30.1:8088
测试
#先在hdfs上创建一个文件夹
./bin/hdfs dfs –mkdir /input
#测试案例
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jarrandomwriter /input
hadoop多机安装YARN的更多相关文章
- hadoop多机安装HA+YARN
		
HA 相比于Hadoop1.0,Hadoop 2.0中的HDFS增加了两个重大特性,HA(热备)和Federation(联邦).HA即为High Availability,用于解决NameNode单点 ...
 - Apache Hadoop集群安装(NameNode HA + YARN HA + SPARK + 机架感知)
		
1.主机规划 序号 主机名 IP地址 角色 1 nn-1 192.168.9.21 NameNode.mr-jobhistory.zookeeper.JournalNode 2 nn-2 192.16 ...
 - Hadoop三种安装模式:单机模式,伪分布式,真正分布式
		
Hadoop三种安装模式:单机模式,伪分布式,真正分布式 一 单机模式standalone单 机模式是Hadoop的默认模式.当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守 ...
 - Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS
		
摘自:http://www.powerxing.com/install-hadoop-cluster/ 本教程讲述如何配置 Hadoop 集群,默认读者已经掌握了 Hadoop 的单机伪分布式配置,否 ...
 - Ubuntu16.04下Hadoop的本地安装与配置
		
一.系统环境 os : Ubuntu 16.04 LTS 64bit jdk : 1.8.0_161 hadoop : 2.6.4 部署时使用的用户名为hadoop,下文中需要使用用户名的地方请更改为 ...
 - Hadoop 新 MapReduce 框架 Yarn 详解【转】
		
[转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/] 简介: 本文介绍了 Hadoop 自 0.23.0 版本 ...
 - HADOOP docker(一):安装hadoop实验集群(略操蛋)
		
一.环境准备 1.1.机器规划 主机名 别名 IP 角色 9321a27a2b91 hadoop1 172.17.0.10 NN1 ZK RM 7c3a3c9cd595 hadoo ...
 - hadoop高可用安装和原理详解
		
本篇主要从hdfs的namenode和resourcemanager的高可用进行安装和原理的阐述. 一.HA安装 1.基本环境准备 1.1.1.centos7虚拟机安装,详情见VMware安装Cent ...
 - java大数据最全课程学习笔记(1)--Hadoop简介和安装及伪分布式
		
Hadoop简介和安装及伪分布式 大数据概念 大数据概论 大数据(Big Data): 指无法在一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,是需要新处理模式才能具有更强的决策力,洞察发 ...
 
随机推荐
- SQL Server数据的导入导出
			
SQL Server 2008的导入导出服务可以实现不同类型的数据库系统的数据转换.为了让用户可以更直观的使用导入导出服务,微软提供了导入导出向导.导入和导出向导提供了一种从源向目标复制数据的最简便的 ...
 - java Map的遍历
			
List下的Map的遍历方法 List<String> Keys =new ArrayList<String>(); ){ ;row<SheetData.size() ; ...
 - 将vs2012的项目转化成VS2010
			
vs2012生成的项目,如何在只装有VS2010的电脑上打开, 步骤: 1.打开一个记事本,将你的Vs2012生成的项目解决方案文件(.sln文件)文件拖到记事本中 2.修改前两行 Microsof ...
 - zoj2432  hdoj1423  最长公共上升子序列(LCIS)
			
zoj2431 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2432 hdoj 1423 http://acm.hdu. ...
 - C++ -windows与unix路径分隔符
			
文件路径中通常使用正斜杠和反斜杠 在Windows中 C++中“\\”是一种转义字符,他表示一个‘\’,就像\n表示回车一样.所以C++中的路径名: D:\matcom45\doc\users\_th ...
 - 通过javascript库JQuery实现页面跳转功能代码
			
通过javascript库JQuery实现页面跳转功能代码的四段代码实例如下. 实例1: 1 2 3 4 $(function(){ var pn = $("#gotopagenum&quo ...
 - spring mvc源码解析
			
1.从DispatcherServlet开始 与很多使用广泛的MVC框架一样,SpringMVC使用的是FrontController模式,所有的设计都围绕DispatcherServlet 为中心来 ...
 - ios开发中button控件的属性及常见问题
			
最为最基本的控件,我们必须对button的每个常用属性都熟练应用: 1,使用之前,必须对按钮进行定义,为乐规范,在@interface ViewController (){}中进行定义,先定义后使用. ...
 - C#一些小技巧
			
在C#实现类似Typedef的所有功能 Typedef这个关键字,是比较好用的东西,因为有时候我们需要使用一些别名来帮助我们记忆某些结构体或者类的共用.(个人觉得这是C与C++唯一能吸引我的东西)为了 ...
 - PHP pear安装出现 Warning: require_once(Structures/Graph.php)...错误
			
今天在WINDOWS安装pear,一路无阻很顺利安装完成,接着想安装下pear email包来玩下,但接下来却报: Warning: require_once(Structures/Graph.php ...