您的位置:首页 > 大数据 > Hadoop

.gz文件上载到hdfs中

2016-01-18 15:06 459 查看
.gz文件上载到hdfs中

用 dfs -copyFormLocal的方式,上载后的文件正常,可以用mapreduce直接读取;

终于找到原因了:一个配置问题,

HdfsSink中默认的serializer会每写一行在行尾添加一个换行符,这样会导致每条日志后面多一个空行,修改配置不要自动添加换行符;

agentb2.sinks.hdfs_sink2.serializer.appendNewline = false
OK

用flume的方式,datastream类型,上载后mapreduce操作异常,为何呢?

Error: java.io.EOFException: Unexpected end of input stream

    at org.apache.hadoop.io.compress.DecompressorStream.decompress(DecompressorStream.java:145)

    at org.apache.hadoop.io.compress.DecompressorStream.read(DecompressorStream.java:85)

    at java.io.InputStream.read(InputStream.java:101)

    at org.apache.hadoop.util.LineReader.fillBuffer(LineReader.java:180)

    at org.apache.hadoop.util.LineReader.readDefaultLine(LineReader.java:216)

    at org.apache.hadoop.util.LineReader.readLine(LineReader.java:174)

    at org.apache.hadoop.mapreduce.lib.input.LineRecordReader.nextKeyValue(LineRecordReader.java:185)

    at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:556)

    at org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80)

    at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91)

    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)

    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787)

    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)

    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)

    at java.security.AccessController.doPrivileged(Native Method)

    at javax.security.auth.Subject.doAs(Subject.java:422)

    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)

    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)

设定为hdfs.filetype为sequencefile,然后mr中用sequencefile的文件输入方式也不行:

job.setInputFormatClass(SequenceFileInputFormat.class);

Error: java.lang.ClassCastException: org.apache.hadoop.io.BytesWritable cannot be cast to org.apache.hadoop.io.Text

    at com.gzmrdemo.GzFileMapper.map(GzFileMapper.java:1)

    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146)

    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787)

    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)

    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)

    at java.security.AccessController.doPrivileged(Native Method)

    at javax.security.auth.Subject.doAs(Subject.java:422)

    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)

    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: