Я новичок в Kafka, используя версию kafka_2.8.0-0.8.1.1
.
После сборки брокеров Kafka и тестирования его производителем и потребителем, которые работают нормально, я решил сделать некоторые тесты производительности для Kafka.
Я нашел Kafka Benchmark путем поиска kafka performance test
и попробовал его выполнить
./bin/kafka-run-class.sh org.apache.kafka.clients.tools.ProducerPerformance test7 50000000 100 -1 acks=1 bootstrap.servers=esv4-hcl198.grid.linkedin.com:9092 buffer.memory=67108864 batch.size=8196
но получил
Error: Could not find or load main class org.apache.kafka.clients.tools.ProducerPerformance
Тогда я нашел другой способ проверить kafka - это команда
./bin/kafka-producer-perf-test.sh --broker-list 192.168.2.11:19092,192.168.2.11:19093,192.168.2.11:19094 --messages 100 --topic j1-soa --threads 1 --message-size 100 --batch-size 100 --compression-codec 1
возникла другая ошибка:
Error: Could not find or load main class kafka.perf.ProducerPerformance
Я искал ошибки. они сказали, что должны выполнить некоторую команду вроде
./sbt update
./sbt package
./sbt assembly-package-dependency
или
./gradlew jar
перед выполнением ./bin/kafka-producer-perf-test.sh
.
Я понимаю, что приведенные выше команды работают только для исходной версии вместо двоичной версии.
Затем я загружаю kafka-0.8.1.1-src.tgz
и пытаюсь выполнить вышеприведенные команды.
Я не знаю, что такое sbt
и gradlew
.
Я просто пытаюсь выполнить над командами.
И я получил ошибку при запуске sbt assembly-package-dependency
[info] Set current project to kafka (in build file:/Users/foxzen/Develop/kafka/)
[error] Not a valid command: assembly-package-dependency
[error] Not a valid project ID: assembly-package-dependency
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: assembly-package-dependency (similar: sbt-dependency)
[error] assembly-package-dependency
[error] ^
Также ошибка для ./gradlew jar
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'kafka-0.8.1.1-src'.
> Could not resolve all dependencies for configuration ':classpath'.
> Could not resolve nl.javadude.gradle.plugins:license-gradle-plugin:0.6.1.
Required by:
org.apache.kafka:kafka-0.8.1.1-src:0.8.1.1
> Could not GET 'http://repo1.maven.org/maven2/nl/javadude/gradle/plugins/license-gradle-plugin/0.6.1/license-gradle-plugin-0.6.1.pom'.
> Connection to http://127.0.0.1:8888 refused
> Could not GET 'http://dl.bintray.com/content/netflixoss/external-gradle-plugins/nl/javadude/gradle/plugins/license-gradle-plugin/0.6.1/license-gradle-plugin-0.6.1.pom'.
> Connection to http://127.0.0.1:8888 refused
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 2.924 secs
Я действительно не знаю, что означает сообщение об ошибке, и не может найти решение.
Как сделать команду ./bin/kafka-producer-perf-test.sh
работать нормально, чтобы я мог проверить производительность Kafka?
РЕДАКТИРОВАТЬ
Это моя ошибка, чтобы вызывать ./gradlew jar
.
У интернет-соединения установлен прокси-сервер до 127.0.0.1:8888
,
Я не могу вспомнить, когда я это сделал...
После удаления настроек прокси-сервера подключения к Интернету. команда ./gradlew jar
работает нормально.
Но я получил еще одну ошибку, снова........
start.time, end.time, compression, message.size, batch.size, total.data.sent.in.MB, MB.sec, total.data.sent.in.nMsg, nMsg.sec
[2015-02-04 10:37:22,936] WARN Property reconnect.interval is not valid (kafka.utils.VerifiableProperties)
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
2015-02-04 10:37:22:821, 2015-02-04 10:37:23:451, 1, 100, 100, 0.01, 0.0151, 100, 158.7302
причина ./bin/kafka-producer-perf-test.sh --broker-list 192.168.2.11:19092,192.168.2.11:19093,192.168.2.11:19094 --messages 100 --topic j1-soa --threads 1 --message-size 100 --batch-size 100 --compression-codec 1
Это означает успех теста производительности?
Но я не получил значимого результата.
Я думаю, что информация об ошибке должна быть
Failed to load class "org.slf4j.impl.StaticLoggerBinder".
Как его решить?
Имя пакета ProducerPerformance
изменено с org.apache.kafka.clients.tools
на org.apache.kafka.tools
.
Итак, вы должны работать:
./bin/kafka-run-class.sh org.apache.kafka.tools.ProducerPerformance test7 50000000 100 -1 acks=1 bootstrap.servers=esv4-hcl198.grid.linkedin.com:9092 buffer.memory=67108864 batch.size=8196
Это изменение сделано в этом фиксации.
С kafka_2.11-0.10.1.1 мне удалось использовать его только с:
./bin/kafka-run-class.sh org.apache.kafka.tools.ProducerPerformance --throughput=1000 --topic=MY_TOPIC --num-records=50000000 --record-size=200 --producer-props bootstrap.servers=YOUR_KAFKA_IP:9092 buffer.memory=67108864 batch.size=64000
Имейте в kafka.tools.ProducerPerformance
также и другой класс с именем kafka.tools.ProducerPerformance
. Но одно выше выглядит лучше