hadoop2.4.1集群配置
Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu_CentOS

Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS本教程讲述如何配置Hadoop 集群,默认读者已经掌握了Hadoop 的单机伪分布式配置,否则请先查看Hadoop安装教程_单机/伪分布式配置或CentOS安装Hadoop_单机/伪分布式配置。
本教程由厦门大学数据库实验室出品,转载请注明。
本教程适合于原生Hadoop 2,包括Hadoop 2.6.0, Hadoop 2.7.1 等版本,主要参考了官方安装教程,步骤详细,辅以适当说明,保证按照步骤来,都能顺利安装并运行Hadoop。
另外有Hadoop安装配置简略版方便有基础的读者快速完成安装。
为了方便新手入门,我们准备了两篇不同系统的Hadoop 伪分布式配置教程。
但其他Hadoop 教程我们将不再区分,可同时适用于Ubuntu 和CentOS/RedHat 系统。
例如本教程以Ubuntu 系统为主要演示环境,但对Ubuntu/CentOS 的不同配置之处、CentOS 6.x 与CentOS 7 的操作区别等都会尽量给出注明。
环境本教程使用Ubuntu 14.04 64位作为系统环境,基于原生Hadoop 2,在Hadoop 2.6.0 (stable)版本下验证通过,可适合任何Hadoop 2.x.y 版本,例如Hadoop 2.7.1,Hadoop 2.4.1 等。
本教程简单的使用两个节点作为集群环境: 一个作为Master 节点,局域网IP 为192.168.1.121;另一个作为Slave 节点,局域网IP 为192.168.1.122。
准备工作Hadoop 集群的安装配置大致为如下流程:1.选定一台机器作为Master2.在Master 节点上配置hadoop 用户、安装SSH server、安装Java 环境3.在Master 节点上安装Hadoop,并完成配置4.在其他Slave 节点上配置hadoop 用户、安装SSH server、安装Java 环境5.将Master 节点上的/usr/local/hadoop 目录复制到其他Slave 节点上6.在Master 节点上开启Hadoop配置hadoop 用户、安装SSH server、安装Java 环境、安装Hadoop 等过程已经在Hadoop安装教程_单机/伪分布式配置或CentOS安装Hadoop_单机/伪分布式配置中有详细介绍,请前往查看,不再重复叙述。
Hadoop集群配置与数据处理入门

Hadoop集群配置与数据处理入门1. 引言Hadoop是一个开源的分布式计算框架,被广泛应用于大规模数据处理和存储。
在本文中,我们将介绍Hadoop集群的配置和数据处理的基本概念与入门知识。
2. Hadoop集群配置2.1 硬件要求架设Hadoop集群需要一定的硬件资源支持。
通常,集群中包含主节点和若干个从节点。
主节点负责整个集群的管理,而从节点负责执行具体的计算任务。
在硬件要求方面,主节点需要具备较高的计算能力和存储空间。
从节点需要具备较低的计算能力和存储空间,但数量较多。
此外,网络带宽也是一个关键因素。
较高的网络带宽可以加快数据的传输速度,提升集群的效率。
2.2 软件要求Hadoop运行在Java虚拟机上,所以首先需要确保每台主机都安装了适当版本的Java。
其次,需要安装Hadoop分发版本,如Apache Hadoop或Cloudera等。
针对集群管理,可以选择安装Hadoop的主节点管理工具,如Apache Ambari或Cloudera Manager。
这些工具可以帮助用户轻松管理集群的配置和状态。
2.3 配置文件Hadoop集群部署需要配置多个文件。
其中,最重要的是核心配置文件core-site.xml、hdfs-site.xml和yarn-site.xml。
core-site.xml配置Hadoop的核心参数,如文件系统和输入输出配置等;hdfs-site.xml用于配置Hadoop分布式文件系统;yarn-site.xml配置Hadoop资源管理器和任务调度器相关的参数。
3. 数据处理入门3.1 数据存储与处理Hadoop的核心之一是分布式文件系统(HDFS),它是Hadoop集群的文件系统,能够在集群中存储海量数据。
用户可以通过Hadoop的命令行工具或API进行文件的读取、写入和删除操作。
3.2 数据处理模型MapReduce是Hadoop的编程模型。
它将大规模的数据集拆分成小的数据块,并分配给集群中的多个计算节点进行并行处理。
Hadoop集群配置详细

