赞
踩
package org.zkpk.hadoop.FileWrite;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.*;
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;
public class Main {
public static void main (String[]args){
BufferedInputStream in = null;
FileSystem fs = null;
FSDataOutputStream out = null;
String k = args[2];
try{
in = new BufferedInputStream(new FileInputStream(args[0]));
Configuration conf = new Configuration();
fs = FileSystem.get(URI.create(args[1]), conf);
if (fs.exists(new Path(args[1]))){
if(args[2] != "true"){
FileAppend.Fileappend(fs, args, conf, in, out);
}else{
FileWrite.Filewrite(fs, args, conf, in, out);
}
}
else{
FileWrite.Filewrite(fs, args, conf, in, out);
}
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}finally{
IOUtils.closeStream(out);
IOUtils.closeStream(in);
if(fs != null){
try{
fs.close();
}catch(IOException e ){
e.printStackTrace();
}
}
}
}
}
package org.zkpk.hadoop.FileWrite;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
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;
public class FileWrite {
public static void Filewrite(FileSystem fs,String args[] ,Configuration conf,BufferedInputStream in, FSDataOutputStream out){
try{
out = fs.create(new Path(args[1]));
IOUtils.copyBytes(in, out, 4096, false);
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
package org.zkpk.hadoop.FileWrite;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
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;
public class FileAppend {
public static void Fileappend(FileSystem fs,String args[] ,Configuration conf, BufferedInputStream in, FSDataOutputStream out){
try{
fs.close();
conf.set("dfs.client.block.write.replace-datanode-on-failure.enble","true");
conf.set("dfs.client.block.write.replace-datanode-on-failure.policy","NEVER");
fs = FileSystem.get(URI.create(args[1]), conf);
out = fs.append(new Path(args[1]));
IOUtils.copyBytes(in, out, 4096, false);
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
然后export 打包成jar
在terminal 中调用
hadoop jar /home/zkpk/FileWrite.jar org.zkpk.hadoop.FileWrite.Main /home/zkpk/experiment/file1.txt hdfs://master:9000/file2.txt true
再用Hadoop fs -cat /file2.txt 查看
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。