1 import java.io.FileInputStream;
2 import java.io.IOException;
3 import java.text.SimpleDateFormat;
4 import java.util.Scanner;
5
6 import org.apache.hadoop.conf.Configuration;
7 import org.apache.hadoop.fs.FSDataInputStream;
8 import org.apache.hadoop.fs.FSDataOutputStream;
9 import org.apache.hadoop.fs.FileSystem;
10 import org.apache.hadoop.fs.Path;
11
12 public class H_AppendorBefore {
13 public static void DelFile(FileSystem fs, Path p_remotepath) {
14 try {
15 if (fs.delete(p_remotepath, true)) {
16 ;
17 }
18 } catch (Exception e) {
19 e.printStackTrace();
20 }
21
22 }
23
24 public static void appendToFileBefore(FileSystem fs, String localFilePath,
25 String remoteFilePath) {
26 Path remotePath = new Path(remoteFilePath);
27
28 try {
29 FileInputStream in_local = new FileInputStream(localFilePath);
30 FSDataInputStream in_remote = fs.open(remotePath);
31 DelFile(fs, remotePath);
32 FSDataOutputStream out = fs.create(remotePath);
33 out.close();
34 out = fs.append(remotePath);
35 byte[] data = new byte[1024];
36 int read = -1;
37 while ((read = in_local.read(data)) > 0) {
38 out.write(data, 0, read);
39 }
40 while ((read = in_remote.read(data)) > 0) {
41 out.write(data, 0, read);
42 }
43 out.close();
44 System.out.println("write_before success");
45 } catch (IOException e) {
46 e.printStackTrace();
47 }
48 }
49
50 public static void appendToFile(FileSystem fs, String localFilePath,
51 String remoteFilePath) {
52 Path remotePath = new Path(remoteFilePath);
53 try {
54 FileInputStream in = new FileInputStream(localFilePath);
55 FSDataOutputStream out = fs.append(remotePath);
56 byte[] data = new byte[1024];
57 int read = -1;
58 while ((read = in.read(data)) > 0) {
59 out.write(data, 0, read);
60 }
61 out.close();
62 System.out.println("write_append success");
63 } catch (IOException e) {
64 e.printStackTrace();
65 }
66 }
67
68 public static void main(String[] args) {
69 try {
70 Var_init var = new Var_init();
71 Scanner sc = new Scanner(System.in);
72 System.out.println("input wa to write_append, wb to write_before");
73 String str = sc.next();
74 if (str.equals("wa")) {
75 appendToFile(var.fs, var.s_localFilePath, var.s_remoteFilePath);
76 } else if (str.equals("wb")) {
77 appendToFileBefore(var.fs, var.s_localFilePath,
78 var.s_remoteFilePath);
79 }
80 } catch (Exception e) {
81 e.printStackTrace();
82 }
83 }
84
85 }

Var_init类参考https://www.cnblogs.com/MiraculousB/p/13848744.html