Linux系统配置
7安装JDK 将JDK文件解压,放到/usr/java目录下 cd /home/dhx/software/jdk mkdir /usr/java mv jdk1.6.0_45.zip /usr/java/
cd /usr/java
unzip jdk1.6.0_45.zip
从当前用户切换root用户的命令如下: 编辑主机名列表的命令
从当前用户切换root用户的命令如下:
Linux系统配置
操作步骤需要在HadoopMaster和HadoopSlave节点
上分别完整操作,都是用root用户。 从当前用户切换root用户的命令如下:
su root
从当前用户切换root用户的命令如下:
Linux系统配置
1拷贝软件包和数据包 mv ~/Desktop/software ~/
环境变量文件中,只需要配置JDK的路径
gedit conf/hadoop-env.sh
从当前用户切换root用户的命令如下: 编辑主机名列表的命令
Hadoop配置部署
3配置核心组件core-site.xml
gedit conf/core-site.xml
<configuration> <property> <name></name> /*2.0后用 fs.defaultFS代替*/ <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/dhx/hadoopdata</value> </property> </configuration>
集群的配置步骤

集群的配置步骤一、搭建集群环境的准备工作在开始配置集群之前,我们需要先进行一些准备工作。
首先,确保所有服务器都已经正确连接到网络,并且能够相互通信。
其次,确保每台服务器上已经安装了操作系统,并且操作系统版本一致。
最后,确保每台服务器上已经安装了必要的软件和工具,例如SSH、Java等。
二、创建集群的主节点1.选择一台服务器作为集群的主节点,将其IP地址记录下来。
2.登录到主节点服务器上,安装并配置集群管理软件,例如Hadoop、Kubernetes等。
3.根据集群管理软件的要求,配置主节点的相关参数,例如集群名称、端口号等。
4.启动集群管理软件,确保主节点能够正常运行。
三、添加集群的工作节点1.选择一台或多台服务器作为集群的工作节点,将其IP地址记录下来。
2.登录到工作节点服务器上,安装并配置集群管理软件,确保与主节点的版本一致。
3.根据集群管理软件的要求,配置工作节点的相关参数,例如主节点的IP地址、端口号等。
4.启动集群管理软件,确保工作节点能够正常连接到主节点。
四、测试集群的连接和通信1.在主节点服务器上,使用集群管理软件提供的命令行工具,测试与工作节点的连接和通信。
例如,可以使用Hadoop的hdfs命令测试与工作节点的文件系统的连接。
2.确保主节点能够正确访问工作节点的资源,并且能够将任务分配给工作节点进行处理。
五、配置集群的资源管理1.根据集群管理软件的要求,配置集群的资源管理策略。
例如,可以设置工作节点的CPU和内存的分配比例,以及任务的调度算法等。
2.确保集群能够合理分配资源,并且能够根据需要动态调整资源的分配。
六、监控和管理集群1.安装并配置集群的监控和管理工具,例如Ganglia、Zabbix等。
2.确保监控和管理工具能够正常运行,并能够及时发现和处理集群中的故障和问题。
3.定期对集群进行巡检和维护,确保集群的稳定和可靠性。
七、优化集群的性能1.根据实际情况,对集群的各项参数进行调优,以提高集群的性能和效率。
搭建hadoop集群的步骤

搭建hadoop集群的步骤Hadoop是一个开源的分布式计算平台,用于存储和处理大规模的数据集。
在大数据时代,Hadoop已经成为了处理海量数据的标准工具之一。
在本文中,我们将介绍如何搭建一个Hadoop集群。
步骤一:准备工作在开始搭建Hadoop集群之前,需要进行一些准备工作。
首先,需要选择适合的机器作为集群节点。
通常情况下,需要至少三台机器来搭建一个Hadoop集群。
其次,需要安装Java环境和SSH服务。
最后,需要下载Hadoop的二进制安装包。
步骤二:配置Hadoop环境在准备工作完成之后,需要对Hadoop环境进行配置。
首先,需要编辑Hadoop的配置文件,包括core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml。
其中,core-site.xml用于配置Hadoop的核心参数,hdfs-site.xml用于配置Hadoop分布式文件系统的参数,mapred-site.xml用于配置Hadoop的MapReduce参数,yarn-site.xml用于配置Hadoop的资源管理器参数。
其次,需要在每个节点上创建一个hadoop用户,并设置其密码。
最后,需要在每个节点上配置SSH免密码登录,以便于节点之间的通信。
步骤三:启动Hadoop集群在完成Hadoop环境的配置之后,可以启动Hadoop集群。
首先,需要启动Hadoop的NameNode和DataNode服务。
NameNode是Hadoop分布式文件系统的管理节点,负责管理文件系统的元数据。
DataNode是Hadoop分布式文件系统的存储节点,负责实际存储数据。
其次,需要启动Hadoop的ResourceManager和NodeManager服务。
ResourceManager 是Hadoop的资源管理器,负责管理集群中的资源。
NodeManager是Hadoop的节点管理器,负责管理每个节点的资源。
Hadoop2.4、Hbase0.98、Hive集群安装配置手册

