编写hadoop程序,并打包jar到hadoop集群运行

windows环境下编写hadoop程序

  • 新建:File->new->Project->Maven->next

1249529-20180516203937088-922577743.png

GroupId 和ArtifactId 随便写(还是建议规范点)->finfsh

1249529-20180516203949247-2026227848.png

会生成pom.xml,文件内容如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.hadoopbook</groupId>
    <artifactId>hadoop-demo</artifactId>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-common</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-core</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

</project>
  • 可以网上找个wordCount(单词计数)源码进行测试,复制进去会发现以下的那些包都是报红,因为许多类都是无法识别的。

    import org.apache.hadoop.io.IntWritable;
    import org.apache.hadoop.io.LongWritable;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Mapper;

接下来打开File->project Structure->Modules->右侧±>JARs or directories

1249529-20180516204020516-1096469449.png

将你hadoop集群里面下载的jar包全部导入进去

1249529-20180516204027870-1471359219.png

点击左侧Arifacts ->±>JAR->empty
1249529-20180516204428916-740415770.png

点击output layout下方的+,选择module output,然后勾选我们的项目,点击确定,这时报错的信息就没有了

1249529-20180516205852881-1864814995.png

idea打包成jar

  • File->project Structure->点击左侧Arifacts->±>JAR->From modules with dependenciestu,Build on make打上勾

1249529-20180516204045451-567923229.png

MAain.class为程序的主方法,相当于程序的入口
JAR files from libraries选第二个,选定输出路径->ok

1249529-20180516204056891-38908930.png

  • Build->Build Arifacts->项目的jar->build->到输出路径查看即可。

1249529-20180516204108072-1227433575.png

1249529-20180516205706550-2859739.png

上传jar包到hadoop集群并运行

  • 利用远程工具将生成的.jar上传到hadoop主节点的目录下(/app/hadoop/hadoop-2.2.0)目录根据自己的情况而定

  • 创建input目录

    hadoop fs -mkdir -p /usr/hadoop/input

  • 复制本地文件到hdfs文件系统

    hadoop fs -put test.txt /usr/hadoop/input

  • 现在.jar有了,输入文件有了,执行.jar。切记不要自己手动提前新建输出文件

    hadoop jar hadoop_demo_jar/hadoop-demo.jar workCount /usr/hadoop/input /usr/hadoop/output

  • 执行成功

1249529-20180516204206497-1518681888.png

  • 查看输出结果

    hadoop fs -cat /usr/hadoop/output/*

1249529-20180516204219355-1961545264.png

HDFS常用命令可以参考这篇博客写得不错:https://blog.csdn.net/sunshingheavy/article/details/53227581

转载于:https://www.cnblogs.com/zlxbky/p/9048076.html

l

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值