Hadoop实验:按规则读取本地文件写入HDFS文件系统


题目:自行在本地文件系统生成一个大约100字节的文本文件,写一段程序(可以利用Java API或C API),读入这个文件,并将其第101-120字节的内容写入HDFS成为一个新文件


1.本地文件


2.[Java]代码

[hadoop@Master myclass]$ pwd
/usr/hadoop/myclass
[hadoop@Master myclass]$ vim CopyFileFromLocalToHDFS.java

 import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URI;


 import org.apache.hadoop.conf.Configuration;
 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 CopyFileFromLocalToHDFS {
         public static void main(String[] args) throws IOException {
                 String localSrc = args[0];
                 String dst = args[1];
                 InputStream in = new BufferedInputStream(new FileInputStream(localSrc));

                 byte buf[] = new byte[4096];

                 in.read(buf,0,100);//去掉前面的100个字节

                Configuration conf = new Configuration();
                 FileSystem fs = FileSystem.get(URI.create(dst), conf);
                 Path path = new Path(dst);
                 OutputStream out = fs.create(path,true,1024,new Progressable() {
                 public void progress() {
                         System.out.print("----");
                        }
                });

        IOUtils.copyBytes(in, out, 20, 1024, true);//20是取20个字节,这样就取到101-120的字节了。
        }
 }


3.编译执行程序


[hadoop@Master myclass]$ javac  -classpath /usr/hadoop/hadoop-core-1.2.1.jar  CopyFileFromLocalToHDFS.java







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值