Hadoop、Zookeeper、Hbase、Hive集群安装配置手册运行环境机器配置虚机CPU E5504*2 (4核心)、内存 4G、硬盘25G进程说明QuorumPeerMain ZooKeeper ensemble member DFSZKFailoverController Hadoop HA进程,维持NameNode高可用 JournalNode Hadoop HA进程,JournalNode存储EditLog,每次写数据操作有大多数(>=N+1)返回成功时即认为该次写成功,保证数据高可用 NameNode Hadoop HDFS进程,名字节点DataNode HadoopHDFS进程, serves blocks NodeManager Hadoop YARN进程,负责 Container 状态的维护,并向 RM 保持心跳。
ResourceManager Hadoop YARN进程,资源管理 JobTracker Hadoop MR1进程,管理哪些程序应该跑在哪些机器上,需要管理所有 job 失败、重启等操作。
TaskTracker Hadoop MR1进程,manages the local Childs RunJar Hive进程HMaster HBase主节点HRegionServer HBase RegionServer, serves regions JobHistoryServer 可以通过该服务查看已经运行完的mapreduce作业记录应用 服务进程 主机/hostname 系统版本mysql mysqld10.12.34.14/ Centos5.810.12.34.15/h15 Centos5.8 HadoopZookeeperHbaseHiveQuorumPeerMainDFSZKFailoverControllerNameNodeNodeManagerRunJarHMasterJournalNodeJobHistoryServerResourceManagerDataNodeHRegionServer10.12.34.16/h16 Centos5.8 HadoopZookeeperHbaseHiveDFSZKFailoverControllerQuorumPeerMainHMasterJournalNodeNameNodeResourceManagerDataNodeHRegionServerNodeManager10.12.34.17/h17 Centos5.8 HadoopZookeeperHbaseHiveNodeManagerDataNodeQuorumPeerMainJournalNodeHRegionServer环境准备1.关闭防火墙15、16、17主机:# service iptables stop2.配置主机名a) 15、16、17主机:# vi /etc/hosts添加如下内容:10.12.34.15 h1510.12.34.16 h1610.12.34.17 h17b) 立即生效15主机:# /bin/hostname h1516主机:# /bin/hostname h1617主机:# /bin/hostname h173. 创建用户15、16、17主机:# useraddhduser密码为hduser# chown -R hduser:hduser /usr/local/4.配置SSH无密码登录a)修改SSH配置文件15、16、17主机:# vi /etc/ssh/sshd_config打开以下注释内容:#RSAAuthentication yes#PubkeyAuthentication yes#AuthorizedKeysFile .ssh/authorized_keysb)重启SSHD服务15、16、17主机:# service sshd restartc)切换用户15、16、17主机:# su hduserd)生成证书公私钥15、16、17主机:$ ssh‐keygen ‐t rsae)拷贝公钥到文件(先把各主机上生成的SSHD公钥拷贝到15上的authorized_keys文件,再把包含所有主机的SSHD公钥文件authorized_keys拷贝到其它主机上)15主机:$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys16主机:$cat ~/.ssh/id_rsa.pub | ssh hduser@h15 'cat >> ~/.ssh/authorized_keys'17主机:$cat ~/.ssh/id_rsa.pub | ssh hduser@h15 'cat >> ~/.ssh/authorized_keys'15主机:# cat ~/.ssh/authorized_keys | ssh hduser@h16 'cat >> ~/.ssh/authorized_keys'# cat ~/.ssh/authorized_keys | ssh hduser@h17 'cat >> ~/.ssh/authorized_keys'5.Mysqla) Host10.12.34.14:3306b) username、passwordhduser@hduserZookeeper使用hduser用户# su hduser安装(在15主机上)1.下载/apache/zookeeper/2.解压缩$ tar ‐zxvf /zookeeper‐3.4.6.tar.gz ‐C /usr/local/配置(在15主机上)1.将zoo_sample.cfg重命名为zoo.cfg$ mv /usr/local/zookeeper‐3.4.6/conf/zoo_sample.cfg /usr/local/zookeeper‐3.4.6/conf/zoo.cfg2.编辑配置文件$ vi /usr/local/zookeeper‐3.4.6/conf/zoo.cfga)修改数据目录dataDir=/tmp/zookeeper修改为dataDir=/usr/local/zookeeper‐3.4.6/datab)配置server添加如下内容:server.1=h15:2888:3888server.2=h16:2888:3888server.3=h17:2888:3888server.X=A:B:C说明:X:表示这是第几号serverA:该server hostname/所在IP地址B:该server和集群中的leader交换消息时所使用的端口C:配置选举leader时所使用的端口3.创建数据目录$ mkdir /usr/local/zookeeper‐3.4.6/data4.创建、编辑文件$ vi /usr/local/zookeeper‐3.4.6/data/myid添加内容(与zoo.cfg中server号码对应):1在16、17主机上安装、配置1.拷贝目录$ scp ‐r /usr/local/zookeeper‐3.4.6/ hduser@10.12.34.16:/usr/local/$ scp ‐r /usr/local/zookeeper‐3.4.6/ hduser@10.12.34.17:/usr/local/2.修改myida)16主机$ vi /usr/local/zookeeper‐3.4.6/data/myid1 修改为2b)17主机$ vi /usr/local/zookeeper‐3.4.6/data/myid1修改为3启动$ cd /usr/local/zookeeper‐3.4.6/$./bin/zkServer.sh start查看状态:$./bin/zkServer.sh statusHadoop使用hduser用户# su hduser安装(在15主机上)一、安装Hadoop1.下载/apache/hadoop/common/2.解压缩$ tar ‐zxvf /hadoop‐2.4.0.tar.gz ‐C /usr/local/二、 编译本地库,主机必须可以访问internet。
Hadoop集群配置心得(低配置集群+自动同步配置)

