推特源到HiveFlume使用Flume

webghufk  于 2021-06-04  发布在  Flume
关注(0)|答案(1)|浏览(253)

我正在尝试连接twitter源到HiveFlume使用Flume。我的财产档案如下


# Naming the components on the current agent.

TwitterAgent.sources = Twitter
TwitterAgent.channels = MemChannel
TwitterAgent.sinks = k1

# Describing/Configuring the source

TwitterAgent.sources.Twitter.type = org.apache.flume.source.twitter.TwitterSource

# TwitterAgent.sources.Twitter.type = com.cloudera.flume.source.TwitterSource

TwitterAgent.sources.Twitter.consumerKey = xxx
TwitterAgent.sources.Twitter.consumerSecret = xxx
TwitterAgent.sources.Twitter.accessToken = xxx
TwitterAgent.sources.Twitter.accessTokenSecret = xxx
TwitterAgent.sources.Twitter.keywords = kafka, flume, hadoop, hive

# Describing/Configuring the sink

TwitterAgent.channels = MemChannel
TwitterAgent.channels.MemChannel.type = memory
TwitterAgent.sinks = k1
TwitterAgent.sinks.k1.type = hive
TwitterAgent.sinks.k1.channel = MemChannel
TwitterAgent.sinks.k1.hive.metastore = thrift://xxxx:9083
TwitterAgent.sinks.k1.hive.database = sample
TwitterAgent.sinks.k1.hive.table = tweets_twitter

# TwitterAgent.sinks.k1.hive.partition = user_location

TwitterAgent.sinks.k1.useLocalTimeStamp = false
TwitterAgent.sinks.k1.round = true
TwitterAgent.sinks.k1.roundValue = 10
TwitterAgent.sinks.k1.roundUnit = minute
TwitterAgent.sinks.k1.serializer = DELIMITED
TwitterAgent.sinks.k1.serializer.delimiter = "\t"
TwitterAgent.sinks.k1.serializer.serdeSeparator = '\t'

# TwitterAgent.sinks.k1.serializer.fieldnames =user_friends_count,user_location,user_email

# Describing/Configuring the channel

TwitterAgent.channels.MemChannel.type = memory
TwitterAgent.channels.MemChannel.capacity = 100000
TwitterAgent.channels.MemChannel.transactionCapacity = 1000
TwitterAgent.channels.MemChannel.byteCapacity = 6912212

# Binding the source and sink to the channel

TwitterAgent.sources.Twitter.channels = MemChannel
TwitterAgent.sinks.k1.channel = MemChannel

我不是在这里的配置单元中创建任何数据库或表。我是否需要创建数据库名、表名、分区列、字段名??在启动代理之前??如果是的话,我应该从哪里得到twitter流数据的模式??
我正在使用下面的命令启动flume代理

bin/flume-ng agent --conf ./conf/ -f conf/twitter_hive.conf Dflume.root.logger=DEBUG,console -n TwitterAgent --classpath "/usr/hdp/2.6.3.0-235/hive-hcatalog/share/hcatalog/*":"/usr/hdp/2.6.3.0-235/hive/lib/*"

在twitter.conf属性文件中,我应该在哪里获得twitter数据的模式来创建配置单元表

2uluyalo

2uluyalo1#

HiveSink 是在版本1.6中引入的,根据文档,是的,metastore、数据库名和表名是必需的。但是分区部分是可选的,因为flume可以创建缺少的分区。
至于twitter的模式,这似乎是其他人也面临的问题,我发现这个链接非常有用(你可能已经遇到过这个)。它提到了hive中可用的一些数据结构,您可能需要使用json格式的数据。然而,您可能需要为您的场景更改一些零碎的东西,但这应该会给您一个好的开始。
我希望这有帮助。

相关问题