Java读取HDFS文件

最近在实现一个功能:用户在前端页面触发Docker镜像构建,后端监听Docker镜像的构建状态,并将Docker镜像的构建日志保存到HDFS,之后用户可以随时在前端看到本次构建的日志。
从HDFS读取日志是用下面的方式实现的:

try(final FSDataInputStream inputStream = this.open(hdfsPath)){
      return inputStream.readUTF();
}catch (Exception e){
   log.error(e.getMessage() ,e);
   throw new AlphaException(READ_COMPILE_LOG_ERROR);
}

但通过这种方式读取时最多只能读取1K数据,导致日志不完整。
通过下面的方式可以实现日志的完整读取:

try(final FSDataInputStream inputStream = this.open(hdfsPath)){
    final ByteArrayOutputStream baos = new ByteArrayOutputStream();
    IOUtils.copyBytes(inputStream,baos, 1024);
    return new String(baos.toByteArray());
}catch (Exception e){
    log.error(e.getMessage() ,e);
    throw new AlphaException(READ_COMPILE_LOG_ERROR);
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 当数据量增大到超出了单个物理计算机存储容量时,有必要把它分开存储在多个不同的计算机中。那些管理存储在多个网络互连的...
    单行线的旋律阅读 2,081评论 0 7
  • 《Docker从入门到实践》阅读笔记 原书地址: https://yeasy.gitbooks.io/docker...
    GuoYuebo阅读 11,659评论 1 39
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 4,522评论 0 27
  • 一声凄惨的哀嚎将二毛惊醒。一个年龄稍长的学员,跪在房子中间的空地上不断哀求:“几位大哥,行行好,再给我一次机会,我...
    七山阅读 301评论 0 1
  • 需谢天公 赐梦都九重 层层风景不相同 重重梦境不相通 梦里梦外俱是梦 现世难逢 欲罢而不能 若笑语只换将心痛 请寄...
    许一之阅读 236评论 0 1

友情链接更多精彩内容