首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Flume将一组csv文件从本地目录复制到HDFS

如何使用Flume将一组csv文件从本地目录复制到HDFS
EN

Stack Overflow用户
提问于 2014-07-20 04:42:38
回答 2查看 2.4K关注 0票数 1

如何使用Flume将一组csv文件从本地目录复制到HDFS?我尝试使用假脱机目录作为我的源,但未能复制。然后,我使用了以下水槽配置来获得我的结果:

代码语言:javascript
复制
agent1.sources = tail 
agent1.channels = MemoryChannel-2 
agent1.sinks = HDFS 
agent1.sources.tail.type = exec 
agent1.sources.tail.command = tail -F /home/cloudera/runs/*  
agent1.sources.tail.channels = MemoryChannel-2 
agent1.sinks.HDFS.channel = MemoryChannel-2 
agent1.sinks.HDFS.type = hdfs 
agent1.sinks.HDFS.hdfs.path = hdfs://localhost:8020/user/cloudera/runs                         
agent1.sinks.HDFS.hdfs.file.Type = DataStream 
agent1.channels.MemoryChannel-2.type = memory 

我把我的文件复制到hdfs,但是它们包含特殊的字符,对我来说没有用。我的本地目录是/home/cloudera/运行,我的HDFS目标目录是/user/cloudera/run。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-24 21:07:05

代码语言:javascript
复制
I used the below flume configuration to get the job done.

#Flume Configuration Starts
# Define a file channel called fileChannel on agent_slave_1
agent_slave_1.channels.fileChannel1_1.type = file 
# on linux FS
agent_slave_1.channels.fileChannel1_1.capacity = 200000
agent_slave_1.channels.fileChannel1_1.transactionCapacity = 1000
# Define a source for agent_slave_1
agent_slave_1.sources.source1_1.type = spooldir

# on linux FS
#Spooldir in my case is /home/cloudera/runs
agent_slave_1.sources.source1_1.spoolDir = /home/cloudera/runs/
agent_slave_1.sources.source1_1.fileHeader = false
agent_slave_1.sources.source1_1.fileSuffix = .COMPLETED
agent_slave_1.sinks.hdfs-sink1_1.type = hdfs

#Sink is /user/cloudera/runs_scored under hdfs
agent_slave_1.sinks.hdfs-sink1_1.hdfs.path = hdfs://localhost.localdomain:8020/user/cloudera/runs_scored/
agent_slave_1.sinks.hdfs-sink1_1.hdfs.batchSize = 1000
agent_slave_1.sinks.hdfs-sink1_1.hdfs.rollSize = 268435456
agent_slave_1.sinks.hdfs-sink1_1.hdfs.rollInterval = 0
agent_slave_1.sinks.hdfs-sink1_1.hdfs.rollCount = 50000000
agent_slave_1.sinks.hdfs-sink1_1.hdfs.writeFormat=Text

agent_slave_1.sinks.hdfs-sink1_1.hdfs.fileType = DataStream
agent_slave_1.sources.source1_1.channels = fileChannel1_1
agent_slave_1.sinks.hdfs-sink1_1.channel = fileChannel1_1

agent_slave_1.sinks =  hdfs-sink1_1
agent_slave_1.sources = source1_1
agent_slave_1.channels = fileChannel1_1
票数 1
EN

Stack Overflow用户

发布于 2014-10-08 11:23:04

在你的水槽里,你需要用

agent1.sinks.HDFS.hdfs.fileType = DataStream

而不是

agent1.sinks.HDFS.hdfs.file.Type = DataStream

休息似乎很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24847441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档