向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾。的更多相关文章

  1. 向HDFS中追加内容

    向生成好的hdfs文件中追加内容,但是线上使用的版本是1.0.3,查看官方文档发现,在1.0.4版本以后才支持文件append 以下是向hdfs中追加信息的操作方法 如果你只在某一个driver中追加 ...

  2. 每日学习心得:SharePoint 为列表中的文件夹添加子项(文件夹)、新增指定内容类型的子项、查询列表中指定的文件夹下的内容

    前言: 这里主要是针对列表中的文件下新增子项的操作,同时在新建子项时,可以为子项指定特定的内容类型,在某些时候需要查询指定的文件夹下的内容,针对这些场景都一一给力示例和说明,都是一些很小的知识点,希望 ...

  3. hdfs中删除文件、文件夹、抓取内容

    删除文件   bin/hdfs dfs -rm output2/* 删除文件夹   bin/hdfs dfs -rm -r output2 抓取内容     bin/hdfs dfs -cat /us ...

  4. HDFS中文件的压缩与解压

    HDFS中文件的压缩与解压 文件的压缩有两大好处:1.可以减少存储文件所需要的磁盘空间:2.可以加速数据在网络和磁盘上的传输.尤其是在处理大数据时,这两大好处是相当重要的. 下面是一个使用gzip工具 ...

  5. flume 增量上传日志文件到HDFS中

    1.采集日志文件时一个很常见的现象 采集需求:比如业务系统使用log4j生成日志,日志内容不断增加,需要把追加到日志文件中的数据实时采集到hdfs中. 1.1.根据需求,首先定义一下3大要素: 采集源 ...

  6. HDFS 中文件操作的错误集锦

    问题1  Java ApI执行追加写入时:无法写入 问题描述: ①当前数据节点无法写入,②追加文件需要再次请求. 问题2  命令行执行追加写入时:无法写入 问题描述: 当前数据节点无法写入 问题3   ...

  7. hadoop学习;大数据集在HDFS中存为单个文件;安装linux下eclipse出错解决;查看.class文件插件

    sudo apt-get install eclipse 安装后打开eclipse,提示出错 An error has occurred. See the log file /home/pengeor ...

  8. Java将文件中的内容转换为sql语句(和并发定时读取文件)

    数据文件内容data.txt {USER_TYPE=1,CREATE_USER=ZHANG,UPDATE_USER=li,OPER_NUM=D001,SRC=2,UPDATE_TIME=2018-11 ...

  9. HTML 5 应用程序缓存(Application Cache)cache manifest 文件使用 html5 中创建manifest缓存以及更新方法 一个manifest文件会创建一份缓存,不同的manifest文件其缓存的内容是互不干扰的

    HTML5 离线缓存-manifest简介 HTML 5 应用程序缓存 使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本. 什么是应用程序缓存(A ...

随机推荐

  1. 顶会两篇论文连发,华为云医疗AI低调中崭露头角

    摘要:2020年国际医学图像计算和计算机辅助干预会议(MICCAI 2020),论文接收结果已经公布.华为云医疗AI团队和华中科技大学合作的2篇研究成果入选. 同时两篇研究成果被行业顶会收录,华为云医 ...

  2. iOS 集成友盟分享图片链接为http时无法加载问题解决

    一.问题描述 UMShareWebpageObject *obj = [UMShareWebpageObject shareObjectWithTitle:title descr:shareText ...

  3. 安装篇一:安装VMware12

    #1.安装VMware12 前提:安装不了的解决办法(进入BIOS系统,把虚拟化技术那一项修改为enable) 说明:安装流程(自定义安装)              #2.网络适配器设置 虚拟网络编 ...

  4. JavaScript内置可用类型

    string,number,boolean,null和undefined,object,symbol(ES6新语法)

  5. 单细胞分析实录(1): 认识Cell Hashing

    这是一个新系列 差不多是一年以前,我定导后没多久,接手了读研后的第一个课题.合作方是医院,和我对接的是一名博一的医学生,最开始两边的老师很排斥常规的单细胞文章思路,即各大类细胞分群.注释.描述,所以起 ...

  6. 关于try catch块执行流程

    代码: package test; public class FinallyTest { public static void main(String[] args) { try { // proce ...

  7. SpringBoot框架中解决日期展示问题

    解决日期展示问题(返回的json中日期的格式是:"birthday":"1988-08-07T15:00:00.000+0000");需要转化成指定的格式(年月 ...

  8. pixi.js 图像资源(svg)转纹理

    当Pixi使用WebGL去调用GPU渲染图像时,需要先将图像转化为GPU可以处理的版本.而能够被GPU处理的图像就叫做纹理,在pixi中使用纹理缓存来存储和引用所有纹理.通过将纹理分配给精灵,再将精灵 ...

  9. MySQL--运行机制,SQL执行顺序,Explain

    MySQL的运行机制是什么?  首先客户端先要发送用户信息去服务器端进行授权认证,当输入正确密码之后可以连接到数据库了,当连接服务器端成功之后就可以正常的执行 SQL 命令了,MySQL 服务器拿到 ...

  10. std::thread线程库详解(2)

    目录 目录 简介 最基本的锁 std::mutex 使用 方法和属性 递归锁 std::recursive_mutex 共享锁 std::shared_mutex (C++17) 带超时的锁 总结 简 ...