【集群模式】执行MapReduce程序-wordcount

简介: 因为是在hadoop集群下通过jar包的方式运行我们自己写的wordcount案例,所以需要传递的是 HDFS中的文件路径,所以我们需要修改上一节【本地模式】中 WordCountRunner类 的代码

因为是在hadoop集群下通过jar包的方式运行我们自己写的wordcount案例,所以需要传递的是 HDFS中的文件路径,所以我们需要修改上一节【本地模式】中 WordCountRunner类 的代码:

//5.设置统计文件输入的路径,将命令行的第一个参数作为输入文件的路径
        FileInputFormat.setInputPaths(job,new Path(args[0]));
        //6.设置结果数据存放路径,将命令行的第二个参数作为数据的输出路径
        FileOutputFormat.setOutputPath(job,new Path(args[1]));

打包项目

因为hadoop集群中本身就是hadoop环境,所以不需要打包hadoop-client依赖,而self4j和junit对于这个案例也意义不大,也可省略。


在pom.xml中添加依赖


其中,被注释掉的部分的作用是将maven项目中所有的依赖一同打包为jar文件,这里可以省略。

<build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
<!--    需要依赖的话可以使用该插件将所有依赖一同打包        -->
<!--            <plugin>-->
<!--                <artifactId>maven-assembly-plugin </artifactId>-->
<!--                <configuration>-->
<!--                    <descriptorRefs>-->
<!--                        <descriptorRef>jar-with-dependencies</descriptorRef>-->
<!--                    </descriptorRefs>-->
<!--                </configuration>-->
<!--                <executions>-->
<!--                    <execution>-->
<!--                        <id>make-assembly</id>-->
<!--                        <phase>package</phase>-->
<!--                        <goals>-->
<!--                            <goal>single</goal>-->
<!--                        </goals>-->
<!--                    </execution>-->
<!--                </executions>-->
<!--            </plugin>-->
        </plugins>
    </build>

打包完成后,建议将文件名修改的简洁一点(放便我们在linux下的输入),直接通过sz工具将jar包通过xshell拖拽到我们的hadoop目录下(将当前目录切换到hadoop目录下,然后直接将文件进行拖拽到xshell界面即可)。


sz工具说明

一、安装 lrzsz

# RedHat 系列:CentOS/Fedora

yum install lrzsz

# Debian 系列:Debian/Ubuntu

apt install lrzsz

二、执行命令 sz

sz 文件名

作用:将linux环境下的文件直接下载到windows中(下载位置自己选择)


三、将文件发送到终端

这里就是从windows发送文件到linux 的hadoop目录下

image.png


执行命令

hadoop jar wc.jar com.lyh.mapreduce.wordcount2.WordCountRunner /wcinput/ /wcoutput


image.png

image.png

相关文章
|
6月前
|
SQL 分布式计算 关系型数据库
阿里云E-MapReduce Trino专属集群外连引擎及权限控制踩坑实践
本文以云厂商售后技术支持的角度,从客户的需求出发,对于阿里云EMR-Trino集群的选型,外连多引擎的场景、Ldap以及Kerberos鉴权等问题进行了简要的实践和记录,模拟客户已有的业务场景,满足客户需求的同时对过程中的问题点进行解决、记录和分析,包括但不限于Mysql、ODPS、Hive connector的配置,Hive、Delta及Hudi等不同表格式读取的兼容,aws s3、阿里云 oss协议访问异常的解决等。
|
数据库 数据安全/隐私保护
阿里云E-MapReduce集群-开源Ldap密码不安全问题解决方案
社区开源Ldap密码不安全问题解决方案
|
分布式计算 Java API
阿里云E-MapReduce集群不同计算引擎sleep task使用笔记
需求:日常在E-MapReduce集群中进行相关测试,验证一些切换或变更是否会影响业务的运行导致任务failed。所以需要在测试集群中运行指定资源数(vcore及memory)或者指定运行时间的任务。 目前用到MapReduce和spark任务两种,其余的持续更新补充中……
|
存储 分布式计算 Hadoop
伪分布式安装部署(运行MapReduce程序)
伪分布式安装部署(运行MapReduce程序)
173 0
|
分布式计算 资源调度 Hadoop
Hadoop基础学习---5、MapReduce概述和WordCount实操(本地运行和集群运行)、Hadoop序列化
Hadoop基础学习---5、MapReduce概述和WordCount实操(本地运行和集群运行)、Hadoop序列化
|
分布式计算 监控 搜索推荐
MapReduce 程序
如何使用 Java API 来编写一个简单的 MapReduce 程序
78 0
|
存储 分布式计算 资源调度
|
分布式计算 Java Hadoop
【本地模式】第一个Mapreduce程序-wordcount
也就是在windows环境下通过hadoop-client相关jar包进行开发的,我们只需要通过本地自己写好MapReduce程序即可在本地运行。
|
分布式计算 资源调度 监控
YARN On Mapreduce搭建与wordCount案例实现
YARN On Mapreduce搭建与wordCount案例实现
|
存储 分布式计算 Hadoop
Mapreduce中WordCount源码理解
Mapreduce中WordCount源码理解

相关实验场景

更多