美文网首页Hadoop
Java读取HDFS文件

Java读取HDFS文件

作者: 王勇1024 | 来源:发表于2019-06-27 19:10 被阅读0次

    最近在实现一个功能:用户在前端页面触发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);
    }
    

    相关文章

      网友评论

        本文标题:Java读取HDFS文件

        本文链接:https://www.haomeiwen.com/subject/hqfdcctx.html