如何读取Hadoop中压缩的文件
2017-03-25 11:27
176 查看
最近在处理离线数据导入HBase的问题,涉及从Hdfs中读取gz压缩文件,把思路记录下来,以作备用。具体代码如下:
package org.dba.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.compress.CompressionCodec; import org.apache.hadoop.io.compress.CompressionCodecFactory; import org.apache.hadoop.io.compress.CompressionInputStream; public class ReadHdfs { public static void ReadFile(String fileName) throws IOException{ Configuration conf = new Configuration(); Path file = new Path(fileName); FileSystem fs = FileSystem.get(conf); FSDataInputStream hdfsInstream = fs.open(file); CompressionCodecFactory factory = new CompressionCodecFactory(conf); CompressionCodec codec = factory.getCodec(file); BufferedReader reader = null; try{ if(codec == null){ reader = new BufferedReader(new InputStreamReader(hdfsInstream)); }else{ CompressionInputStream comInStream = codec.createInputStream(hdfsInstream); reader = new BufferedReader(new InputStreamReader(comInStream)); System.out.println(reader.readLine().substring(0, 100)); } }catch(Exception e){ e.printStackTrace(); } } public static void main(String[] args) throws IOException{ ReadFile(args[0]); } }
相关文章推荐
- 如何在Scala中读取Hadoop集群上的gz压缩文件
- 如何在Scala中读取Hadoop集群上的gz压缩文件
- 如何让tar从文件中读取要压缩的文件
- 如何让Hadoop读取以gz结尾的文本格式的文件
- Hadoop如何读取复杂格式的文件,例如XML、HTML、图像等,附源码
- 如何让Hadoop读取以gz结尾的文本格式的文件
- perl如何读取压缩文件
- 如何有效的使用C#读取文件
- [Config]如何利用ConfigurationSettings.AppSettings.GetValues读取配置文件中多个同Key的value
- InternetReadFile如何正确读取二进制文件
- 如何从文件读取 XML(完整例程)
- 如何在 Windows 2000 中使用 COMPRESS、COMPACT 和 EXPAND 命令压缩或解压缩文件和文件夹
- asp.net如何读取局域网内文件啊?
- 如何使用C#压缩文件及注意的问题!
- 如何读取EXCEL文件中的图片?
- 如何从文件读取显示位图?
- 在Windows/Linux中如何打开.sit/.hqx压缩文件
- 如何在 Java 应用程序中读取8 位和24 位位图文件
- 如何使用C#压缩文件及注意的问题!
- 如何从注册表读取文件的ContentType