Hadoop2的简单安装

前面花了很多时间来介绍hadoop1的安装,随着hadoop的发展,hadoop2的应用也越来越普及,hadoop2解决了hadoop1中的很多问题,比如单点故障,namenode容量小的问题。

我们先来安装最简单的版本

Hadoop 版本:2.2.0

OS 版本: Centos6.4

Jdk 版本: jdk1.6.0_32

环境配置

机器名

Ip地址

功能

Hadoop1

192.168.124.135

NameNode, DataNode,

SecondaryNameNode

ResourceManager

Hadoop2

192.168.124.136

DataNode, NodeManager

Hadoop3

192.168.124.137

DataNode, NodeManager

安装

  OS安装(见hadoop1)

  创建用户和组(见hadoop1)

  配置ssh(见hadoop1)

  安装 jdks和hadoop

使用FileZilla将hadoop-2.2.0上传到hadoop1,hadoop2,hadoop3

  然后加压缩

      tar xzvf hadoop-2.2.0.tar.gz

配置(与hadoop1的配置挺像)

vi etc/hadoop/hadoop-env.sh 修改jdk位置
export JAVA_HOME=/home/hadoop/jdk1.6.0_32

vi etc/hadoop/mapred-env.sh修改jdk位置

export JAVA_HOME=/home/hadoop/jdk1.6.0_32

vi etc/hadoop/yarn-env.sh修改jdk位置

export JAVA_HOME=/home/hadoop/jdk1.6.0_32

vi etc/hadoop/core-site.xml

<configuration>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>/home/hadoop/repo1/tmp</value>

        <description>A base for other temporary directories.</description>

    </property>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://hadoop1:9000</value>

    </property>

</configuration>

vi etc/hadoop/hdfs-site.xml

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>2</value>

    </property>

    <property>

        <name>dfs.namenode.name.dir</name>

        <value>/home/hadoop/repo1/name</value>

    </property>

    <property>

        <name>dfs.datanode.data.dir</name>

        <value>/home/hadoop/repo1/data</value>

    </property>

</configuration>

vi etc/hadoop/yarn-site.xml

<configuration>

    <property>

        <description>the valid service name</description>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

    <property>

        <description>The hostname of the RM.</description>

        <name>yarn.resourcemanager.hostname</name>

        <value>hadoop1</value>

    </property>

</configuration>

vi etc/hadoop/mapred-site.xml

<configuration>

    <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

</configuration>

vi etc/hadoop/slaves

hadoop1

hadoop2

hadoop3

格式化namenode

在hadoop1上运行:bin/hdfs namenode -format -clusterid mycluster

启动hadoop集群

cd /home/hadoop/hadoop-2.2.0

sbin/start-all.sh

从图上可以看出,先启动namenode,再启动datanode, 再启动secondarynamenode, 再启动resourcemanger, 最后启动nodemanager。

使用jps查看启动的进程

在hadoop1上运行jps

在hadoop2上运行jps

在hadoop3上运行jps

很显然,NameNode, DataNode, SecondaryNameNode, JobTracker, TaskTracker都已启动了

查看hadoop集群状态

bin/hadoop dfsadmin -report

Hadoop提供了web页面的接口

测试一下mapred的程序,我们运行hadoop自带的wordcount

创建一个输入目录:

bin/hdfs dfs -mkdir /user/hadoop/input

上传一些文件

  bin/hdfs dfs -copyFromLocal  etc/hadoop/* /user/hadoop/input/

看一下文件

bin/hdfs dfs -ls /user/hadoop/input

启动mapred程序

bin/hadoop jar hadoop-examples-1.2.1.jar wordcount /user/hadoop/input /user/hadoop/output

我们还发现一个事实,在虚拟机环境中运行yarn框架下的mapreduce程序比传统框架中的mapreduce慢一些,因为节点的交互变的更多。

在提交wordcount任务后,我们使用jps看看yarn是怎么运行mapreduce任务的,他在hadoop3上启动一个MRAppMaster,然后调度很多YarnChild,在传统的mapreduce框架下,通常同时最多只能运行4个task,但是在yarn框架下,没有这种限制。Yarn中的ResourceManager会根据节点的性能来合理的分配。

hadoop1运行jps

hadoop2运行jps

hadoop3运行jps

原文地址:https://www.cnblogs.com/easycloud/p/3724555.html