Hadoop运行模式

Posted oyjg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop运行模式相关的知识,希望对你有一定的参考价值。

Hadoop运行模式

(1)本地模式(默认模式):

  不需要启用单独进程,直接可以运行,测试和开发时使用。

  即在一台机器上进行操作,仅为单机版。

 

  本地运行Hadoop官方MapReduce案例 操作命令:

  执行案例: hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-example-2.7.2.jar wordcount xxx(文件位置) xxx(输出位置)

 

 

2)伪分布式模式:

  等同于完全分布式,只有一个节点。

  配置集群:

    配置:core-site.xml

<!-- 指定HDFSNameNode的地址 -->

<property>

  <name>fs.defaultFS</name>

       <value>hdfs://hadoop101:9000</value>

</property>

  

   配置:hdfs-site.xml  

<!-- 指定HDFS副本的数量 -->

<property>

  <name>dfs.replication</name>

  <value>1</value>

</property>

 

 

          启动集群

   格式化namenode(第一次启动时格式化,不要总格式化) hdfs namenode -format

   启动namenode:  hadoop-daemon.sh start namenode

   启动datanode:  hadoop-daemon.sh start datanode

   查看集群

    jps:查看Java进程

技术图片

 

     可以在浏览器输入IP:50070进入可视化端查看HDFS文件系统

     操作集群

      新建文件夹:   hadoop fs -mkdir -p /xx/xx  (-p为递归创建)

   上传文件到文件系统 hadoop fs -put /文件位置    /放置的位置

      查看上传的文件   hadoop fs -cat /文件位置

      在HDFS上运行MapReduce程序 : 

       hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/mapreduce/wordcount/input/ /user/atguigu/mapreduce/wordcount/output

  跟本地模式一样,只是需要修改文件在文件系统中的路径

       查看结果 hadoop fs -cat /XX

       下载内容到本地  hadoop fs -get /XX  /XX

       删除结果   hadoop fs -rmr /XX   (-rmr即递归删除)

       在YARN上运行MapReduce程序:

       配置yarn-env.sh  :配置一下JAVA_HOME

  配置yarn-site.xml

<!-- reducer获取数据的方式 -->

<property>

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

 <value>mapreduce_shuffle</value>

</property>

 

<!-- 指定YARNResourceManager的地址 -->

<property>

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

<value>hadoop101</value>

</property>

配置:mapred-env.sh:配置一下JAVA_HOME

配置: (对mapred-site.xml.template重新命名为) mapred-site.xml

<!-- 指定mr运行在yarn-->

<property>

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

<value>yarn</value>

</property>

启动resourcemanager 

sbin/yarn-daemon.sh start resourcemanager

启动nodemanager

sbin/yarn-daemon.sh start nodemanager

 

yarn的浏览器页面查看

 

http://192.168.1.101:8088/cluster技术图片

 

 

3)完全分布式模式

  多个节点一起运行。

 

步骤:

 

1)虚拟机准备 准备3台客户机

2)安装jdk和hadoop并配置环境变量

3)配置客户机之间ssh无密登录

4)配置集群

4)启动集群

配置客户机之间ssh无密登录

首先进入当前用户的家目录,然后进入.ssh文件夹(此文件夹为隐藏 可通过ls -al查看所有文件)

生成一对公钥和私钥   ssh-keygen -t rsa 

将会生成id_rsa(私钥)和id_rsa_pub(公钥)

将公钥复制到要免密登录的目标机器上  ssh-copy-id 192.168.1.102

rsync

rsync远程同步工具,主要用于备份和镜像。具有速度避免复制相同内容支持符号链接的点。

rsync -rvl     $pdir/$fname         [email protected]$host:$pdir

-r 递归

-v 显示复制过程

-l 拷贝符号连接

编写集群分发脚本xsync

在/usr/local/bin这个目录下存放的脚本,可以在系统任何地方直接执行,需要制定路径。

 

