java命令os.name 用eclipse 命令行打印出操作系统名称

博客分类:
--------------------------------
使用eclipse打jar包注意事项:
1、选择需要打包的工程,只选中src。
&& 选中 Export generated class files and resources。
&& 选中 Compress the contents of the JAR file。
&& 选中 Overwrite existing files without warning。
2、选中 Export class files with compile warnings。
即可完成打包。
& 若提示unable to access jarfile
& 如果报错,看看MANIFEST.MF这个文件里有没有给Main-Class指定主类 图解链接
----------------------------------------------
命令打可执行jar包:
1.将源文件拷贝到d:\
2.在cmd命令下进入jartest该目录;
& 配置:
&&&&&&& set path=C盘下jdk1.5.0_05\bin所在的目录&& --你自己的jdk安装目录
&&&&&&& set classpath=.&&&&& --当前路径
&&&&&&& 执行命令javac -d . 类.java -----(编译class文件)
3.删除源文件;
4.jar -cvf tt.jar ./& -----(此处打包成不可执行jar包& tt为打包后的名字& ./为整个当前目录 指定要打包的文件)
5.jar -xvf tt.jar&&&& -----解压
6.删除tt.jar
7.修改META-INF下的MAMFEST.MF文件,追加一句
&& Main-Class: &插入一空格&包路径.类名&回车&&&&& -----此包路径为package后的路径& 以.隔开(如果有第三方的jar文件 再加上 classpath:lib/a.jar lib/b.jar& lib目录下面放要第三方jar文件)
8.jar -cvfM tt.jar *& -----打包
9.java -jar tt.jar&& -----命令运行jar包&& 也可双击击运行
&&&& 我们在打包时,只要不在当前路径下进行打包,对其它路径下的一个目录进行打包,往往含他自己的路径,可以用下面的命令去掉那些路径:
&&&& 第一种:jar&& cvfm& test.jar&& c:\manifest.mf& -C& c:\test&& \&&&& 注意:后面的 \ 可以换成点
&&&& 第二种:jar&& cvf&&&& test.jar&& -C& c:\test& \&& 注意:后面的 \ 可以换成点
&&&& 第三种:jar&& -cvf&&& test.jar& -C&& c:\test& \&& 注意:后面的 \ 可以换成点
打包可执行jar文件的一些注意事项:&&&&& jar cvfm [目标.jar] [MANIFEST文件名] [应用程序所在目录]
&&&&& MANIFEST文件名随便,但jar参数中的"m"不可少,否则在jar文件中你会看到一个只有版本号的MANIFEST.MF文件。
&&&&& MANIFEST文件,也叫标明文件,清单文件,用来记录jar文件的相关信息。为了打包可执行jar文件,必须创建带jar文件主类的信息的MANIFEST文件。在任意位置,如:E:\temp,创建名为myManifest的文件,用文本编辑器编辑该文件,加入下行:
&&&&&& Main-Class: 应用程序主类的路径名+回车
&&&&&& 回车是必须的,否则MANIFEST.MF中只有版本号。主类的路径名如:com.AppMain (假设在E:\temp\中有个com&& 目 录,com中有个属于com包的AppMain.class)
应用程序所在目录,当然就是com啦,如果我们在e:\temp下打包,则可以输入:
&&&&&& jar cvfm AppMain.jar myManifest com
#压缩java文件, 打成war包
1.打开要打包的文件夹(cd 目录)
2.配置
&&& set path=C盘下jdk1.5.0_05\bin所在的目录 --你自己的jdk安装目录
&&& set classpath=. 当前路径
3.jar cvf tt.war ./&&& --(./表示当前文件下所有文件,要有&& 命令格式:java cvf 打包文件名称 要打包的目录 打包文件保存路径)
4.解压自然就是:& jar xvf temp.war
在包涵第三方jar包情况下在eclipse下打jar包:&&& 在你的项目文件夹下建一个META-INF文件夹里面新建一个
&&&& MANIFEST.MF的文件内容大至如下
&&&&& Manifest-Version: 1.0
&&&& Ant-Version: Apache Ant 1.6.2
&&&& Created-By: 1.5.0_06-57 ("Apple Computer, Inc.")
&&&& Main-Class: com.opensymphony.workflow.designer.Launcher
&&&& Class-Path: looks.jar forms.jar syntax.jar jgraph.jar foxtrot.jar osworkflow-2.8.0.jar oscore-2.2.5.jar
&&& Main-Class就是你要运行的类。
&&&& Class-path:就是你要引入的包
&&&& 用eclipse export导出jar文件里,选择
&&&&&&&& user existing manifest from workspace
&&& manifest file:/你的项目名/src/META-INF/MANIFEST.MF
&&&&&&&& 点击完成。这样应该就可以了
----------------------------------------------------------
插件FatJar
下载fatJar插件,解压缩后是一个.../plugins/(net...)把plugins下面的(net..)文件夹拷贝到eclipse的plugins下,重新启动Eclipse3.1,Windows=&prefernce=&fat jar preference看到他就说明已经安装成功了。如果没有看到,没有关系,删除D:\eclipse310\configuration\org.eclipse.update\platform.xml文件(此文件可以自动生成)不用担心以前的插件会因此而消失,没事。刚开始找不到如何使用它,后来看到你的项目=〉Export..=&向导里有fat jar =&使用起来真的很方便。 总结:一般把src打包export=&Jar File 即可。想把src附属的资源一起打包,必须使用FatJar =& export..=&FatJar.
fatJar这插件打包的时候可把用到的第三方的JAR包也一起打到目标JAR中
---------------------------------------------、
通过bat文件运行jar包程序通过jar命令或集成开发环境的打包工具,利用manifest.mf文件将.class文件打成可执行jar包时,如果程序引用大量第三方的jar包,那么会使得manifest.mf文件的编写变得很繁琐,并且可执行的jar需要运行机器上装有jre,考虑通过编写bat文件运行jar包程序。
过程如下:
1 对自己编写的java文件,对其编译,将class文件打成jar包(包名eg DMManager.jar)
2 新建文件夹,作为应用程序的home文件夹(文件夹名eg DMManager)
3 在DMManager文件夹下建立子文件夹lib、bin、jdk
4 将DMManager.jar放入lib下
5 在lib下新建子文件夹other
6 将程序所需的第三方jar包放至other下
7 处理jdk文件夹,jdk文件夹是个可选项,如果要使得程序的执行不依赖与目标机是否装有jre运行环境,那么需将本地JAVA_HOME文件夹下的内容拷贝至该文件夹下
8 编写bat文件(*.bat)
a 利用目标机的jre(第7步可省)
@echo off
cd ..
set APP_HOME=%cd%
cd bin
start "" "%JAVA_HOME%\bin\javaw.exe" -classpath "%APP_HOME%\lib\DMManager.jar" -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext";"%APP_HOME%\lib\other" -Xms256m -Xmx512m my.package.name.Main
b 利用自身的jre(第7步不能省)
@echo off
cd ..
set APP_HOME=%cd%
set JAVA_HOME=%APP_HOME%\jdk
cd bin
start "" "%JAVA_HOME%\bin\javaw.exe" -classpath "%APP_HOME%\lib\DMManager.jar" -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext";"%APP_HOME%\lib\other" -Xms256m -Xmx512m my.package.name.Main
9 将*.bat文件放至bin下
10 双击*.bat试试运行效果如何。。。 over
浏览 22212
simple_hui
浏览: 120069 次
来自: 武汉
zhangyatong 写道ws.getColumnView( ...
ws.getColumnView( bc ).getSize( ...
a114d 写道楼主,创建xml的过程没看懂,这句
XMLWr ...
楼主,创建xml的过程没看懂,这句XMLWriter outp ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'下次自动登录
现在的位置:
& 综合 & 正文
java中获取当前路径的方法
归纳一些网上取JAVA路径的方法:
注明:如果从ANT启动程序,this.getClass().getResource("")取出来的比较怪,直接用JAVA命令行调试就可成功。
得到classpath和当前类的绝对路径的一些方法
获得CLASSPATH之外路径的方法:
URL base = this.getClass().getResource(""); //先获得本类的所在位置,如/home/popeye/testjava/build/classes/net/ String path = new File(base.getFile(), "……/……/……/"+name).getCanonicalPath(); //就可以得到/home/popeye/testjava/name
下面是一些得到classpath和当前类的绝对路径的一些方法。你可能需要使用其中的一些方法来得到你需要的资源的绝对路径。
1.FileTest.class.getResource("")
得到的是当前类FileTest.class文件的URI目录。不包括自己!
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/
2.FileTest.class.getResource("/")
得到的是当前的classpath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
3.Thread.currentThread().getContextClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
4.FileTest.class.getClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
5.ClassLoader.getSystemResource("")
得到的也是当前ClassPath的绝对URI路径。
如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
我推荐使用Thread.currentThread().getContextClassLoader().getResource("")来得到当前的classpath的绝对路径的URI表示法。
在Web应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。这样,我们只需要提供相对于Web应用程序根目录的路径,就可以构建出定位资源的绝对路径。
1.尽量不要使用相对于System.getProperty("user.dir")当前用户目录的相对路径。这是一颗定时炸弹,随时可能要你的命。
2.尽量使用URI形式的绝对路径资源。它可以很容易的转变为URI,URL,File对象。
3.尽量使用相对classpath的相对路径。不要使用绝对路径。使用上面ClassLoaderUtil类的public static URL getExtendResource(String relativePath)方法已经能够使用相对于classpath的相对路径定位所有位置的资源。
4.绝对不要使用硬编码的绝对路径。因为,我们完全可以使用ClassLoader类的getResource("")方法得到当前classpath的绝对路径。
使用硬编码的绝对路径是完全没有必要的!它一定会让你死的很难看!程序将无法移植!
如果你一定要指定一个绝对路径,那么使用配置文件,也比硬编码要好得多!
当然,我还是推荐你使用程序得到classpath的绝对路径来拼资源的绝对路径.
1、利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径
2、使用File提供的函数获取当前路径:File directory = new File("");//设定为当前文件夹try{
System.out.println(directory.getCanonicalPath());//获取标准的路径
System.out.println(directory.getAbsolutePath());//获取绝对路径}catch(Exceptin e){}
File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new File("..")两种路径有所区别。
# 对于getCanonicalPath()函数,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹# 对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径# 至于getPath()函数,得到的只是你在new File()时设定的路径
比如当前的路径为 C:/test :File directory = new File("abc");directory.getCanonicalPath(); //得到的是C:/test/abcdirectory.getAbsolutePath();
//得到的是C:/test/abcdirecotry.getPath();
//得到的是abcFile directory = new File(".");directory.getCanonicalPath(); //得到的是C:/testdirectory.getAbsolutePath();
//得到的是C:/test/.direcotry.getPath();
//得到的是.File directory = new File("..");directory.getCanonicalPath(); //得到的是C:/directory.getAbsolutePath();
//得到的是C:/test/..direcotry.getPath();
//得到的是..
另外:System.getProperty()中的字符串参数如下:
System.getProperty()参数大全
java.version
Java 运行时环境版本
java.vendor
Java 运行时环境供应商
java.vendor.url
Java 供应商的 URL
Java 安装目录
java.vm.specification.version
Java 虚拟机规范版本
java.vm.specification.vendor
Java 虚拟机规范供应商
java.vm.specification.name
Java 虚拟机规范名称
java.vm.version
Java 虚拟机实现版本
java.vm.vendor
Java 虚拟机实现供应商
java.vm.name
Java 虚拟机实现名称
java.specification.version
Java 运行时环境规范版本
java.specification.vendor
Java 运行时环境规范供应商
java.specification.name
Java 运行时环境规范名称
java.class.version
Java 类格式版本号
java.class.path
Java 类路径
java.library.path
加载库时搜索的路径列表
java.io.tmpdir
默认的临时文件路径
要使用的 JIT 编译器的名称
java.ext.dirs
一个或多个扩展目录的路径
操作系统的名称
操作系统的架构
os.version
操作系统的版本
file.separator
文件分隔符(在 UNIX 系统中是“/”)
path.separator
路径分隔符(在 UNIX 系统中是“:”)
line.separator
行分隔符(在 UNIX 系统中是“/n”)
用户的账户名称
用户的主目录
用户的当前工作目录
在tomcat容器中的变量catalina.home
tomcat所在的目录全路径资料(System.getProperty()参数大全):/blog/71940
1、利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径
2、使用File提供的函数获取当前路径:File directory = new File("");//设定为当前文件夹try{
System.out.println(directory.getCanonicalPath());//获取标准的路径
System.out.println(directory.getAbsolutePath());//获取绝对路径}catch(Exceptin e){}
File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new File("..")两种路径有所区别。
# 对于getCanonicalPath()函数,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹# 对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径# 至于getPath()函数,得到的只是你在new File()时设定的路径
比如当前的路径为 C:/test :File directory = new File("abc");directory.getCanonicalPath(); //得到的是C:/test/abcdirectory.getAbsolutePath();
//得到的是C:/test/abcdirecotry.getPath();
//得到的是abcFile directory = new File(".");directory.getCanonicalPath(); //得到的是C:/testdirectory.getAbsolutePath();
//得到的是C:/test/.direcotry.getPath();
//得到的是.File directory = new File("..");directory.getCanonicalPath(); //得到的是C:/directory.getAbsolutePath();
//得到的是C:/test/..direcotry.getPath();
//得到的是..
另外:System.getProperty()中的字符串参数如下:
System.getProperty()参数大全
java.version
Java 运行时环境版本
java.vendor
Java 运行时环境供应商
java.vendor.url
Java 供应商的 URL
Java 安装目录
java.vm.specification.version
Java 虚拟机规范版本
java.vm.specification.vendor
Java 虚拟机规范供应商
java.vm.specification.name
Java 虚拟机规范名称
java.vm.version
Java 虚拟机实现版本
java.vm.vendor
Java 虚拟机实现供应商
java.vm.name
Java 虚拟机实现名称
java.specification.version
Java 运行时环境规范版本
java.specification.vendor
Java 运行时环境规范供应商
java.specification.name
Java 运行时环境规范名称
java.class.version
Java 类格式版本号
java.class.path
Java 类路径
java.library.path
加载库时搜索的路径列表
java.io.tmpdir
默认的临时文件路径
要使用的 JIT 编译器的名称
java.ext.dirs
一个或多个扩展目录的路径
操作系统的名称
操作系统的架构
os.version
操作系统的版本
file.separator
文件分隔符(在 UNIX 系统中是“/”)
path.separator
路径分隔符(在 UNIX 系统中是“:”)
line.separator
行分隔符(在 UNIX 系统中是“/n”)
用户的账户名称
用户的主目录
用户的当前工作目录
在tomcat容器中的变量catalina.home
tomcat所在的目录全路径资料(System.getProperty()参数大全):/blog/71940
&&&&推荐文章:
【上篇】【下篇】博客分类:
System.out.println("===========os.name:"+System.getProperties().getProperty("os.name"));
System.out.println("===========file.separator:"+System.getProperties().getProperty("file.separator"));
public static
getProperties()
方法使用的当前系统属性集合作为 Properties 对象返回
相关值的描述
java.version
Java 运行时环境版本
java.vendor
Java 运行时环境供应商
java.vendor.url
Java 供应商的 URL
Java 安装目录
java.vm.specification.version
Java 虚拟机规范版本
java.vm.specification.vendor
Java 虚拟机规范供应商
java.vm.specification.name
Java 虚拟机规范名称
java.vm.version
Java 虚拟机实现版本
java.vm.vendor
Java 虚拟机实现供应商
java.vm.name
Java 虚拟机实现名称
java.specification.version
Java 运行时环境规范版本
java.specification.vendor
Java 运行时环境规范供应商
java.specification.name
Java 运行时环境规范名称
java.class.version
Java 类格式版本号
java.class.path
Java 类路径
java.library.path
加载库时搜索的路径列表
java.io.tmpdir
默认的临时文件路径
要使用的 JIT 编译器的名称
java.ext.dirs
一个或多个扩展目录的路径
操作系统的名称
操作系统的架构
os.version
操作系统的版本
file.separator
文件分隔符(在 UNIX 系统中是“/”)
path.separator
路径分隔符(在 UNIX 系统中是“:”)
line.separator
行分隔符(在 UNIX 系统中是“/n”)
用户的账户名称
用户的主目录
用户的当前工作目录
浏览 24452
谢谢&& 不客气
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 你这是几个意思
浏览: 532587 次
来自: 深圳
有用的东东,谢谢!
j_yo 写道谢谢
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'博客分类:
在开发时,有时候可能需要根据不同的环境设置不同的系统参数,我们都知道,在使用java -jar命令时可以使用-D参数来设置运行时的系统变量,同样,在Eclipse中运行java程序时,我们怎么设置该系统变量呢?
另外,如果我们的程序需要输入运行参数,在Eclipse中如何配置?
答案很简单,具体步骤为:
在要运行的类上右键点击Run As--&Run Configurations...
在弹出界面中点击Arguments
然后弹出如下界面:
1.其中Program arguments栏里可以输入程序运行所需的参数,也就是main方法的参数,如果参数为多个,则用空格分开。
2.VM arguments里接收的是系统变量参数,系统变量输入格式为:-Dargname=argvalue,同样,多个参数之间用空格隔开。另外如果参数值中间有空格,则用引号括起来
示例程序代码如下:
* ClassName: Main &br/&
* Function: Eclipse系统变量和运行参数. &br/&
下午04:06:09 &br/&
* @version
public class Main {
public static void main(String[] args){
System.out.println("打印所有的参数:");
if(args.length&0){
for(int i=0;i&args.i++){
System.out.println("第"+i+"个参数为:"+args[i]);
System.out.println("打印系统变量:");
String env = System.getProperty("service.env");
System.out.println("service.env:"+env);
String logpath = System.getProperty("logfile.path");
System.out.println("logfile.path:"+logpath);
运行程序,控制台输出如下:
打印所有的参数:
第0个参数为:chenzhou
第1个参数为:chenzhou2
第2个参数为:chenzhou3
打印系统变量:
service.env:DEV
logfile.path:E:\u03\project\logs
浏览 37417
chenzhou123520
浏览: 2855904 次
来自: 北京
update t_goods set status=2 whe ...
问下大神,我想做版本控制,但是为了数据一致性,我想2个修改过来 ...
这算是mybatis的奇巧淫技吗?哈哈哈
虽然已经找到 原因了,但是楼主写的还是很清楚 的
关于主键和索引采用行锁还是表锁,与条件是否等值查询没有绝对关系 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'博客访问: 3313013
博文数量: 176
注册时间:
认证徽章:
Happy is the man who is living by his hobby.
ITPUB论坛APP
ITPUB论坛APP
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Hadoop
&&网上有一些都是在Linux下使用安装Eclipse来进行hadoop应用开发,但是大部分Java程序员对linux系统不是那么熟悉,所以需要在windows下开发hadoop程序,所以经过试验,总结了下如何在windows下使用Eclipse来开发hadoop程序代码。
需要下载hadoop的专门插件jar包
hadoop版本为2.3.0,hadoop集群搭建在centos6x上面,插件包下载地址为:包名字为hadoop-eclipse-plugin-2.3.0,可以适用于hadoop2x系列软件版本。
把插件包放到eclipse/plugins目录下
为了以后方便,我这里把尽可能多的jar包都放进来了,如下图所示:
3、重启eclipse,配置Hadoop installation directory&&&&
&&&&&如果插件安装成功,打开Windows—Preferences后,在窗口左侧会有Hadoop Map/Reduce选项,点击此选项,在窗口右侧设置Hadoop安装路径。
4、配置Map/Reduce Locations
&&&&&打开Windows-->Open Perspective-->Other
选择Map/Reduce,点击OK,在右下方看到有个Map/Reduce
Locations的图标,如下图所示:
点击Map/Reduce
Location选项卡,点击右边小象图标,打开Hadoop Location配置窗口:
输入Location
Name,任意名称即可.配置Map/Reduce Master和DFS Mastrer,Host和Port配置成与core-site.xml的设置一致即可。
去找core-site.xml配置:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
fs.default.name&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
hdfs://name01:9000&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
在界面配置如下:
点击"Finish"按钮,关闭窗口。点击左侧的DFSLocations—>myhadoop(上一步配置的location name),如能看到user,表示安装成功,但是进去看到报错信息:Error: Permission denied: user=root,access=READ_EXECUTE,inode="/tmp";hadoop:supergroup:drwx---------,如下图所示:
应该是权限问题:把/tmp/目录下面所有的关于hadoop的文件夹设置成hadoop用户所有然后分配授予777权限。
hadoop.hadoop /tmp/hsperfdata_root
之后重新连接打开DFS
Locations就显示正常了。
Map/Reduce Master
(此处为Hadoop集群的Map/Reduce地址,应该和mapred-site.xml中的mapred.job.tracker设置相同)&
(1):点击报错:
An internal error occurred
during: "Connecting to DFS hadoopname01".
java.net.UnknownHostException: name01
直接在hostname那一栏里面设置ip地址为:192.168.52.128,即可,这样就正常打开了,如下图所示:
5、新建WordCount项目
&&&&File—>Project,选择Map/Reduce Project,输入项目名称WordCount等。
&&&&在WordCount项目里新建class,名称为WordCount,报错代码如下:Invalid Hadoop R please
click 'Configure Hadoop install directory' or fill in library location input
field,报错原因是目录选择不对,不能选择在跟目录E:\hadoop下,换成E:\u\hadoop\就可以了,如下所示:
一路下一步过去,点击Finished按钮,完成工程创建,Eclipse控制台下面出现如下信息:
14-12-9 下午04时03分10秒: Eclipse is running in a
JRE, but a JDK is required
Some Maven plugins may not work when importing projects or updating
source folders.
14-12-9 下午04时03分13秒: Refreshing
[/WordCount/pom.xml]
14-12-9 下午04时03分14秒: Refreshing
[/WordCount/pom.xml]
14-12-9 下午04时03分14秒: Refreshing
[/WordCount/pom.xml]
14-12-9 下午04时03分14秒: Updating index
central|http://repo1.maven.org/maven2
14-12-9 下午04时04分10秒: Updated index for
central|http://repo1.maven.org/maven2
6,&Lib包导入:
需要添加的hadoop相应jar包有:
/hadoop-2.3.0/share/hadoop/common下所有jar包,及里面的lib目录下所有jar包,
/hadoop-2.3.0/share/hadoop/hdfs下所有jar包,不包括里面lib下的jar包,
/hadoop-2.3.0/share/hadoop/mapreduce下所有jar包,不包括里面lib下的jar包,
/hadoop-2.3.0/share/hadoop/yarn下所有jar包,不包括里面lib下的jar包,
大概18个jar包左右。
7,Eclipse直接提交mapreduce任务所需要环境配置代码如下所示:
package wc;
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;
public class W2 {
&&&&public static class TokenizerMapper extends
&&&&&&&&&&&&Mapper<Object, Text, Text, IntWritable> {
&&&&&&&&private final static IntWritable one = new IntWritable(1);
&&&&&&&&private Text word = new Text();
&&&&&&&&public void map(Object key, Text value, Context context)
&&&&&&&&&&&&&&&&throws IOException, InterruptedException {
&&&&&&&&&&&&StringTokenizer itr = new StringTokenizer(value.toString());
&&&&&&&&&&&&while (itr.hasMoreTokens()) {
&&&&&&&&&&&&&&&&word.set(itr.nextToken());
&&&&&&&&&&&&&&&&context.write(word, one);
&&&&&&&&&&&&}
&&&&public static class IntSumReducer extends
&&&&&&&&&&&&Reducer<Text, IntWritable, Text, IntWritable> {
&&&&&&&&private IntWritable result = new IntWritable();
&&&&&&&&public void reduce(Text key, Iterable<IntWritable> values,
&&&&&&&&&&&&&&&&Context context) throws IOException, InterruptedException {
&&&&&&&&&&&&int sum = 0;
&&&&&&&&&&&&for (IntWritable val : values) {
&&&&&&&&&&&&&&&&sum += val.get();
&&&&&&&&&&&&}
&&&&&&&&&&&&result.set(sum);
&&&&&&&&&&&&context.write(key, result);
&&&&public static void main(String[] args) throws Exception {
&&&&&&&&Configuration conf = new Configuration(); System.setProperty(\
&8.1、在HDFS上创建目录input
&[hadoop@name01
hadoop-2.3.0]$ hadoop fs -ls /
[hadoop@name01 hadoop-2.3.0]$& hadoop fs -mkdir input
mkdir: `input': No such file or directory
[hadoop@name01 hadoop-2.3.0]$ PS:fs需要全目录的方式来创建文件夹
如果Apache hadoop版本是0.x 或者1.x,
bin/hadoop hdfs fs -mkdir -p /in
bin/hadoop hdfs fs& -put
/home/du/input&& /in
如果Apache hadoop版本是2.x.
bin/hdfs& dfs& -mkdir -p /in
bin/hdfs& dfs&& -put /home/du/input&& /in
如果是发行版的hadoop,比如Cloudera CDH,IBM BI,Hortonworks HDP 则第一种命令即可。要注意创建目录的全路径。另外hdfs的根目录是 /
2、拷贝本地README.txt到HDFS的input里
[hadoop@name01 hadoop-2.3.0]$ find . -name
README.txt
./share/doc/hadoop/common/README.txt
[hadoop@name01 ~]$ hadoop fs -copyFromLocal
./src/hadoop-2.3.0/share/doc/hadoop/common/README.txt /data/input
[hadoop@name01 ~]$
&[hadoop@name01 ~]$ hadoop fs -ls /
Found 2 items
drwxr-xr-x & - hadoop supergroup & & & & &0
23:34 /data
-rw-r--r-- & 3 hadoop supergroup & & & & 88
02:21 /input
You have new mail in /var/spool/mail/root
[hadoop@name01 ~]$
3,运行hadoop结束后,查看输出结果
(1),直接在hadoop服务器上面查看
[hadoop@name01 ~]$ hadoop fs -ls /data/
Found 2 items
drwxr-xr-x & - hadoop supergroup & & & & &0
23:29 /data/input
drwxr-xr-x & - hadoop supergroup & & & & &0
23:34 /data/output
[hadoop@name01 ~]$&
(2),去Eclipse下查看
(3),在控制台上查看信息
2014-12-16 15:34:01,303 INFO [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(996)) - session.id is deprecated. Instead, use dfs.metrics.session-id
2014-12-16 15:34:01,309 INFO [main] jvm.JvmMetrics (JvmMetrics.java:init(76)) - Initializing JVM Metrics with processName=JobTracker, sessionId=
2014-12-16 15:34:02,047 INFO [main] input.FileInputFormat (FileInputFormat.java:listStatus(287)) - Total input paths to process : 1
2014-12-16 15:34:02,120 INFO [main] mapreduce.JobSubmitter (JobSubmitter.java:submitJobInternal(396)) - number of splits:1
2014-12-16 15:34:02,323 INFO [main] mapreduce.JobSubmitter (JobSubmitter.java:printTokens(479)) - Submitting tokens for job: job_local_0001
2014-12-16 15:34:02,367 WARN [main] conf.Configuration (Configuration.java:loadProperty(2345)) - file:/tmp/hadoop-hadoop/mapred/staging/hadoop/.staging/job_local_0001/job.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring.
2014-12-16 15:34:02,368 WARN [main] conf.Configuration (Configuration.java:loadProperty(2345)) - file:/tmp/hadoop-hadoop/mapred/staging/hadoop/.staging/job_local_0001/job.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring.
2014-12-16 15:34:02,682 WARN [main] conf.Configuration (Configuration.java:loadProperty(2345)) - file:/tmp/hadoop-hadoop/mapred/local/localRunner/hadoop/job_local_0001/job_local_0001.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring.
2014-12-16 15:34:02,682 WARN [main] conf.Configuration (Configuration.java:loadProperty(2345)) - file:/tmp/hadoop-hadoop/mapred/local/localRunner/hadoop/job_local_0001/job_local_0001.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring.
2014-12-16 15:34:02,703 INFO [main] mapreduce.Job (Job.java:submit(1289)) - The url to track the job: http://localhost:8080/
2014-12-16 15:34:02,704 INFO [main] mapreduce.Job (Job.java:monitorAndPrintJob(1334)) - Running job: job_local_0001
2014-12-16 15:34:02,707 INFO [Thread-4] mapred.LocalJobRunner (LocalJobRunner.java:createOutputCommitter(471)) - OutputCommitter set in config null
2014-12-16 15:34:02,719 INFO [Thread-4] mapred.LocalJobRunner (LocalJobRunner.java:createOutputCommitter(489)) - OutputCommitter is org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter
2014-12-16 15:34:02,853 INFO [Thread-4] mapred.LocalJobRunner (LocalJobRunner.java:runTasks(448)) - Waiting for map tasks
2014-12-16 15:34:02,857 INFO [LocalJobRunner Map Task Executor #0] mapred.LocalJobRunner (LocalJobRunner.java:run(224)) - Starting task: attempt_local_0001_m_
2014-12-16 15:34:02,919 INFO [LocalJobRunner Map Task Executor #0] util.ProcfsBasedProcessTree (ProcfsBasedProcessTree.java:isAvailable(129)) - ProcfsBasedProcessTree currently is supported only on Linux.
2014-12-16 15:34:03,281 INFO [LocalJobRunner Map Task Executor #0] mapred.Task (Task.java:initialize(581)) - Using ResourceCalculatorProcessTree : org.apache.hadoop.yarn.util.WindowsBasedProcessTree@2e1022ec
2014-12-16 15:34:03,287 INFO [LocalJobRunner Map Task Executor #0] mapred.MapTask (MapTask.java:runNewMapper(733)) - Processing split: hdfs://192.168.52.128:9000/data/input/README.txt:0+1366
2014-12-16 15:34:03,304 INFO [LocalJobRunner Map Task Executor #0] mapred.MapTask (MapTask.java:createSortingCollector(388)) - Map output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
2014-12-16 15:34:03,340 INFO [LocalJobRunner Map Task Executor #0] mapred.MapTask (MapTask.java:setEquator(1181)) - (EQUATOR) 0 kvi ()
2014-12-16 15:34:03,341 INFO [LocalJobRunner Map Task Executor #0] mapred.MapTask (MapTask.java:init(975)) - mapreduce.task.io.sort.mb: 100
2014-12-16 15:34:03,341 INFO [LocalJobRunner Map Task Executor #0] mapred.MapTask (MapTask.java:init(976)) - soft limit at
2014-12-16 15:34:03,341 INFO [LocalJobRunner Map Task Executor #0] mapred.MapTask (MapTask.java:init(977)) - bufstart = 0; bufvoid =
2014-12-16 15:34:03,341 INFO [LocalJobRunner Map Task Executor #0] mapred.MapTask (MapTask.java:init(978)) - kvstart = ; length = 6553600
2014-12-16 15:34:03,708 INFO [main] mapreduce.Job (Job.java:monitorAndPrintJob(1355)) - Job job_local_0001 running in uber mode : false
2014-12-16 15:34:03,710 INFO [main] mapreduce.Job (Job.java:monitorAndPrintJob(1362)) - map 0% reduce 0%
2014-12-16 15:34:04,121 INFO [LocalJobRunner Map Task Executor #0] mapred.LocalJobRunner (LocalJobRunner.java:statusUpdate(591)) -
2014-12-16 15:34:04,128 INFO [LocalJobRunner Map Task Executor #0] mapred.MapTask (MapTask.java:flush(1435)) - Starting flush of map output
2014-12-16 15:34:04,128 INFO [LocalJobRunner Map Task Executor #0] mapred.MapTask (MapTask.java:flush(1453)) - Spilling map output
2014-12-16 15:34:04,128 INFO [LocalJobRunner Map Task Executor #0] mapred.MapTask (MapTask.java:flush(1454)) - bufstart = 0; bufend = 2055; bufvoid =
2014-12-16 15:34:04,128 INFO [LocalJobRunner Map Task Executor #0] mapred.MapTask (MapTask.java:flush(1456)) - kvstart = (); kvend = (); length = 713/6553600
2014-12-16 15:34:04,179 INFO [LocalJobRunner Map Task Executor #0] mapred.MapTask (MapTask.java:sortAndSpill(1639)) - Finished spill 0
2014-12-16 15:34:04,194 INFO [LocalJobRunner Map Task Executor #0] mapred.Task (Task.java:done(995)) - Task:attempt_local_0001_m_ is done. And is in the process of committing
2014-12-16 15:34:04,207 INFO [LocalJobRunner Map Task Executor #0] mapred.LocalJobRunner (LocalJobRunner.java:statusUpdate(591)) - map
2014-12-16 15:34:04,208 INFO [LocalJobRunner Map Task Executor #0] mapred.Task (Task.java:sendDone(1115)) - Task \'attempt_local_0001_m_\' done.
2014-12-16 15:34:04,208 INFO [LocalJobRunner Map Task Executor #0] mapred.LocalJobRunner (LocalJobRunner.java:run(249)) - Finishing task: attempt_local_0001_m_
2014-12-16 15:34:04,208 INFO [Thread-4] mapred.LocalJobRunner (LocalJobRunner.java:runTasks(456)) - map task executor complete.
2014-12-16 15:34:04,211 INFO [Thread-4] mapred.LocalJobRunner (LocalJobRunner.java:runTasks(448)) - Waiting for reduce tasks
2014-12-16 15:34:04,211 INFO [pool-6-thread-1] mapred.LocalJobRunner (LocalJobRunner.java:run(302)) - Starting task: attempt_local_0001_r_
2014-12-16 15:34:04,221 INFO [pool-6-thread-1] util.ProcfsBasedProcessTree (ProcfsBasedProcessTree.java:isAvailable(129)) - ProcfsBasedProcessTree currently is supported only on Linux.
2014-12-16 15:34:04,478 INFO [pool-6-thread-1] mapred.Task (Task.java:initialize(581)) - Using ResourceCalculatorProcessTree : org.apache.hadoop.yarn.util.WindowsBasedProcessTree@
2014-12-16 15:34:04,483 INFO [pool-6-thread-1] mapred.ReduceTask (ReduceTask.java:run(362)) - Using ShuffleConsumerPlugin: org.apache.hadoop.mapreduce.task.reduce.Shuffle@e2b02a3
2014-12-16 15:34:04,500 INFO [pool-6-thread-1] reduce.MergeManagerImpl (MergeManagerImpl.java:<init>(193)) - MergerManager: memoryLimit=, maxSingleShuffleLimit=, mergeThreshold=, ioSortFactor=10, memToMemMergeOutputsThreshold=10
2014-12-16 15:34:04,503 INFO [EventFetcher for fetching Map Completion Events] reduce.EventFetcher (EventFetcher.java:run(61)) - attempt_local_0001_r_ Thread started: EventFetcher for fetching Map Completion Events
2014-12-16 15:34:04,543 INFO [localfetcher#1] reduce.LocalFetcher (LocalFetcher.java:copyMapOutput(140)) - localfetcher#1 about to shuffle output of map attempt_local_0001_m_ decomp: 1832 len: 1836 to MEMORY
2014-12-16 15:34:04,548 INFO [localfetcher#1] reduce.InMemoryMapOutput (InMemoryMapOutput.java:shuffle(100)) - Read 1832 bytes from map-output for attempt_local_0001_m_
2014-12-16 15:34:04,553 INFO [localfetcher#1] reduce.MergeManagerImpl (MergeManagerImpl.java:closeInMemoryFile(307)) - closeInMemoryFile -> map-output of size: 1832, inMemoryMapOutputs.size() -> 1, commitMemory -> 0, usedMemory ->1832
2014-12-16 15:34:04,564 INFO [EventFetcher for fetching Map Completion Events] reduce.EventFetcher (EventFetcher.java:run(76)) - EventFetcher is interrupted.. Returning
2014-12-16 15:34:04,566 INFO [pool-6-thread-1] mapred.LocalJobRunner (LocalJobRunner.java:statusUpdate(591)) - 1 / 1 copied.
2014-12-16 15:34:04,566 INFO [pool-6-thread-1] reduce.MergeManagerImpl (MergeManagerImpl.java:finalMerge(667)) - finalMerge called with 1 in-memory map-outputs and 0 on-disk map-outputs
2014-12-16 15:34:04,585 INFO [pool-6-thread-1] mapred.Merger (Merger.java:merge(589)) - Merging 1 sorted segments
2014-12-16 15:34:04,585 INFO [pool-6-thread-1] mapred.Merger (Merger.java:merge(688)) - Down to the last merge-pass, with 1 segments left of total size: 1823 bytes
2014-12-16 15:34:04,605 INFO [pool-6-thread-1] reduce.MergeManagerImpl (MergeManagerImpl.java:finalMerge(742)) - Merged 1 segments, 1832 bytes to disk to satisfy reduce memory limit
2014-12-16 15:34:04,605 INFO [pool-6-thread-1] reduce.MergeManagerImpl (MergeManagerImpl.java:finalMerge(772)) - Merging 1 files, 1836 bytes from disk
2014-12-16 15:34:04,606 INFO [pool-6-thread-1] reduce.MergeManagerImpl (MergeManagerImpl.java:finalMerge(787)) - Merging 0 segments, 0 bytes from memory into reduce
2014-12-16 15:34:04,607 INFO [pool-6-thread-1] mapred.Merger (Merger.java:merge(589)) - Merging 1 sorted segments
2014-12-16 15:34:04,608 INFO [pool-6-thread-1] mapred.Merger (Merger.java:merge(688)) - Down to the last merge-pass, with 1 segments left of total size: 1823 bytes
2014-12-16 15:34:04,608 INFO [pool-6-thread-1] mapred.LocalJobRunner (LocalJobRunner.java:statusUpdate(591)) - 1 / 1 copied.
2014-12-16 15:34:04,643 INFO [pool-6-thread-1] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(996)) - mapred.skip.on is deprecated. Instead, use mapreduce.job.skiprecords
2014-12-16 15:34:04,714 INFO [main] mapreduce.Job (Job.java:monitorAndPrintJob(1362)) - map 100% reduce 0%
2014-12-16 15:34:04,842 INFO [pool-6-thread-1] mapred.Task (Task.java:done(995)) - Task:attempt_local_0001_r_ is done. And is in the process of committing
2014-12-16 15:34:04,850 INFO [pool-6-thread-1] mapred.LocalJobRunner (LocalJobRunner.java:statusUpdate(591)) - 1 / 1 copied.
2014-12-16 15:34:04,850 INFO [pool-6-thread-1] mapred.Task (Task.java:commit(1156)) - Task attempt_local_0001_r_ is allowed to commit now
2014-12-16 15:34:04,881 INFO [pool-6-thread-1] output.FileOutputCommitter (FileOutputCommitter.java:commitTask(439)) - Saved output of task \'attempt_local_0001_r_\' to hdfs://192.168.52.128:9000/data/output/_temporary/0/task_local_0001_r_000000
2014-12-16 15:34:04,884 INFO [pool-6-thread-1] mapred.LocalJobRunner (LocalJobRunner.java:statusUpdate(591)) - reduce > reduce
2014-12-16 15:34:04,884 INFO [pool-6-thread-1] mapred.Task (Task.java:sendDone(1115)) - Task \'attempt_local_0001_r_\' done.
2014-12-16 15:34:04,885 INFO [pool-6-thread-1] mapred.LocalJobRunner (LocalJobRunner.java:run(325)) - Finishing task: attempt_local_0001_r_
2014-12-16 15:34:04,885 INFO [Thread-4] mapred.LocalJobRunner (LocalJobRunner.java:runTasks(456)) - reduce task executor complete.
2014-12-16 15:34:05,714 INFO [main] mapreduce.Job (Job.java:monitorAndPrintJob(1362)) - map 100% reduce 100%
2014-12-16 15:34:05,714 INFO [main] mapreduce.Job (Job.java:monitorAndPrintJob(1373)) - Job job_local_0001 completed successfully
2014-12-16 15:34:05,733 INFO [main] mapreduce.Job (Job.java:monitorAndPrintJob(1380)) - Counters: 38
&&&&File System Counters
&&&&&&&&FILE: Number of bytes read=34542
&&&&&&&&FILE: Number of bytes written=470650
&&&&&&&&FILE: Number of read operations=0
&&&&&&&&FILE: Number of large read operations=0
&&&&&&&&FILE: Number of write operations=0
&&&&&&&&HDFS: Number of bytes read=2732
&&&&&&&&HDFS: Number of bytes written=1306
&&&&&&&&HDFS: Number of read operations=15
&&&&&&&&HDFS: Number of large read operations=0
&&&&&&&&HDFS: Number of write operations=4
&&&&Map-Reduce Framework
&&&&&&&&Map input records=31
&&&&&&&&Map output records=179
&&&&&&&&Map output bytes=2055
&&&&&&&&Map output materialized bytes=1836
&&&&&&&&Input split bytes=113
&&&&&&&&Combine input records=179
&&&&&&&&Combine output records=131
&&&&&&&&Reduce input groups=131
&&&&&&&&Reduce shuffle bytes=1836
&&&&&&&&Reduce input records=131
&&&&&&&&Reduce output records=131
&&&&&&&&Spilled Records=262
&&&&&&&&Shuffled Maps =1
&&&&&&&&Failed Shuffles=0
&&&&&&&&Merged Map outputs=1
&&&&&&&&GC time elapsed (ms)=13
&&&&&&&&CPU time spent (ms)=0
&&&&&&&&Physical memory (bytes) snapshot=0
&&&&&&&&Virtual memory (bytes) snapshot=0
&&&&&&&&Total committed heap usage (bytes)=
&&&&Shuffle Errors
&&&&&&&&BAD_ID=0
&&&&&&&&CONNECTION=0
&&&&&&&&IO_ERROR=0
&&&&&&&&WRONG_LENGTH=0
&&&&&&&&WRONG_MAP=0
&&&&&&&&WRONG_REDUCE=0
&&&&File Input Format Counters
&&&&&&&&Bytes Read=1366
&&&&File Output Format Counters
&&&&&&&&Bytes Written=1306
----------------------------------------------------------------------------------------------------------------
<版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!>
原博客地址:& &
原作者:黄杉 (mchdba)
----------------------------------------------------------------------------------------------------------------
阅读(30461) | 评论(0) | 转发(2) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。

我要回帖

更多关于 eclipse执行maven命令 的文章

 

随机推荐