hadoop - 将数据发送到HDFS中,但出现字符问题

标签 hadoop flume

下面提到的是我的水槽配置。

a1.sources = r1
a1.sinks = k1
a1.channels = c1

a1.sources.r1.type = http
a1.sources.r1.port = 5140
a1.sources.r1.channels = c1
a1.sources.r1.handler = org.apache.flume.source.http.JSONHandler
a1.sources.r1.handler.nickname = random props

a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

a1.sinks.k1.type = hdfs
a1.sinks.k1.channel = c1
a1.sinks.k1.hdfs.path = hdfs://10.0.40.18:9160/flume-test
a1.sinks.k1.hdfs.filePrefix = events-
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = minute

flume日志文件中没有错误,但是使用hadoop命令读取文件时出现问题。
hadoop fs -cat hdfs://10.0.40.18:9160/flume-test/even1393415633931

flume log message is hdfs file created is "hdfs://10.0.40.18:9160/flume-test/even1393415633931"

任何帮助。

最佳答案

首先,尝试用记录器替换HDFS接收器,以查看输入是否正确到达。

确认之后,我建议尝试调整水槽的冲洗设置。 HDFS接收器在通过hdfs.batchSize(默认为100)刷新到HDFS之前对事件进行批处理。这可能是问题所在,因为您将需要在第一次刷新输出之前发送100个JSON帖子。

最后,您可能还想尝试调整hdfs.writeFormat,默认情况下将其设置为Writable而不是Text

关于hadoop - 将数据发送到HDFS中,但出现字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22040951/

相关文章:

java - 在 Cloudera VMWare CentOS 6.4 4 节点集群上运行 OpenTSDB 时出错

hadoop - 从mongodb导入数据到hdfs时出错

java - Hadoop:错误:java.io.IOException:映射中的键类型不匹配:预期的 org.apache.hadoop.io.Text,收到 org.apache.hadoop.io.LongWritable

hadoop - 在Cloudera Hadoop中构建MapReduce程序时出错

hadoop - 确认oozie使用java action运行的Java代码是否仅在单个节点上运行

hadoop - 发布数据损坏时跳过 kafka 中的 sink 步骤

message-queue - 在Kafka中阅读邮件时重新平衡问题

hadoop - 配置flume在将数据下沉到hdfs时不生成.tmp文件

hadoop - 如何从Twitter阅读Flume生成的数据文件

hadoop - 文件传输到HDFS