要求如下:

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

  1. import java.io.File;
  2.  
  3. import java.io.FileOutputStream;
  4.  
  5. import java.io.IOException;
  6.  
  7. import java.io.OutputStream;
  8.  
  9. public class ShengChen {
  10.  
  11. public static void main(String[] args) throws IOException {
  12.  
  13. // TODO Auto-generated method stub
  14.  
  15. File file=new File("/home/weiguohui/shengchen.txt");
  16.  
  17. if (!file.exists()) {
  18.  
  19. file.createNewFile();
  20.  
  21. }
  22.  
  23. byte[] bytes=new byte[130];
  24.  
  25. for (int i = 0; i < bytes.length; i++) {
  26.  
  27. bytes[i]=(byte) i;
  28.  
  29. }
  30.  
  31. FileOutputStream fos=new FileOutputStream(file);
  32.  
  33. fos.write(bytes);
  34.  
  35. }
  36.  
  37. }

正好写入了20个字节

代码:

  1. import java.io.File;
  2.  
  3. import java.io.FileInputStream;
  4.  
  5. import java.io.FileNotFoundException;
  6.  
  7. import java.io.InputStream;
  8.  
  9. import org.apache.hadoop.io.IOUtils;
  10.  
  11. import java.io.BufferedInputStream;
  12.  
  13. import org.apache.hadoop.fs.FileSystem;
  14.  
  15. import org.apache.hadoop.conf.Configuration;
  16.  
  17. import java.net.URI;
  18.  
  19. import java.io.OutputStream;
  20.  
  21. import org.apache.hadoop.fs.Path;
  22.  
  23. public class CopyFileToHdfs {
  24.  
  25. public static void main(String[] args) {
  26.  
  27. // TODO Auto-generated method stub
  28.  
  29. File file=new File("/home/weiguohui/shengchen.txt");
  30.  
  31. InputStream in=null;
  32.  
  33. String dst=args[0];
  34.  
  35. Configuration conf = new Configuration();
  36.  
  37. byte[] bytes=new byte[1024];
  38.  
  39. int offset=100;
  40.  
  41. int len=20;
  42.  
  43. int numberRead=0;
  44.  
  45. OutputStream os=null;
  46.  
  47. try {
  48.  
  49. FileSystem fs = FileSystem.get(URI.create(dst), conf);
  50.  
  51. in= new BufferedInputStream(new FileInputStream(file));
  52.  
  53. os=fs.create(new Path(dst));
  54.  
  55. while((numberRead=in.read(bytes))!=-1){
  56.  
  57. os.write(bytes, offset, len);
  58.  
  59. }
  60.  
  61. //IOUtils.copyBytes(in, os, 4096, false);
  62.  
  63. } catch (Exception e) {
  64.  
  65. // TODO Auto-generated catch block
  66.  
  67. e.printStackTrace();
  68.  
  69. }finally {
  70.  
  71. IOUtils.closeStream(in);
  72.  
  73. IOUtils.closeStream(os);
  74.  
  75. }
  76.  
  77. }
  78.  
  79. }

使用java API操作hdfs--拷贝部分文件到hdfs的更多相关文章

  1. 使用java API操作hdfs--拷贝部分文件到本地

    要求:和前一篇的要求正好相反.. 在HDFS中生成一个130KB的文件: 代码如下: import java.io.IOException; import org.apache.hadoop.conf ...

  2. HDFS 05 - HDFS 常用的 Java API 操作

    目录 0 - 配置 Hadoop 环境(Windows系统) 1 - 导入 Maven 依赖 2 - 常用类介绍 3 - 常见 API 操作 3.1 获取文件系统(重要) 3.2 创建目录.写入文件 ...

  3. 使用Java API操作HDFS文件系统

    使用Junit封装HFDS import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org ...

  4. Hadoop之HDFS(三)HDFS的JAVA API操作

    HDFS的JAVA API操作 HDFS 在生产应用中主要是客户端的开发,其核心步骤是从 HDFS 提供的 api中构造一个 HDFS 的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS ...

  5. hadoop2-HBase的Java API操作

    Hbase提供了丰富的Java API,以及线程池操作,下面我用线程池来展示一下使用Java API操作Hbase. 项目结构如下: 我使用的Hbase的版本是 hbase-0.98.9-hadoop ...

  6. Kafka系列三 java API操作

    使用java API操作kafka 1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...

  7. MongoDB Java API操作很全的整理

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...

  8. hive-通过Java API操作

    通过Java API操作hive,算是测试hive第三种对外接口 测试hive 服务启动 package org.admln.hive; import java.sql.SQLException; i ...

  9. zookeeper的java api操作

    zookeeper的java api操作 创建会话: Zookeeper(String connectString,int sessionTimeout,Watcher watcher) Zookee ...

随机推荐

  1. iOS 组件化

    iOS 组件化介绍 随着应用需求逐步迭代,应用的代码体积将会越来越大,为了更好的管理应用工程,我们开始借助CocoaPods版本管理工具对原有应用工程进行拆分.但是仅仅完成代码拆分还不足以解决业务之间 ...

  2. libcrypto.so.1.0.0内容丢失导致sshd无法运行解决方案

    libcrypto.so.10丢失导致sshd无法运行解决方案 服务器由于掉电开启系统后无法远程ssh,重启sshd服务弹如下图的错误: /usr/sbin/sshd:error while load ...

  3. java里的日期时间

    为了更好理解java的日期时间类,在这里我们先介绍一下关于历法.标准时间的一些概念. 历法有很多种,我们大中华上下五千年,自然也有自己的历法,生活中我们通常把自己传统的历法叫做农历,也有人叫它阴历或夏 ...

  4. PMP和PRINCE2应该选择哪个?光环国际项目管理认证

    对于项目管理课程的选择,我们不能盲目地做选择,一定要从自身实际出发.从来都没有更好的课程,只有更合适自己的课程. 那么,如何选择合适自己的项目管理课程呢? 让我们从PMP与PRINCE2之间的差异开始 ...

  5. 更全面的聊聊PRINCE2是什么

    1 什么是PRINCE2®? PRINCE2是一个非专有方法,已在全世界超过150个国家广泛使用,采用它的组织正在与日俱增. 它被广泛认为是项目管理的领先方法,超过2万个组织已经从其开创性的可信方法中 ...

  6. 重温Javascript(四)-函数

    函数 函数声明提升,在执行代码之前会先读取函数声明 sayHi(); function sayHi(){ alert("Hi!"); } 递归 arguments.callee是指 ...

  7. 随机跳转页面之使用VBA公共变量

    p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...

  8. js遍历(获取)ul中的li

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  9. windows环境搭建jira 详解

    一.事前准备 1:JDK下载并安装:http://www.oracle.com/technetwork/java/javase/downloads/index.html2:MySQL JDBC连接驱动 ...

  10. Elasticsearch高级搜索排序( 中文+拼音+首字母+简繁转换+特殊符号过滤)

    一.先摆需求: 1.中文搜索.英文搜索.中英混搜   如:"南京东路","cafe 南京东路店" 2.全拼搜索.首字母搜索.中文+全拼.中文+首字母混搜   如 ...