Hadoop集群配置⼼得(低配置集群+⾃动同步配置)本⽂为本⼈原创,⾸发到炼数成⾦。
情况是这样的,我没有⼀个⾮常强劲的电脑来搞出⼀个性能⾮常NB的服务器集群,相信很多⼈也跟我差不多,所以现在把我的低配置集群经验拿出来写⼀下好了。
我的配备:1)五六年前的赛扬单核处理器2G内存笔记本 2)公司给配的ThinkpadT420,i5双核处理器4G内存(可⽤内存只有3.4G,是因为装的是32位系统的缘故吧。
)就算是⽤公司配置的电脑,做出来三台1G内存的虚拟机也显然是不现实的。
企业笔记本运⾏的软件多啊,什么都不做空余内存也才不到3G。
所以呢,我的想法就是:⽤我⾃⼰的笔记本(简称PC1)做Master节点,⽤来跑Jobtracker,Namenode 和SecondaryNamenode;⽤公司的笔记本跑两个虚拟机(简称VM1和VM2),⽤来做Slave节点,跑Tasktracker和Datanode。
这么做的话,就需要让PC1,VM1和VM2处于同⼀个⽹段⾥,保证他们之间可以互相连通。
⽹络环境:我的两台电脑都是通过⼀个⽆线路由上⽹。
构建跟外部的电脑同⼀⽹段的虚拟机配置过程:准备⼯作:构建⼀个集群,⾸先前提条件是每台服务器都要有⼀个固定的IP地址,然后才可能进⾏后续的操作。
所以呢,先把我的两台笔记本电脑全部设置成固定IP(注意,如果像我⼀样使⽤⽆线路由上⽹,那就要把⽆线⽹卡的IP设置成固定IP)。
⽤来做Master节点的PC1:192.168.33.150,⽤来跑虚拟机的宿主笔记本:192.168.33.157。
⽬标:VM1和VM2的IP地址分别设置成192.168.33.151和152。
步骤:1)新建VM1虚拟机。
2)打开VM1的⽹卡设置界⾯,连接⽅式选Bridge。
(桥接)关于桥接的具体信息,可以百度⼀下。
我们需要知道的,就是⽤桥接的⽅式,可以让虚拟机通过本机的⽹关来上⽹,所以就可以跟本机处于同⼀个⽹段,互相之间可以进⾏通信。
《hadoop基础》课件——第三章 Hadoop集群的搭建及配置

