本文讲述使用IntelliJ IDEA打包Project的过程,即,打jar包。

环境:Mac OS X 10.9.5, IntelliJ IDEA 13.1.4, Hadoop 1.2.1

Hadoop放在虚拟机中,宿主机通过SSH连接,IDE和数据文件在宿主机。IDEA自身运行于JDK 1.8,IDEA工程及Hadoop使用JDK 1.6。

在本系列博文的第一篇,我因不会使用IDEA打jar包,不得不直接调试代码,遇到输入路径不存在问题。今天,我打了几次jar包,结果不都满意,默认情况,IDEA把依赖的库全打包,导出的包太大,虽然可用,但是我强迫症发作,想搞个最小体积的jar包,因为服务器上已有hadoop运行需要的库文件,按理我只需打包自己的类即可。

参考VIC的博客,总算得到了仅包含自己工程的jar包了。

第一步,command + ;或File->Project Structure...打开Project Structure。

第二步,点击Artifacts,再点击Add。

第三步,在弹出菜单中选择Jar -> Empty,因为打最小体积jar包,如下图所示。

第四步,填好jar包名和输出路径,如下图所示。

第五步,在Output Layout中添加输出到jar包的模块,如下图所示。

这里,如果需要添加额外的库文件,在Mac OS X下建议使用绝对路径,像~/Desktop这种最好写成/Users/用户名/Desktop,否则在找classpath时可能找不到。

第六步,在弹出窗口中指定模块,如下图所示。

确定后,如果模块只包含一个main函数,则自动指定。否则,需要手工指定。

第七步,[可选]手工指定main函数。

一切就绪,如下图所示。

第八步,打包。

Build->Build Artifacts

在弹出菜单中,选择Build或Rebuild。

最后,因为指定了主类,则hadoop执行脚本应该忽略主类参数,即

  hadoop jar [jar包] [input路径] [output路径]

如果按执行样例jar的写法hadoop jar hadoop-example-1.2.1.jar wordcount input ouput,则wordcount会被当成是输入参数,如下图所求。

Hadoop on Mac with IntelliJ IDEA - 4 制作jar包的更多相关文章

  1. Hadoop on Mac with IntelliJ IDEA - 7 解决failed to report status for 600 seconds. Killing!问题

    本文讲述作业在Hadoop 1.2.1完成map后ruduce阶段遇到failed to report status for 600 seconds. Killing!问题的解决过程. 环境:Mac ...

  2. 如何制作Jar包并在android中调用jar包

    android制作jar包: 新建android工程,然后右击,点击导出,选择导出类型为Java下的JAR file,在java file specification 中不要选择androidmani ...

  3. Hadoop on Mac with IntelliJ IDEA - 1 解决input path does not exist问题

    本文讲述使用IntelliJ IDEA时遇到Hadoop提示input path does not exist(输入路径不存在)的解决过程. 环境:Mac OS X 10.9.5, IntelliJ ...

  4. hadoop:将WordCount打包成独立运行的jar包

    hadoop示例中的WordCount程序,很多教程上都是推荐以下二种运行方式: 1.将生成的jar包,复制到hadoop集群中的节点,然后运行 $HADOOP_HOME/bin/hadoop xxx ...

  5. 用Intellij打可执行jar包

    1.添加maven-assembly-plugin和maven-dependency-plugin assembly:用于打可执行jar包 dependency: 导出依赖包 <plugin&g ...

  6. java在window下用cmd (javac、jar)命令行模拟Intellij IDEA软件生成jar包

    @@首先最重要的cmd命令: javac ,jar :使用如下(注意[.]不要输错): 1. javac编译: D:\MyWorkSet\idea_hadoop>javac -d .\out\p ...

  7. 十九、详述 IntelliJ IDEA 之 添加 jar 包

    以JDBC-MySQL驱动包为例 1.在IntelliJ IDEA中打开要添加jar包的Project 2.File – Project Structure如下图 3.选择Moudules – 再选择 ...

  8. 制作jar包到本地仓库

    转载地址:http://blog.csdn.net/yzllz001/article/details/54529606 项目要用到支付宝的扫码支付,后台使用的maven 问了客服 官方目前没有 mav ...

  9. IntelliJ IDEA如何导入jar包

    转自:https://jingyan.baidu.com/article/0f5fb0993e9e1f6d8334ead2.html 通过这种方式导入jar包,idea就能百分百识别到,如果是那种直接 ...

随机推荐

  1. Run busybox httpd with php, sqlite

    /*********************************************************************************** * Run busybox h ...

  2. 【django】request

    request.GET request.POST

  3. django - get_or_create() 使用提醒

    [omron - debug] user_id建表的时候,不能使用unique,因为一个用户,可能有多个product_id,相对应的是,get_or_create()中的查询参数,如果在建表中有un ...

  4. java web 学习十二(session)

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  5. A标记点击后去掉虚线

    没加时,谷歌无虚线,但ie有虚线. 加上这句,所有的a标签点击都没有虚线了. a {outline: none;} a:active {star:expression_r(this.onFocus=t ...

  6. Windows 窗体最小化和隐藏的区别及恢复

    应用程序有托盘图标,窗体最小化或者隐藏窗体时,点击托盘图标需要恢复窗体显示,并且恢复之前的现实状体,正常大小或者最大化显示.例如:最大化显示窗体时,点击最小化按钮,窗体最小化,点击托盘图标将最大化显示 ...

  7. unicode ansi utf-8 unicode_big_endian编码的区别

      随便说说字符集和编码  快下班时,爱问问题的小朋友Nico又问了一个问题:  "sqlserver里面有char和nchar,那个n据说是指unicode的数据,这个是什么意思.&quo ...

  8. 使用std::function 把类成员函数指针转换为普通函数指针

    前言 这是改造前一篇 设计模式 的基础,使通知者不必知道观察者的类名和函数名,只需要知道更新函数的原型即可. 开发环境:WIN7 32位 + VS2010 发现在VS2005中使用std::funti ...

  9. 利用Spring.Net技术打造可切换的分布式缓存读写类

    利用Spring.Net技术打造可切换的Memcached分布式缓存读写类 Memcached是一个高性能的分布式内存对象缓存系统,因为工作在内存,读写速率比数据库高的不是一般的多,和Radis一样具 ...

  10. support vector regression与 kernel ridge regression

    前一篇,我们将SVM与logistic regression联系起来,这一次我们将SVM与ridge regression(之前的linear regression)联系起来. (一)kernel r ...