apache flume twitter代理不传输数据

wj8zmpe1  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(339)

我正在尝试将twitter提要流式传输到hdfs,然后使用hive。但第一部分,流式传输数据和加载到hdfs不起作用,并给出空指针异常。
这就是我尝试过的。
1下载了apache-flume-1.4.0-bin.tar。提取了它。将所有内容复制到/usr/lib/flume/。在/usr/lib/i中,我将flume目录的所有者更改为用户。在/usr/lib/flume/中执行ls命令时,会显示

bin  CHANGELOG  conf  DEVNOTES  docs  lib  LICENSE  logs  NOTICE  README  RELEASE-NOTES  tools

2移动到conf/目录。我复制了文件 flume-env.sh.template 作为flume-env.sh和我编辑了java路径的javau主页 /usr/lib/jvm/java-7-oracle .
三。接下来,我创建了一个名为flume.conf的文件 conf 目录并添加了以下内容

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

TwitterAgent.sources.Twitter.type = com.cloudera.flume.source.TwitterSource
TwitterAgent.sources.Twitter.channels = MemChannel
TwitterAgent.sources.Twitter.consumerKey = <Twitter Application API key>
TwitterAgent.sources.Twitter.consumerSecret = <Twitter Application API secret>
TwitterAgent.sources.Twitter.accessToken = <Twitter Application Access token>
TwitterAgent.sources.Twitter.accessTokenSecret = <Twitter Application Access token secret>
TwitterAgent.sources.Twitter.keywords = hadoop, big data, analytics, bigdata, couldera, data science, data scientist, business intelligence, mapreduce, datawarehouse, data ware housing, mahout, hbase, nosql, newsql, businessintelligence, cloudcomputing

TwitterAgent.sinks.HDFS.channel = MemChannel
TwitterAgent.sinks.HDFS.type = hdfs
TwitterAgent.sinks.HDFS.hdfs.path = hdfs://localhost:8020/user/flume/tweets/%Y/%m/%d/%H/
TwitterAgent.sinks.HDFS.hdfs.fileType = DataStream
TwitterAgent.sinks.HDFS.hdfs.writeFormat = Text
TwitterAgent.sinks.HDFS.hdfs.batchSize = 1000
TwitterAgent.sinks.HDFS.hdfs.rollSize = 0
TwitterAgent.sinks.HDFS.hdfs.rollCount = 600

TwitterAgent.channels.MemChannel.type = memory
TwitterAgent.channels.MemChannel.capacity = 10000
TwitterAgent.channels.MemChannel.transactionCapacity = 100

我在twitter上创建了一个应用程序。生成令牌并将所有密钥添加到上述文件中。作为使用者密钥添加的api密钥。
我从cloudera下载了flume sources jar—这里提到的文件。
4我将flume-sources-1.0-snapshot.jar添加到/user/lib/flume/lib。
5启动hadoop并执行以下操作

hadoop fs -mkdir /user/flume/tweets
hadoop fs -chown -R flume:flume /user/flume
hadoop fs -chmod -R 770 /user/flume

6我在/user/lib/flume中运行以下命令

/usr/lib/flume/conf$ bin/flume-ng agent -n TwitterAgent -c conf -f conf/flume-conf

它正在显示它正在显示的jar,然后退出。
当我检查hdfs时,里面没有文件。 hadoop fs -ls /user/flume/tweets 它什么也没表现出来。
在hadoop中,core-site.xml文件具有以下配置

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:8020</value>
        <fina1>true</fina1>
    </property>
</configuration>

谢谢

fruv7luv

fruv7luv1#

我运行了下面的命令,它成功了

bin/flume-ng agent –conf ./conf/ -f conf/flume.conf -Dflume.root.logger=DEBUG,console -n TwitterAgent
dsf9zpds

dsf9zpds2#

我使用了这个命令,它正在工作

flume-ng agent --conf /etc/flume-ng/conf/ -f /etc/flume-ng/conf/flume.conf - Dflume.root.logger=DEBUG,console -n TwitterAgent

相关问题