04 - Hadoop本地运行模式之Grep案例、WordCount案例

目录

1、官方Grep案例

1.1、创建在hadoop-3.1.3文件下面创建一个wcinput文件夹

1.2、将Hadoop的xml配置文件复制到input目录下

1.3、执行share目录下的MapReduce程序

1.4、查看输出结果

2、WordCount案例

2.1、创建在hadoop-3.1.3文件下面创建一个wcinput2文件夹

2.2、在wcinput2文件下创建一个wc.input文件

2.3、编辑wc.input文件

2.4、执行程序

2.5、查看结果


1、官方Grep案例

1.1、创建在hadoop-3.1.3文件下面创建一个wcinput文件夹

1.2、将Hadoop的xml配置文件复制到input目录下

[kgf@hadoop102 hadoop-3.1.3]$ cp etc/hadoop/*.xml wcinput/
[kgf@hadoop102 hadoop-3.1.3]$ ls wcinput/
capacity-scheduler.xml  hadoop-policy.xml  httpfs-site.xml  kms-site.xml     yarn-site.xml
core-site.xml           hdfs-site.xml      kms-acls.xml     mapred-site.xml
[kgf@hadoop102 hadoop-3.1.3]$

1.3、执行share目录下的MapReduce程序

[kgf@hadoop102 hadoop-3.1.3]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep wcinput/ outinput/ 'dfs[a-z.]+'

1.4、查看输出结果

[kgf@hadoop102 hadoop-3.1.3]$ cat outinput/part-r-00000
1       dfsadmin
[kgf@hadoop102 hadoop-3.1.3]$ ls
bin  etc  include  lib  libexec  LICENSE.txt  NOTICE.txt  outinput  README.txt  sbin  share  wcinput
[kgf@hadoop102 hadoop-3.1.3]$ ll outinput/
总用量 4
-rw-r--r--. 1 kgf kgf 11 4月   5 20:55 part-r-00000
-rw-r--r--. 1 kgf kgf  0 4月   5 20:55 _SUCCESS
[kgf@hadoop102 hadoop-3.1.3]$

2、WordCount案例

2.1、创建在hadoop-3.1.3文件下面创建一个wcinput2文件夹

[kgf@hadoop102 hadoop-3.1.3]$ mkdir wcinput2
[kgf@hadoop102 hadoop-3.1.3]$ ll
总用量 176
drwxr-xr-x. 2 kgf kgf    183 9月  12 2019 bin
drwxr-xr-x. 3 kgf kgf     20 9月  12 2019 etc
drwxr-xr-x. 2 kgf kgf    106 9月  12 2019 include
drwxr-xr-x. 3 kgf kgf     20 9月  12 2019 lib
drwxr-xr-x. 4 kgf kgf    288 9月  12 2019 libexec
-rw-rw-r--. 1 kgf kgf 147145 9月   4 2019 LICENSE.txt
-rw-rw-r--. 1 kgf kgf  21867 9月   4 2019 NOTICE.txt
drwxr-xr-x. 2 kgf kgf     88 4月   5 20:55 outinput
-rw-rw-r--. 1 kgf kgf   1366 9月   4 2019 README.txt
drwxr-xr-x. 3 kgf kgf   4096 9月  12 2019 sbin
drwxr-xr-x. 4 kgf kgf     31 9月  12 2019 share
drwxrwxr-x. 2 kgf kgf    210 4月   5 20:53 wcinput
drwxrwxr-x. 2 kgf kgf      6 4月   5 20:58 wcinput2
[kgf@hadoop102 hadoop-3.1.3]$

2.2、在wcinput2文件下创建一个wc.input文件

[kgf@hadoop102 hadoop-3.1.3]$ cd wcinput2/
[kgf@hadoop102 wcinput2]$ touch wc.input
[kgf@hadoop102 wcinput2]$ ll wc.input
-rw-rw-r--. 1 kgf kgf 0 4月   5 21:00 wc.input
[kgf@hadoop102 wcinput2]$ pwd
/opt/module/hadoop-3.1.3/wcinput2
[kgf@hadoop102 wcinput2]$

2.3、编辑wc.input文件

在文件中输入如下内容

[kgf@hadoop102 wcinput2]$ vim wc.input
[kgf@hadoop102 wcinput2]$ cat wc.input
hadoop yarn

hadoop mapreduce

atguigu

atguigu
[kgf@hadoop102 wcinput2]$

2.4、执行程序

[kgf@hadoop102 hadoop-3.1.3]$ pwd
/opt/module/hadoop-3.1.3
[kgf@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput2/ wcoutput2

2.5、查看结果

[kgf@hadoop102 hadoop-3.1.3]$ ll wcoutput2/
总用量 4
-rw-r--r--. 1 kgf kgf 38 4月   5 21:03 part-r-00000
-rw-r--r--. 1 kgf kgf  0 4月   5 21:03 _SUCCESS
[kgf@hadoop102 hadoop-3.1.3]$ cat wcoutput2/part-r-00000
atguigu 2
hadoop  2
mapreduce       1
yarn    1
[kgf@hadoop102 hadoop-3.1.3]$
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,我们需要在Eclipse中创建一个MapReduce项目,并导入Hadoop相关的jar包。然后,我们编写WordCount的Map和Reduce函数代码。Map函数负责将输入的数据切分为单词,并将每个单词作为key输出,value为1,即每个单词出现一次;Reduce函数则负责将相同单词的value相加,得到该单词的总出现次数。 接下来,我们需要将编写好的代码打包成jar包,并上传到Hadoop集群中的某个目录。在运行MapReduce任务之前,我们需要先将输入数据存储到Hadoop集群中的某个目录中。假设我们将输入数据存储在hdfs://localhost:9000/input/目录下。 然后,我们使用hadoop命令在集群上运行MapReduce任务,具体命令为: ``` hadoop jar WordCount.jar WordCount hdfs://localhost:9000/input/ hdfs://localhost:9000/output/ ``` 其中,hadoop jar命令表示使用hadoop命令运行jar包,WordCount.jar为我们打包好的jar包,WordCount为程序的主类名,hdfs://localhost:9000/input/为输入数据的路径,hdfs://localhost:9000/output/为输出结果的路径。 当我们运行该命令时,Hadoop会将输入数据分片,并将每个分片交给Map任务进行处理。Map任务会对输入数据进行处理,并将处理结果输出到本地磁盘上的一个临时文件中。Reduce任务会将所有Map任务的输出结果汇总起来,并将相同单词的value相加。最后,Reduce任务将输出结果存储到指定的输出目录中,我们可以通过hadoop fs -cat命令查看输出结果。 整个过程中,Eclipse-Hadoop插件提供了代码编写、打包、上传和调试等方便的功能,使得MapReduce编程变得更加简单和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值