在/usr/local/bin目录下创建xsync文件,文件内容如下:

#!/bin/bash

#1 获取输入参数个数,如果没有参数,直接退出

pcount=$#

if((pcount==0)); then

echo no args;

exit;

fi

 

#2 获取文件名称

p1=$1

fname=`basename $p1`

echo fname=$fname

 

#3 获取上级目录到绝对路径

pdir=`cd -P $(dirname $p1); pwd`

echo pdir=$pdir

 

#4 获取当前用户名称

user=`whoami`

 

#5 循环

for((host=103; host<105; host++)); do

        #echo $pdir/$fname [email protected]$host:$pdir

        echo --------------- hadoop$host ----------------

        rsync -rvl $pdir/$fname [email protected]$host:$pdir

done

修改脚本 xsync 具有执行权限 chmod 777 xsync

调用脚本形式:xsync 文件名称

 

编写分发脚本xcall

在所有主机上同时执行相同的命令

在/usr/local/bin目录下创建xcall文件,文件内容如下:

#!/bin/bash

pcount=$#

if((pcount==0));then

        echo no args;

        exit;

fi

 

echo -------------localhost----------

[email protected]

for((host=101; host<=108; host++)); do

        echo ----------hadoop$host---------

        ssh hadoop$host [email protected]

done

修改脚本 xcall 具有执行权限

调用脚本形式 xcall 操作命令

 

 

配置集群

集群部署规划

 

Hadoop102

hadoop103

hadoop104

HDFS

 

NameNode

DataNode

 

DataNode

SecondaryNameNode

DataNode

YARN

 

NodeManager

ResourceManager

NodeManager

 

NodeManager

因为NameNode和ResourceManager,SecondaryNameNode都需要消耗大量资源,所以分摊配置在不同的服务器。

配置文件

core-site.xml

<!-- 指定HDFSNameNode的地址 -->

<property>

<name>fs.defaultFS</name>

        <value>hdfs://hadoop102:9000</value>

</property>

<!-- 指定hadoop运行时产生文件的存储目录 -->

<property>

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

<value>/opt/module/hadoop-2.7.2/data/tmp</value>

</property>

hadoop-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79

hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>hadoop104:50090</value>

    </property>

</configuration>

slaves

hadoop102

hadoop103

hadoop104

yarn-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79

yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

<!-- reducer获取数据的方式 -->

    <property>

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

        <value>mapreduce_shuffle</value>

    </property>

 

<!-- 指定YARNResourceManager的地址 -->

<property>

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

<value>hadoop103</value>

</property>

</configuration>

mapred-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79

mapred-site.xml

<configuration>

<!-- 指定mr运行在yarn-->

<property>

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

<value>yarn</value>

</property>

</configuration>

在集群上分发以上所有文件

xsync /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml

xsync /opt/module/hadoop-2.7.2/etc/hadoop/yarn-site.xml

xsync /opt/module/hadoop-2.7.2/etc/hadoop/slaves

查看文件分发情况

xcall cat /opt/module/hadoop-2.7.2/etc/hadoop/slaves

启动集群

如果集群是第一次启动,需要格式化namenode

bin/hdfs namenode -format

启动HDFS

sbin/start-dfs.sh

启动yarn

sbin/start-yarn.sh

注意:NamenodeResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn

 

以上是关于Hadoop运行模式的主要内容,如果未能解决你的问题,请参考以下文章

求:hadoop三种运行模式的书面解释,急!!

大数据 hadoop 三种运行模式的区别、及详细配置讲解

Hadoop—— Hadoop运行模式

大数据技术之_03_Hadoop学习_02_入门_Hadoop运行模式+本地运行模式+伪分布式运行模式+完全分布式运行模式(开发重点)+Hadoop编译源码(面试重点)+常见错误及解决方案(示例代(代

Hadoop运行模式

hadoop本地运行模式调试