我正在尝试将Twitter提要流式传输到hdfs,然后使用配置单元 . 但第一部分,流数据和加载到hdfs不起作用,并给出Null指针异常 .
这就是我尝试过的 .
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_HOME编辑为我的java路径 /usr/lib/jvm/java-7-oracle
.
3. 接下来,我在同一个 conf
目录中创建了一个名为 flume.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 Key I added as consumer key .
我从cloudera -files下载了flume-sources jar,因为他们提到in here .
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中, the core-site.xml 文件具有以下配置
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:8020</value>
<fina1>true</fina1>
</property>
</configuration>
谢谢
2 回答
我运行以下命令,它运行了
我使用了这个命令,它正在工作