更新时间:2024-08-03 GMT+08:00
调测Kafka应用
前提条件
- 客户端本地能登录MRS服务的弹性云服务器,登录方式详见“弹性云服务器《用户指南》”中“入门 > 登录弹性云服务器”的SSH登录方式。
- 样例工程在已经通过Maven编译。
示例:Maven工程打包到Linux下运行样例
- 执行mvn package生成jar包,在工程目录target目录下获取,比如:kafka-examples-1.6.0.jar。
- 执行mvn dependency:copy-dependencies -DoutputDirectory=kafka-examples-lib -DincludeScope=compile,导出kafka样例工程依赖的jar包,比如放到kafka-examples-lib目录。
- 在第一步指定的目录下生成一个Jar包和一个存放lib的文件夹。
- 将刚才生成的依赖库文件夹(此处为“kafka-examples-lib”)拷贝到MRS服务的某个Linux环境上任意目录下,例如:“/opt/example”,然后将刚才生成的jar包拷贝到“/opt/example/kafka-examples-lib”目录下。
- 将样例工程的conf目录拷贝到与依赖库文件夹同级目录下,即“/opt/example”目录下,并创建logs目录,用于记录jar包运行日志。
- 切换到root用户,将拷贝进去的conf,kafka-examples-lib,logs目录修改为omm:wheel用户组所有,执行以下命令切换用户。
chown -R omm:wheel /opt/example/*
- 切换为omm用户,进入拷贝目录下“/opt/example”,首先确保conf目录下和依赖库文件目录下的所有文件,对当前用户均具有可读权限;同时保证已安装jdk并已设置java相关环境变量,然后执行命令,如java -cp .:/opt/example/conf:/opt/example/kafka-examples-lib/* com.huawei.bigdata.kafka.example.Producer,运行样例工程。
su - omm
chmod 750 /opt/example
cd /opt/example
java -cp .:/opt/example/conf:/opt/example/kafka-examples-lib/* com.huawei.bigdata.kafka.example.Producer
运行结果观察方式
样例程序工程jar包运行结果可以在logs目录下的client.log观察,默认状态下的log4j.properties没有将运行状态输出,若需要观察程序运行的信息,需将log4j.properties按如下方式配置:
# Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. kafka.logs.dir=logs log4j.rootLogger=INFO, stdout, kafkaAppender log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n log4j.logger.kafka=INFO, kafkaAppender log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd-HH log4j.appender.kafkaAppender.File=${kafka.logs.dir}/client.log log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n # Turn on all our debugging info #log4j.logger.kafka.producer.async.DefaultEventHandler=DEBUG, kafkaAppender #log4j.logger.kafka.client.ClientUtils=DEBUG, kafkaAppender #log4j.logger.kafka.perf=DEBUG, kafkaAppender #log4j.logger.kafka.perf.ProducerPerformance$ProducerThread=DEBUG, kafkaAppender #log4j.logger.org.I0Itec.zkclient.ZkClient=DEBUG
将kafkaAppender添加到rootLogger,并将日志级别调整到需要观察的级别。
父主题: Kafka开发指南