FLUME EXCEPTION

时间:2017-02-01 07:29:28

标签: twitter flume

我正在尝试配置水槽并且正在关注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步,这是最后一步。

1 个答案:

答案 0 :(得分:0)

请查找CDH 5.12 Flume Twitter设置:

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

这应该成功运行。 一切都好。