从零学习大数据,第八节,Hadoop运行模式 ,单机模式,伪分布式,案例grep、wordcount

 我的笔记   2019-05-09 20:32   1015 人阅读  2 条评论

1、概述

        1)官方网址

            (1)官方网站:

            http://hadoop.apache.org/

            (2)各个版本归档库地址

            https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/

            (3)hadoop2.7.2版本详情介绍

            http://hadoop.apache.org/docs/r2.7.2/

        2)Hadoop运行模式

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

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

            (2)伪分布式模式:

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

            (3)完全分布式模式:

            多个节点一起运行。


2、本地文件运行Hadoop 案例

        1) 官方grep案例

            1)创建在hadoop-2.7.2文件下面创建一个input文件夹

            [fyd@hadoop101 hadoop-2.7.2]$mkdir input

            2)将hadoop的xml配置文件复制到input

            [fyd@hadoop101 hadoop-2.7.2]$cp etc/hadoop/*.xml input

            3)执行share目录下的mapreduce程序

            [fyd@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'

            4)查看输出结果

            [fyd@hadoop101 hadoop-2.7.2]$ cat output/*

        2) 官方wordcount案例

            1)创建在hadoop-2.7.2文件下面创建一个wcinput文件夹

            [fyd@hadoop101 hadoop-2.7.2]$mkdir wcinput

            2)在wcinput文件下创建一个wc.input文件

    
            [fyd@hadoop101 hadoop-2.7.2]$cd wcinput
            [fyd@hadoop101 wcinput]$touch wc.input

            3)编辑wc.input文件

            [fyd@hadoop101 wcinput]$vim wc.input            
            在文件中输入如下内容
            hadoop yarn
            hadoop mapreduce 
            atguigu
            atguigu
            
            保存退出::wq

            4)回到hadoop目录/opt/module/hadoop-2.7.2

            5)执行程序:

            fyd@hadoop101 hadoop-2.7.2]$hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput

            6)查看结果:

            [fyd@hadoop101 hadoop-2.7.2]$cat wcoutput/part-r-00000
            fyd     2
            hadoop  2
            mapreduce       1
            yarn    1


            2 )官方wordcount案例

            1)创建在hadoop-2.7.2文件下面创建一个wcinput文件夹

                 [fyd@hadoop101 hadoop-2.7.2]$mkdir wcinput

            2)在wcinput文件下创建一个wc.input文件

                [fyd@hadoop101 hadoop-2.7.2]$cd wcinput
                [fyd@hadoop101 wcinput]$touch wc.input

            3)编辑wc.input文件

                [fyd@hadoop101 wcinput]$vim wc.input                
                在文件中输入如下内容
                hadoop yarn
                hadoop mapreduce 
                fyd
                fyd
                
                保存退出::wq

            4)回到hadoop目录/opt/module/hadoop-2.7.2

            5)执行程序:

                [fyd@hadoop101 hadoop-2.7.2]$hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput

            6)查看结果:

                [fyd@hadoop101 hadoop-2.7.2]$cat wcoutput/part-r-00000                
                fyd 2
                hadoop  2
                mapreduce       1
                yarn    1

            

3、伪分布式运行Hadoop 案例



(1) HDFS上运行MapReduce 程序

1)分析:

(1)准备1台客户机

(2)安装jdk

(3)配置环境变量

(4)安装hadoop

(5)配置环境变量

(6)配置集群

(7)启动、测试集群增、删、查

(8)在HDFS上执行wordcount案例

2)执行步骤

(1)配置集群

(a)配置:hadoop-env.sh

Linux系统中获取jdk的安装路径:

                [root@ hadoop101 ~]# echo $JAVA_HOME
                /opt/module/jdk1.7.0_79

                                修改JAVA_HOME 路径:

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

                        (b)配置:core-site.xml

            <!-- 指定HDFS中NameNode的地址 -->            
            <property>
            	<name>fs.defaultFS</name>
                <value>hdfs://hadoop101:8020</value>
            </property>
            
            <!-- 指定hadoop运行时产生文件的存储目录 -->
            <property>
            	<name>hadoop.tmp.dir</name>
            	<value>/opt/module/hadoop-2.7.2/data/tmp</value>
            </property>

                        (c)配置:hdfs-site.xml  

            <!-- 指定HDFS副本的数量 -->
        	<property>
        		<name>dfs.replication</name>
        		<value>1</value>
        	</property>

(2)启动集群

(a)格式化namenode(第一次启动时格式化,以后就不要总格式化)

                hdfs namenode -format

                        (b)启动namenode

                hadoop-daemon.sh start namenode

                        (c)启动datanode

                hadoop-daemon.sh start datanode

                (3)查看集群

(a)查看是否启动成功

                [root@hadoop ~]# jps
                13586 NameNode
                13668 DataNode
                13786 Jps

                        (b)查看产生的log日志

                当前目录:/opt/module/hadoop-2.7.2/logs                
                
                [root@hadoop101 logs]# ls
                
                hadoop-root-datanode-hadoop.atguigu.com.log
                hadoop-root-datanode-hadoop.atguigu.com.out
                hadoop-root-namenode-hadoop.atguigu.com.log
                hadoop-root-namenode-hadoop.atguigu.com.out
                SecurityAuth-root.audit
                
                [root@hadoop101 logs]# cat hadoop-root-datanode-hadoop.atguigu.com.log

(c)web端查看HDFS文件系统

                http://192.168.1.101:50070/dfshealth.html#tab-overview            
            
                注意:如果不能查看,看如下帖子处理
                http://www.cnblogs.com/zlslch/p/6604189.html

                (4)操作集群

(a)在hdfs文件系统上创建一个input文件夹

                [fyd@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /user/fyd/mapreduce/wordcount/input

(b)将测试文件内容上传到文件系统上

                [fyd@hadoop101 hadoop-2.7.2]$ hadoop fs -put wcinput/wc.input  /user/fyd/mapreduce/wordcount/input/

                        (c)查看上传的文件是否正确

                [fyd@hadoop101 hadoop-2.7.2]$                 bin/hdfs dfs -ls  /user/fyd/mapreduce/wordcount/input/
                [fyd@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs –cat  /user/fyd/mapreduce/wordcount/input/wc.input

                        (d)在Hdfs上运行mapreduce程序

                [fyd@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/fyd/mapreduce/wordcount/input/ /user/fyd/mapreduce/wordcount/output

                        (e)查看输出结果

命令行查看:

                [fyd@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/fyd/mapreduce/wordcount/output/*

                                浏览器查看

(f)将测试文件内容下载到本地

                [fyd@hadoop101 hadoop-2.7.2]$ hadoop fs -get /user/fyd/mapreduce/wordcount/output/part-r-00000 ./wcoutput/

                        (g)删除输出结果

                [fyd@hadoop101 hadoop-2.7.2]$ hdfs dfs -rmr /user/fyd/mapreduce/wordcount/output



(2)  YARN上运行MapReduce 程序

1)分析:

(1)准备1台客户机

(2)安装jdk

(3)配置环境变量

(4)安装hadoop

(5)配置环境变量

(6)配置集群yarn上运行

(7)启动、测试集群增、删、查

(8)在yarn上执行wordcount案例

2)执行步骤

(1)配置集群

(a)配置yarn-env.sh

配置一下JAVA_HOME

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

                        (b)配置yarn-site.xml

<!-- reducer获取数据的方式 -->
<property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop102</value>
</property>

                         (c)配置:mapred-env.sh

配置一下JAVA_HOME

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

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

        <!-- 指定mr运行在yarn上 -->
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>

                (2)启动集群

(a)启动resourcemanager

sbin/yarn-daemon.sh start resourcemanager

                        (b)启动nodemanager

sbin/yarn-daemon.sh start nodemanager

                (3)集群操作

(a)yarn的浏览器页面查看

http://192.168.1.101:8088/cluster

(b)删除文件系统上的output文件

bin/hdfs dfs -rm -R /user/fyd/mapreduce/wordcount/output

                        (c)执行mapreduce程序

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

                        (d)查看运行结果

bin/hdfs dfs -cat /user/atguigu/mapreduce/wordcount/output/*

(3)  修改本地临时文件存储目录

1)停止进程

[fyd@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop nodemanager
[fyd@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop resourcemanager
[fyd@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh stop datanode
[fyd@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh stop namenode

        2)修改hadoop.tmp.dir

[core-site.xml]

	<!-- 指定hadoop运行时产生文件的存储目录 -->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/module/hadoop-2.7.2/data/tmp</value>
	</property>

        3)格式化NameNode

[fyd@hadoop101 hadoop-2.7.2]$ hadoop namenode -format

        4)启动所有进程

[fyd@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode
[fyd@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode
[fyd@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager
[fyd@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager

        5)查看/opt/module/hadoop-2.7.2/data/tmp这个目录下的内容。

(4)  Hadoop配置文件说明

Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。

(1)默认配置文件:存放在hadoop相应的jar包中

[core-default.xml]
		hadoop-common-2.7.2.jar/ core-default.xml

[hdfs-default.xml]
		hadoop-hdfs-2.7.2.jar/ hdfs-default.xml

[yarn-default.xml]
		hadoop-yarn-common-2.7.2.jar/ yarn-default.xml

[core-default.xml]
		hadoop-mapreduce-client-core-2.7.2.jar/ core-default.xml

    (2)自定义配置文件:存放在$HADOOP_HOME/etc/hadoop

core-site.xml

hdfs-site.xml

yarn-site.xml

mapred-site.xml









我的笔记博客版权我的笔记博客版权
本文地址:https://wdnote.com/post/702.html
版权声明:本文为原创文章,版权归 我的笔记 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

 评论列表

  1. 新闻头条
    新闻头条  @回复

    文章不错支持一下吧

  2. 头条
    头条  @回复

    文章不错支持一下吧