用java程序把本地的一个文件拷贝到hdfs上并显示进度
来源:互联网 发布:万界淘宝商txt下载 编辑:程序博客网 时间:2024/05/16 11:48
把程序打成jar包放到Linux上
转到目录下执行命令 hadoop jar mapreducer.jar /home/clq/export/java/count.jar hdfs://ubuntu:9000/out06/count/
上面一个是本地文件,一个是上传hdfs位置
可能出现异常:
Exception in thread "main" org.apache.hadoop.ipc.RemoteException: java.io.IOException: Cannot create /out06; already exists as a directory
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInternal(FSNamesystem.java:1569)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFile(FSNamesystem.java:1527)
at org.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:710)
at org.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:689)
at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:587)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1432)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1428)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
说明你这个路径在hdfs上已经存在,换一个即可。
转到目录下执行命令 hadoop jar mapreducer.jar /home/clq/export/java/count.jar hdfs://ubuntu:9000/out06/count/
上面一个是本地文件,一个是上传hdfs位置
成功后出现:打印出来,你所要打印的字符。
package com.clq.hdfs;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.net.URI;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataOutputStream;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IOUtils;import org.apache.hadoop.util.Progressable;public class FileCopyWithProgress {//********************************//把本地的一个文件拷贝到hdfs上//********************************public static void main(String[] args) throws IOException {String localSrc = args[0];String dst = args[1];InputStream in = new BufferedInputStream(new FileInputStream(localSrc));Configuration conf = new Configuration();FileSystem fs = FileSystem.get(URI.create(dst), conf);FSDataOutputStream out = fs.create(new Path(dst), new Progressable() {@Overridepublic void progress() {System.out.print(".");}});IOUtils.copyBytes(in, out, conf, true);}}
可能出现异常:
Exception in thread "main" org.apache.hadoop.ipc.RemoteException: java.io.IOException: Cannot create /out06; already exists as a directory
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInternal(FSNamesystem.java:1569)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFile(FSNamesystem.java:1527)
at org.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:710)
at org.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:689)
at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:587)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1432)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1428)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
说明你这个路径在hdfs上已经存在,换一个即可。
0 0
- 用java程序把本地的一个文件拷贝到hdfs上并显示进度
- Hadoop实验:用java把hdfs系统里的文件内容读取出来,显示到屏幕
- java实现将hdfs上的文件下载到本地系统上
- 网络编程---(数据请求+slider)将网络上的大文件下载到本地,并打印其进度
- JAVA实现:将文件从本地上传到HDFS上、从HDFS上读取等操作
- C# 文件拷贝的进度显示
- 带有进度显示的文件拷贝模块
- 拷贝文件的时候显示进度
- 把assets下的指定文件拷贝到sdcard上
- 从本地上传整个文件夹到hdfs的java程序
- 用批处理将文件从本地拷贝到服务器上
- WPF 文件拷贝进度显示
- 使用java来把一个目录下的所有文件拷贝到另外一个目录下,并且重命名
- 使用java来把一个目录下的所有文件拷贝到另外一个目录下,并且重命名
- Hdfs将服务器的整个文件夹拷贝到Linux本地
- window 系统 linux 系统 hdfs 文件系统 相互转移 hdfs 拷贝文件到linux 本地
- 如何把hdfs上的多个目录下的文件合并为一个文件
- 将标准输出重定向到一个文件的同时并在屏幕上显示
- 有两个序列a,b,大小都为n,序列元素的值任意整数,无序;要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
- hive中分组取前N个值的实现
- 1.4.1.3 声明式函数动画
- hdu 1754
- 润乾——主格
- 用java程序把本地的一个文件拷贝到hdfs上并显示进度
- 键盘键和键盘键控制值一览表(键盘按键对应代码表)
- [深入浅出Cocoa]Block编程值得注意的那些事儿
- Date.UTC()返回1970年1月1日午夜之间的毫秒数
- Linux命令行技巧
- Android 混淆及项目发布
- oracle查看数据库名和实例名
- poj 2773 Happy 2006(欧拉函数应用)
- HD 2503 a/b + c/d