我为实现SinkConnector的kafka connect创建了一个插件,我使用gradle jar任务将其打包到jar中:
document.addEventListener("DOMContentLoaded", function() {
var
example = document.getElementById('example1'),
hot1;
hot1 = new Handsontable(example, {
data: [
['', '', '', ''],
[1, 2, 3, '=SUM(A2:C2)'],
[1, 2, 3],
],
width: 584,
height: 320,
rowHeaders: true,
formulas: true,
colHeaders: true,
columns: [1, 2, 3, 4],
columnSummary: function () {
var summary = [];
for (var i = 0; i < 4; i++) {
summary.push({
ranges: [[1, 2]],
destinationRow: 0,
destinationColumn: i,
type: 'sum',
forceNumeric: true,
sourceColumn: i
});
}
return summary;
}
});
});
我将它复制到文件夹中的kafka集群中,然后设置CLASSPATH =我的jar所在的位置。 然后我执行kafka脚本来启动独立连接,它给我一个错误,说我的课程无法找到:
{{1}}
知道为什么不拿起我的罐子?
谢谢
================================
编辑:Kakfa Connect版本10.2.1,根据脚本,类路径计算如下:CLASSPATH =&#34; $ CLASSPATH&#34;:&#34; $ KAFKA_HOME / libs / *&#34;
答案 0 :(得分:1)
您可以检查.jar文件以确保该类存在。使用Scala作为JVM shell:
// Or Maybe try $CLASSPATH with the full classpath that you are using.
scala -classpath path-to-jar.jar
// If class is not loaded, this will trigger an error.
classOf[mypackage.SplunkSinkConnector]
仅供参考,我正在这样做,使用自定义.jar插件,通过CLASSPATH环境变量加载Kafka Connect。
UPDATE :这是我的插件的build.gradle
文件。 IMO,这是构建具有一些简单依赖关系的Java .jar的最简单方法。我使用gradle jar
构建了jar,它将在./build/libs/(project-name).jar
创建:
apply plugin: 'java'
apply plugin: 'idea'
sourceCompatibility = 1.8
repositories {
mavenLocal()
mavenCentral()
maven { url "http://packages.confluent.io/maven/" }
}
configurations {
all*.exclude group: 'org.slf4j', module: 'slf4j-log4j12'
all*.exclude group: 'log4j'
}
dependencies {
compile 'io.confluent:kafka-connect-storage-partitioner:3.2.1'
compile 'org.apache.kafka:connect-api:0.10.2.1'
testCompile 'junit:junit:4.+'
}
idea {
project {
languageLevel = '1.8'
}
}