来看怎样用java程序把当地文件拷贝到hdfs上并显现进度
java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.把程序打成jar包放到Linux上
转到目次下实行命令hadoopjarmapreducer.jar/home/clq/export/java/count.jarhdfs://ubuntu:9000/out06/count/
下面一个是当地文件,一个是上传hdfs地位
乐成后呈现:打印出来,你所要打印的字符。
packagecom.clq.hdfs;
importjava.io.BufferedInputStream;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.net.URI;
importorg.apache.hadoop.conf.Configuration;
importorg.apache.hadoop.fs.FSDataOutputStream;
importorg.apache.hadoop.fs.FileSystem;
importorg.apache.hadoop.fs.Path;
importorg.apache.hadoop.io.IOUtils;
importorg.apache.hadoop.util.Progressable;
publicclassFileCopyWithProgress{
//********************************
//把当地的一个文件拷贝到hdfs上
//********************************
publicstaticvoidmain(String[]args)throwsIOException{
StringlocalSrc=args;
Stringdst=args;
InputStreamin=newBufferedInputStream(newFileInputStream(localSrc));
Configurationconf=newConfiguration();
FileSystemfs=FileSystem.get(URI.create(dst),conf);
FSDataOutputStreamout=fs.create(newPath(dst),newProgressable(){
@Override
publicvoidprogress(){
System.out.print(".");
}
});
IOUtils.copyBytes(in,out,conf,true);
}
}检察本栏目更多出色内容:http://www.bianceng.cn/Programming/Java/
大概呈现非常:
Exceptioninthread"main"org.apache.hadoop.ipc.RemoteException:java.io.IOException:Cannotcreate/out06;alreadyexistsasadirectory
atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInternal(FSNamesystem.java:1569)
atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFile(FSNamesystem.java:1527)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:710)
atorg.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:689)
atsun.reflect.GeneratedMethodAccessor7.invoke(UnknownSource)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
atjava.lang.reflect.Method.invoke(Method.java:606)
atorg.apache.hadoop.ipc.RPC$Server.call(RPC.java:587)
atorg.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1432)
atorg.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1428)
atjava.security.AccessController.doPrivileged(NativeMethod)
atjavax.security.auth.Subject.doAs(Subject.java:415)
申明你这个路径在hdfs上已存在,换一个便可。
C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作, 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 是一种突破用户端机器环境和CPU 是一种语言,用以产生「小应用程序(Applet(s)) http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
页:
[1]