val aa:String = "hdfs://127.0.0.1:9000/test/my_test.jar"
//调用封好的工具类,返回FSDataInputStream文件流
val inputStream:FSDataInputStream= HdfsUtil.getFSDataInputStream(aa)
val byteArrayOutputStream = new ByteArrayOutputStream()
//创建压缩流
val zos = new ZipOutputStream(byteArrayOutputStream)
val jarName = jarPath.substring(jarPath.lastIndexOf("/")+1)
val zipEntry:ZipEntry = new ZipEntry(jarName)
zos.putNextEntry(zipEntry)
var flag = true
var index = 0;
var i:Int = 0;
while(flag){
//循环read Hdfs的文件流
val byte:Array[Byte] =new Array[Byte](1024*1024);
index = inputStream.read(byte,0,byte.length)
//打印一下每次读取的字节数
println("----------------------index------------------:"+index)
if (index>0){
i=i+1;
//这个文件读取了多少次
println("--------------i---------------:"+i)
zos.write(byte,0,index)
}else{
flag = false
}
}
zos.closeEntry()
zos.close()
//接下来都是无用代码,省略
追的源码在网站找了个博主的记录,我这里也就直接借用一下,curDataSlice的值就是131072,也尝试修改了hadoop配置文件中的和文件大小相关耳朵配置,但最终也没解决,
顶一下,不要沉了啊!!!!