Твиттер источник, чтобы улей тонуть, используя Flume - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь подключить твиттер к кусту, используя 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 Agent с помощью этой команды:

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 для созданиятаблицы кустов, которые следует упомянуть в файле свойств twitter.conf

1 Ответ

0 голосов
/ 30 мая 2018

HiveSink была введена в версии 1.6 и согласно документации , да, метастор, имя базы данных и имя таблицы являются обязательными.Часть раздела, однако, является необязательной, поскольку flume может создавать недостающие разделы.

Что касается схемы для твиттера, то, похоже, существует проблема, с которой столкнулись некоторые другие, и я нашел эту ссылку довольнополезно (возможно, вы уже сталкивались с этим).В нем упоминаются некоторые структуры данных, доступные в кусте, которые могут вам понадобиться для работы с данными, поступающими в формате JSON.Тем не менее, вам может потребоваться изменить некоторые кусочки для вашего сценария, но это должно дать вам хорошее начало.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...