19
Hadoop集群—文件监控
http://master:50070
20
Hadoop集群—文件监控
http://master:50070
21
Hadoop集群—文件监控
http://master:50070
22
Hadoop集群—任务监控
http://master:8088
23
Hadoop集群—日志监控
http://master:19888
24
Hadoop集群—问题 1.集群节点相关服务没有启动?
1. 检查对应机器防火墙状态; 2. 检查对应机器的时间是否与主节点同步;
25
Hadoop集群—问题
2.集群状态不一致,clusterID不一致? 1. 删除/data.dir配置的目录; 2. 重新执行hadoop格式化;
准备工作:
1.Linux操作系统搭建完好。 2.PC机、服务器、环境正常。 3.搭建Hadoop需要的软件包(hadoop-2.7.6、jdk1.8.0_171)。 4.搭建三台虚拟机。(master、node1、node2)
存储采用分布式文件系统 HDFS,而且,HDFS的名称 节点和数据节点位于不同机 器上。
2、vim编辑core-site.xml,修改以下配置: <property>
<name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/soft/hadoop-2.7.6/tmp</value> </property> <property> <name>fs.trash.interval</name> <value>1440</value> </property>
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.core-site.xml 完整文件<?xml version="1.0"encoding="UTF-8"?><?xml-stylesheet type="text/xsl"href="configuration.xsl"?><!-- Licensed under the Apache License, Version 2.0 (the "License"); youmay not use this file except in compliance with the License. You may obtaina copy of the License at /licenses/LICENSE-2 .0 Unlessrequired by applicable law or agreed to in writing, software dist ributedunder the License is distributed on an "AS IS" BASIS, WITHOUT WAR RANTIESOR CONDITIONS OF ANY KIND, either express or implied. See the Lic ense forthe specific language governing permissions and limitations under the License.See accompanying LICENSE file. --><!-- Put site-specific property overrides in this file. --><configuration><property><name>fs.defaultFS</name><value>hdfs://myhadoop</value><description>NameNode UR,格式是hdfs://host:port/,如果开启了NN HA特性,则配置集群的逻辑名,具体参见我的博客/u010967382/article/details/30976935</description></property><property><name>hadoop.tmp.dir</name><value>/home/yarn/Hadoop/hadoop-2.4.1/tmp</value> </property><property><name>io.file.buffer.size</name><value>131072</value><description>Size of read/write buffer used in SequenceFiles.</description></property><property><name>ha.zookeeper.quorum</name><value>master:2181,slave1:2181,slave2:2181</value><description>注意,配置了ZK以后,在格式化、启动NameNode之前必须先启动ZK,否则会报连接错误</description></property></configuration>4.hdfs-site.xml 完整文件<?xml version="1.0"encoding="UTF-8"?><?xml-stylesheet type="text/xsl"href="configuration.xsl"?><!-- Licensed under the Apache License, Version 2.0 (the "License"); youmay not use this file except in compliance with the License. You may obtaina copy of the License at /licenses/LICENSE-2 .0 Unlessrequired by applicable law or agreed to in writing, software dist ributedunder the License is distributed on an "AS IS" BASIS, WITHOUT WAR RANTIESOR CONDITIONS OF ANY KIND, either express or implied. See the Lic ense forthe specific language governing permissions and limitations under the License.See accompanying LICENSE file. --><!-- Put site-specific property overrides in this file. --><configuration><!-- NN HA related configuration **BEGIN** --><property><name>services</name><value>myhadoop</value><description>Comma-separated list of nameservices.as same as fs.defaultFS in core-site.xml.</description></property><property><name>nodes.myhadoop</name><value>nn1,nn2</value><description>The prefix for a given nameservice, contains a comma-sepa ratedlist of namenodes for a given nameservice (eg EXAMPLENAME SERVICE).</description></property><property><name>node.rpc-address.myhadoop.nn1</name><value>master:8020</value><description>RPC address for nomenode1 of hadoop-test</description></property><property><name>node.rpc-address.myhadoop.nn2</name><value>slave1:8020</value><description>RPC address for nomenode2 of hadoop-test</description></property><property><name>node.http-address.myhadoop.nn1</name><value>master:50070</value><description>The address and the base port where the dfs namenode1 web ui will listenon.</description></property><property><name>node.http-address.myhadoop.nn2</name><value>slave1:50070</value><description>The address and the base port where the dfs namenode2 web ui will listenon.</description></property><property><name>node.servicerpc-address.myhadoop.n1</name><value>master:53310</value></property><property><name>node.servicerpc-address.myhadoop.n2</name><value>slave1:53310</value></property><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value><description>Whether automatic failover is enabled. See the HDFS High Availability documentation for details on automatic HAconfiguration.</description></property><property><name>dfs.client.failover.proxy.provider.myhadoop</name><value>node.ha.ConfiguredFa iloverProxyProvider</value><description>Configure the name of the Java class which will be usedby the DFS Client to determine which NameNode is the curr ent Active,and therefore which NameNode is currently serving client requests.这个类是Client的访问代理,是HA特性对于Client透明的关键!</description></property><property><name>dfs.ha.fencing.methods</name><value>sshfence</value><description>how to communicate in the switch process</descri ption></property><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/home/yarn/.ssh/id_rsa</value><description>the location stored ssh key</description> </property><property><name>dfs.ha.fencing.ssh.connect-timeout</name><value>1000</value></property><property><name>dfs.journalnode.edits.dir</name><value>/home/yarn/Hadoop/hadoop-2.4.1/hdfs_dir/journal/</valu e></property><property><name>node.shared.edits.dir</name><value>qjournal://master:8485;slave1:8485;slave2:8485/hadoop-journal</value><description>A directory on shared storage between the multip lenamenodesin an HA cluster. This directory will be written by the a ctive and readby the standby in order to keep the namespaces synchroniz ed. Thisdirectorydoes not need to be listed in node.edits.dir abov e. It should beleft empty in a non-HA cluster.</description></property><!-- NN HA related configuration **END** --><!-- NameNode related configuration **BEGIN** --><property><name>.dir</name><value>file:///home/yarn/Hadoop/hadoop-2.4.1/hdfs_dir/name</v alue><description>Path on the local filesystem where the NameNode storesthe namespace and transactions logs persistently.If this is acomma-delimited list of directories then the name table i s replicatedin all of the directories, for redundancy.</description> </property><property><name>dfs.blocksize</name><value>1048576</value><description>HDFS blocksize of 128MB for large file-systems.Minimum block size is 1048576.</description></property><property><name>node.handler.count</name><value>10</value><description>More NameNode server threads to handle RPCs from largenumber of DataNodes.</description></property><!-- <property> <name>node.hosts</name> <value>master</va lue> <description>Ifnecessary, use this to control the list of allowable datanode s.</description></property> <property> <name>node.hosts.exclude</name > <value>slave1,slave2,slave3</value><description>If necessary, use this to control the list of ex clude datanodes.</description></property> --><!-- NameNode related configuration **END** --><!-- DataNode related configuration **BEGIN** --><property><name>dfs.datanode.data.dir</name><value>file:///home/yarn/Hadoop/hadoop-2.4.1/hdfs_dir/data</v alue><description>Comma separated list of paths on the local files ystem ofa DataNode where it should store its blocks.If this is a comma-delimited list of directories, then data will be st ored in allnamed directories, typically on different devices.</descr iption></property><!-- DataNode related configuration **END** --></configuration>5.yarn-site.xml<?xml version="1.0"?><!-- Licensed under the Apache License, Version 2.0 (the "License"); youmay not use this file except in compliance with the License. You may obtaina copy of the License at /licenses/LICENSE-2 .0 Unlessrequired by applicable law or agreed to in writing, software dist ributedunder the License is distributed on an "AS IS" BASIS, WITHOUT WAR RANTIESOR CONDITIONS OF ANY KIND, either express or implied. See the Lic ense forthe specific language governing permissions and limitations under the License.See accompanying LICENSE file. --><configuration><!-- ResourceManager and NodeManager related configuration ***BEG IN*** --><property><name>yarn.acl.enable</name><value>false</value><description>Enable ACLs? Defaults to false.</description> </property><property><name>yarn.admin.acl</name><value>*</value><description>ACL to set admins on the cluster. ACLs are of for comma-separ ated-usersspace comma-separated-groups.Defaults to special value of * which means anyone. Special va lue of just space means no one has access.</description></property><property><name>yarn.log-aggregation-enable</name><value>false</value><description>Configuration to enable or disable log aggregati on</description></property><!-- ResourceManager and NodeManager related configuration ***END *** --><!-- ResourceManager related configuration ***BEGIN*** --><property><name>yarn.resourcemanager.hostname</name><value>master</value><description>The hostname of the RM.</description> </property><property><name>yarn.resourcemanager.webapp.https.address</name><value>${yarn.resourcemanager.hostname}:8090</value><description>The https adddress of the RM web application.</d escription></property><property><name>yarn.resourcemanager.address</name><value>${yarn.resourcemanager.hostname}:8032</value><description>ResourceManager host:port for clients to submit jobs.</description></property><property><name>yarn.resourcemanager.scheduler.address</name><value>${yarn.resourcemanager.hostname}:8030</value><description>ResourceManager host:port for ApplicationMasters to talk to Scheduler to obtain resources.</description> </property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>${yarn.resourcemanager.hostname}:8031</value><description>ResourceManager host:port for NodeManagers.</des cription></property><property><name>yarn.resourcemanager.admin.address</name><value>${yarn.resourcemanager.hostname}:8033</value><description>ResourceManager host:port for administrative com mands.</description></property><property><name>yarn.resourcemanager.webapp.address</name><value>${yarn.resourcemanager.hostname}:8088</value><description>ResourceManager web-ui host:port.</description> </property><property><name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.schedule r.fair.FairScheduler</value><description>ResourceManager Scheduler class.CapacityScheduler (recommended), FairScheduler (also recommen ded), or FifoScheduler</description></property><property><name>yarn.scheduler.minimum-allocation-mb</name><value>512</value><description>Minimum limit of memory to allocate to each container request at the Resource Manager.In MBs</description></property><property><name>yarn.scheduler.maximum-allocation-mb</name><value>2048</value><description>Maximum limit of memory to allocate to each container request at the Resource Manager.In MBs.According to myconfiguration,yarn.scheduler.maximum-allocation-mb > yarn.nodemanager .resource.memory-mb</description></property><!--<property><name>yarn.resourcemanager.nodes.include-path</name><value></value><description>List of permitted NodeManagers.If necessary, use this to control the list of allowable NodeM anagers.</description></property><property><name>yarn.resourcemanager.nodes.exclude-path</name><value></value><description>List of exclude NodeManagers.If necessary, use this to control the list of exclude NodeMan agers.</description></property>--><!-- ResourceManager related configuration ***END*** --><!-- NodeManager related configuration ***BEGIN*** --><property><name>yarn.nodemanager.resource.memory-mb</name><value>1024</value><description>Resource i.e. available physical memory, in MB, for given Nod eManager.Defines total available resources on the NodeManager to be ma de available to running containers.</description></property><property><name>yarn.nodemanager.vmem-pmem-ratio</name><value>2.1</value><description>Ratio between virtual memory to physical memory when setting memory limits for containers.Container allocations are expressed in terms of physical memo ry,and virtual memory usage is allowed to exceed this allocation by this ratio.</description></property><property><name>yarn.nodemanager.local-dirs</name><value>/home/yarn/Hadoop/hadoop-2.4.1/yarn_dir/local</value><description>Comma-separated list of paths on the local filesystem where i ntermediate data is written.Multiple paths help spread disk i/o.</description></property><property><name>yarn.nodemanager.log-dirs</name><value>/home/yarn/Hadoop/hadoop-2.4.1/yarn_dir/log</value><description>Comma-separated list of paths on the local filesystem where l ogs are written.Multiple paths help spread disk i/o.</description></property><property><name>yarn.nodemanager.log.retain-seconds</name><value>10800</value><description>Default time (in seconds) to retain log files on the NodeMana ger.***Only applicable if log-aggregation is disabled.</description></property><property><name>yarn.nodemanager.remote-app-log-dir</name><value>/yarn/log-aggregation</value><description>HDFS directory where the application logs are moved on applic ation completion.Need to set appropriate permissions.***Only applicable if log-aggregation is enabled.</description></property><property><name>yarn.nodemanager.remote-app-log-dir-suffix</name><value>logs</value><description>Suffix appended to the remote log dir.Logs will be aggregated to ${yarn.nodemanager.remote-app-log-dir}/${user}/${thisParam}.***Only applicable if log-aggregation is enabled.</description></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value><description>Shuffle service that needs to be set for Map Red uce applications.</description></property><property><name>yarn.nodemanager.resource.cpu-vcores</name><value>1</value><description>Number of CPU cores that can be allocated for co ntainers.</description></property><!-- NodeManager related configuration ***END*** --><!-- History Server related configuration ***BEGIN*** --><property><name>yarn.log-aggregation.retain-seconds</name><value>-1</value><description>How long to keep aggregation logs before deleting them.-1 disables.Be careful, set this too small and you will spam the name nod e.</description></property><property><name>yarn.log-aggregation.retain-check-interval-seconds</nam e><value>-1</value><description>Time between checks for aggregated log retention.If set to 0 or a negative value then the value is computed as one-tenth of the aggregated log retention time.Be careful, set this too small and you will spam the name nod e.</description></property><!-- History Server related configuration ***END*** --><property><name>yarn.scheduler.fair.allocation.file</name><value>${yarn.home.dir}/etc/hadoop/fairscheduler.xml</value><description>fairscheduler config file path</description><!-- 官网文档居然找不到该属性!但该属性还是work的! --> </property></configuration>6.创建fairscheduler.xml<?xml version="1.0"?><allocations><!--<queue name="hadooptest"><minResources>1024 mb, 1 vcores</minResources><maxResources>2048 mb, 2 vcores</maxResources><maxRunningApps>10</maxRunningApps><weight>2.0</weight><schedulingMode>fair</schedulingMode><aclAdministerApps> hadooptest</aclAdministerApps><aclSubmitApps> hadooptest</aclSubmitApps></queue><queue name="hadoopdev"><minResources>1024 mb, 2 vcores</minResources><maxResources>2048 mb, 4 vcores</maxResources><maxRunningApps>20</maxRunningApps><weight>2.0</weight><schedulingMode>fair</schedulingMode><aclAdministerApps> hadoopdev</aclAdministerApps><aclSubmitApps> hadoopdev</aclSubmitApps></queue>--><user name="yarn"><maxRunningApps>30</maxRunningApps></user></allocations>7.mapred-site.xml<?xml version="1.0"?><?xml-stylesheet type="text/xsl"href="configuration.xsl"?><!-- Licensed under the Apache License, Version 2.0 (the "License"); youmay not use this file except in compliance with the License. You may obtaina copy of the License at /licenses/LICENSE-2 .0 Unlessrequired by applicable law or agreed to in writing, software dist ributedunder the License is distributed on an "AS IS" BASIS, WITHOUT WAR RANTIESOR CONDITIONS OF ANY KIND, either express or implied. See the Lic ense forthe specific language governing permissions and limitations under the License.See accompanying LICENSE file. --><!-- Put site-specific property overrides in this file. --><configuration><!-- MapReduce Applications related configuration ***BEGIN*** --><name></name><value>yarn</value><description>Execution framework set to Hadoop YARN.</descrip tion></property><property><name>mapreduce.map.memory.mb</name><value>1024</value><description>Larger resource limit for maps.</description> </property><property><name>mapreduce.map.java.opts</name><value>-Xmx1024M</value><description>Larger heap-size for child jvms of maps.</descri ption></property><property><name>mapreduce.reduce.memory.mb</name><value>1024</value><description>Larger resource limit for reduces.</description> </property><property><name>mapreduce.reduce.java.opts</name><value>-Xmx1024M</value><description>Larger heap-size for child jvms of reduces.</des cription></property><property><name>mapreduce.task.io.sort.mb</name><value>1024</value><description>Higher memory-limit while sorting data for effic iency.</description></property><property><name>mapreduce.task.io.sort.factor</name><value>10</value><description>More streams merged at once while sorting files. </description></property><name>mapreduce.reduce.shuffle.parallelcopies</name><value>20</value><description>Higher number of parallel copies run by reduces to fetch outputs from very large number of maps.</description> </property><!-- MapReduce Applications related configuration ***END*** --><!-- MapReduce JobHistory Server related configuration ***BEGIN** * --><property><name>mapreduce.jobhistory.address</name><value>slave1:10020</value><description>MapReduce JobHistory Server host:port. Defaul t port is 10020.</description></property><property><name>mapreduce.jobhistory.webapp.address</name><value>slave1:19888</value><description>MapReduce JobHistory Server Web UI host:port. De fault port is 19888.</description></property><property><name>mapreduce.jobhistory.intermediate-done-dir</name><value>/home/yarn/Hadoop/hadoop-2.4.1/mr_history/tmp</value><description>Directory where history files are written by Map Reduce jobs.</description></property><property><name>mapreduce.jobhistory.done-dir</name><value>/home/yarn/Hadoop/hadoop-2.4.1/mr_history/done</value><description>Directory where history files are managed by the MR JobHistory Server.</description></property><!-- MapReduce JobHistory Server related configuration ***END*** --></configuration>8.slaves1.scp相关目录到各台机器2.修改各台机器环境变量,添加新的HADOOP_HOME,#掉老的HADOOP_HOME9.启动集群(1)启动ZK在所有的ZK节点执行命令:zkServer.sh start查看各个ZK的从属关系:yarn@master:~$ zkServer.sh statusJMX enabled by defaultUsing config: /home/yarn/Zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg Mode: followeryarn@slave1:~$ zkServer.sh statusJMX enabled by defaultUsing config: /home/yarn/Zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfgMode: followeryarn@slave2:~$ zkServer.sh statusJMX enabled by defaultUsing config: /home/yarn/Zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg Mode: leader注意:哪个ZK节点会成为leader是随机的,第一次实验时slave2成为了leader,第二次实验时slave1成为了leader!此时,在各个节点都可以查看到ZK进程:yarn@master:~$ jps3084 QuorumPeerMain3212 Jps(2)格式化ZK(仅第一次需要做)任意ZK节点上执行:hdfs zkfc -formatZK(3)启动ZKFCZookeeperFailoverController是用来监控NN状态,协助实现主备NN切换的,所以仅仅在主备NN节点上启动就行:hadoop-daemon.sh start zkfc启动后我们可以看到ZKFC进程:yarn@master:~$ jps3084 QuorumPeerMain3292 Jps3247 DFSZKFailoverController(4)启动用于主备NN之间同步元数据信息的共享存储系统JournalNode参见角色分配表,在各个JN节点上启动:hadoop-daemon.sh start journalnode启动后在各个JN节点都可以看到JournalNode进程:yarn@master:~$ jps3084 QuorumPeerMain3358 Jps3325 JournalNode3247 DFSZKFailoverController(5)格式化并启动主NN格式化:hdfs namenode -format注意:只有第一次启动系统时需格式化,请勿重复格式化!在主NN节点执行命令启动NN:hadoop-daemon.sh start namenode启动后可以看到NN进程:yarn@master:~$ jps3084 QuorumPeerMain3480 Jps3325 JournalNode3411 NameNode3247 DFSZKFailoverController(6)在备NN上同步主NN的元数据信息hdfs namenode -bootstrapStandby以下是正常执行时的最后部分日志:Re-format filesystem in Storage Directory /home/yarn/Hadoop/hdfs2.0/name ? (Y or N) Y14/06/15 10:09:08 INFO common.Storage: Storage directory/home/yarn/Hadoop/hdfs2.0/name has been successfully formatted.14/06/15 10:09:09 INFO namenode.TransferFsImage: Opening connection to http://master:50070/getimage?getimage=1&txid=935&storageInfo=-47:5646363 72:0:CID-d899b10e-10c9-4851-b60d-3e158e322a6214/06/15 10:09:09 INFO namenode.TransferFsImage: Transfer took 0.11s at 63.64 KB/s14/06/15 10:09:09 INFO namenode.TransferFsImage: Downloaded file fsimage.ckpt_0000000000000000935 size 7545 bytes.14/06/15 10:09:09 INFO util.ExitUtil: Exiting with status 014/06/15 10:09:09 INFO Node: SHUTDOWN_MSG:/************************************************************SHUTDOWN_MSG: Shutting down NameNode at slave1/192.168.66.92************************************************************/(7)启动备NN在备NN上执行命令:hadoop-daemon.sh start namenode(8)设置主NN(这一步可以省略,这是在设置手动切换NN时的步骤,ZK已经自动选择一个节点作为主NN了)到目前为止,其实HDFS还不知道谁是主NN,可以通过监控页面查看,两个节点的NN 都是Standby状态。