博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hadoop 开发环境设置以及可运行jar包生成
阅读量:6955 次
发布时间:2019-06-27

本文共 3270 字,大约阅读时间需要 10 分钟。

hot3.png

开发环境搭建:

两个文件

hadoop的win安装包,然后配置path;

然后还有一个几个配置的包,然后把配置放在hadoop安装包里面的;

 

====================

 

解决MapReduce任务在windows本地执行的NullPointerException问题

原创 2017年03月01日 11:06:25

为了能在调试MapReduce任务阶段有更好的工作效率,我们可以把URI的Schema设置为file:///,这样MapReduce任务就可以范围windows本地文件夹。当我在尝试这么做的时候出现了如下的空指针异常

Exception in thread "main" java.lang.NullPointerException

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1010)
at org.apache.hadoop.util.Shell.runCommand(Shell.java:445)
at org.apache.hadoop.util.Shell.run(Shell.java:418)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:633)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:421)
at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:281)
at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:125)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:348)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1285)

 

原因是hadoop.dll文件和winutils.exe文件缺失了。解决步骤为:

 

1,下载这两个文件,下载地址:

2,解压之后,把hadoop.dll拷贝到C:\Windows\System32下面

3,创建环境变量HADOOP_HOME,然后把winutils.exe文件拷贝到${HADOOP_HOME}/bin目录下

 

=============================

使用Hadoop2.6.0,在eclipse下面调试mapreduce程序的时候,控制台不打印程序运行时的日志,而是显示如下信息:

 

log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory). 

log4j:WARN Please initialize the log4j system properly. 

log4j:WARN hadoop See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

说明没有配置log4j.properties文件。这虽然不影响程序的正常运行,但是看不到日志难免不爽。
解决方法:
把Hadoop2.6.0的安装目录下面的/etc/hadoop/目录下面的log4j.properties文件拷贝放到MapReduce工程的src目录下面。

===========================

maven打可运行jar包:

在pom文件里面加第一个plugin

   <build>

    <!-- <resources>  
        <resource>  
            <directory>src/main/java</directory>  
            <includes>  
                <include>**/*.xml</include>  
            </includes>  
        </resource>  
    </resources>   -->
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>com.autohome.userbehaviorenhance.mr.UserBehaviorEnhancementMR</mainClass>
                    </manifest>
                </archive>
                <encoding>UTF8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <attach>true</attach>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
                <!--<verbal>true</verbal> -->
            </configuration>
        </plugin>
     </plugins>
    </build>

 

然后在run as ---> mvn:build上面的goal参数里面加入参数:

clean assembly:assembly

然后,再在打包的target里面寻找 后缀为  -jar-with-dependencies.jar  的jar包即可运行jar包;

 

 

其实也可以直接用eclipse的export来打可运行jar包,

一定要注意,buildpath配置下面的configuration build path source里面是否有过滤设置,否则可能一些文件打不进去;

这两种情况,一定要注意;

 

 

转载于:https://my.oschina.net/newchaos/blog/1613135

你可能感兴趣的文章
我的友情链接
查看>>
iOS nil、Nil、NULL和NSNull 的使用
查看>>
c++ primer第五版 练习7.9
查看>>
前途是自己掌握的
查看>>
saltstack jobs管理
查看>>
WebStorm设置Themes
查看>>
puppet安装
查看>>
DNS之资源记录(RR)以及配置
查看>>
com.sun.faces.config.ConigureListener 错误解决办法
查看>>
Spring中Bean配置
查看>>
FTP连接时出现“227 Entering Passive Mode” 的解决方法
查看>>
以太网交换机如何工作以及MAC和PHY
查看>>
Ubuntu 设置定时crontab任务
查看>>
linux下test命令
查看>>
tshark可以实现命令行脚本分析流量
查看>>
单例模式的使用和继承
查看>>
LVM逻辑卷管理-软RAID磁盘阵列
查看>>
LVS的三种模式区别详解
查看>>
virtual box PK vmware
查看>>
wamp配置虚拟主机
查看>>