我正在尝试配置水槽并且正在关注this link。以下命令适用于我:
flume-ng agent -n TwitterAgent -c conf -f /usr/lib/apache-flume-1.7.0-bin/conf/flume.conf
我得到错误的结果是,
17/01/31 12:04:08 INFO source.DefaultSourceFactory: Creating instance of source Twitter, type com.cloudera.flume.source.TwitterSource
17/01/31 12:04:08 ERROR node.PollingPropertiesFileConfigurationProvider: Failed to load configuration data.
Exception follows. org.apache.flume.FlumeException:
Unable to load source type:
com.cloudera.flume.source.TwitterSource, class:
com.cloudera.flume.source.TwitterSource.
(这是结果的一部分,我刚刚复制了它的错误部分)
有人可以帮忙解决这个错误吗?我需要修复它以继续第24步,这是最后一步。
答案 0 :(得分:0)
1。这是文件 /usr/lib/flume-ng/conf/flume.conf :
public class LightSwitchMain {
public static void main(String[] args) {
Map<LocalDate, List<SwitchEvent>> eventContainer = new HashMap<>();
// Example of a light switch OFF on Jan 1, 2016 at 9:45)
LocalDate eventDate1 = LocalDate.of(2016, 1, 1);
SwitchEvent event1 = new SwitchEvent(LocalTime.of(9, 45), 0);
addSwitchEvent(eventContainer, eventDate1, event1);
// Light goes on
SwitchEvent event2 = new SwitchEvent(LocalTime.of(9, 55), 1);
addSwitchEvent(eventContainer, eventDate1, event2);
}
static void addSwitchEvent(Map<LocalDate, List<SwitchEvent>> eventContainer, LocalDate eventDate, SwitchEvent event) {
List<SwitchEvent> dayEvents = eventContainer.get(eventDate);
if (dayEvents == null) {
dayEvents = new ArrayList<SwitchEvent>();
eventContainer.put(eventDate, dayEvents);
}
dayEvents.add(event);
}
static class SwitchEvent {
final LocalTime eventTime; // Time of the light switch
final int switchState; // 0=off, 1=on
public SwitchEvent(LocalTime eventTime, int switchState) {
this.eventTime = eventTime;
this.switchState = switchState;
}
}
}
2. 将以下 flume-env.sh.template 文件重命名为 flume-env.sh
〜] $ sudo cp /usr/lib/flume-ng/conf/flume-env.sh.template /usr/lib/flume-ng/conf/flume-env.sh
3. 在 flume-env.sh 文件中设置 JAVA_HOME 和 FLUME_CLASSPATH :
export JAVA_HOME = / usr / java / jdk1.7.0_67-cloudera
FLUME_CLASSPATH = “/ usr / lib中/水槽-纳克/ LIB /水槽来源-1.0-SNAPSHOT.jar”
4. 如果您的系统上没有找到“/ usr / lib / flume-ng / lib / flume-sources-1.0-SNAPSHOT.jar”然后从谷歌下载 apache-flume-1.6.0-bin 并将其 lib 文件夹复制到当前的 lib 文件夹。
链接: https://www.apache.org/dist/flume/1.6.0/apache-flume-1.6.0-bin.tar.gz
4.1。重命名旧的lib文件夹
4.2。将以上链接下载到您的cloudera桌面并执行以下操作:
〜] $ sudo mv / usr / lib / flume-ng / lib / usr / lib / flume-ng / lib_cloudera
〜] $ sudo mv /home/cloudera/Desktop/apache-flume-1.6.0-bin/lib / usr / lib / flume-ng / lib
5. 现在运行Flume Agent Command:
〜] $ flume-ng agent --conf-file /usr/lib/flume-ng/conf/flume.conf --name TwitterAgent -Dflume.root.logger = INFO,console -n TwitterAgent
这应该成功运行。 一切都好。