IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行

IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行

本文主要讲怎么将 m a p r e d u c e mapreduce mapreduce程序打包成 j a r jar jar包并上传远程 H a d o o p Hadoop Hadoop集群运行,所以不讨论如何编写 m a p r e d u c e mapreduce mapreduce程序以及如何搭建 H a d o o p Hadoop Hadoop集群。然后虽然我这里实在 m a c O S macOS macOS系统下演示的,其实 w i n d o w s windows windows系统一样适用。

  • 先来看一下打包前的项目结构 ( i n p u t (input (input里面是存的要处理的数据 ) ) )

IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行_第1张图片

  • 右键项目选择 O p e n   M o d u l e   S e t t i n g Open\ Module\ Setting Open Module Setting

    IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行_第2张图片

  • 选择 A r t i f a c t s   →   +   → J A R → F r o m   m o d u l e s   w i t h   d e p e n d e n c i e s Artifacts\ \rightarrow\ +\ \rightarrow JAR \rightarrow From\ modules\ with\ dependencies Artifacts  + JARFrom modules with dependencies

    IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行_第3张图片

  • 选择主类

    先选择你这个项目的主类
    IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行_第4张图片

      然后把这里的路径改成项目位置的一级目录下面,如下图所示:
    

IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行_第5张图片

  • 点击 A p p l y Apply Apply
    IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行_第6张图片
  • 选择 B u i l d   →   B u i l d   A r t i f a c t s Build\ \rightarrow\ Build\ Artifacts Build  Build Artifacts

IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行_第7张图片

  • 选择 B u i l d Build Build

IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行_第8张图片

  • 可以看到 j a r jar jar包已经生成
    上述操作之后会发现项目下面多了两个文件夹,一个是 M E T A − I N F META-INF METAINF (这个不用管他),另一个是 o u t out out文件夹,在里面有你要的 j a r jar jar
    IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行_第9张图片
  • 在终端或者 c m d cmd cmd里面 s s h ssh ssh到你的远程虚拟机
    IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行_第10张图片
  • 然后上传刚才生成的 j a r jar jar
    我这里直接放在了 H o m e Home Home下面,也就是上图中的红色文件(我是提前传上去了)
  • 运行之前要检查你的 H a d o o p Hadoop Hadoop集群是否正确运行
    这里根据你的集群是伪分布模式还是完全分布式集群,使用 j p s jps jps命令查看所有必须的进程是否已经启动(有哪些进程与你搭建集群时的配置有关系)
  • 然后将你的数据上传至 h d f s hdfs hdfs
    你可以先将数据从本地上传到虚拟机上,然后使用一下命令上传到 h d f s hdfs hdfs:
    hdfs dfs -put 虚拟机本地jar包存储完整路径 hdfs文件系统存储的路径
    
  • 最后测试啦
    命令如下所示(以我的例子为例):
    [hadoop@CQU-Hadoop-052 ~]$ hadoop jar PlayerCount.jar /wzw/input /wzw/output
    
    注意这里运行之前 / w z w /wzw /wzw下面只有一个 i n p u t input input文件夹, o u t p u t output output文件夹是没有的且不能有的。所以运行之前最好检查一下是否有这个目录,不然会报错。下面是运行结果
    IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行_第11张图片
    IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行_第12张图片
    可以看到运行成功了
    IntelliJ IDEA中编写mapreduce程序上传至远程Hadoop集群运行_第13张图片
    浏览器进入配置 r e s o u r c e m a n a g e r resourcemanager resourcemanager的节点的 8088 8088 8088端口(好像这个是默认的,如果修改了的话可能不是这个,如果忘记了的话可以翻一下你的那几个 x m l xml xml配置文件)也可以看到刚才提交的 j o b job job S U C C E E D E D SUCCEEDED SUCCEEDED状态

你可能感兴趣的:(hadoop,大数据,mapreduce)