您的位置:首页 > 其它

zookeper+kafaka配置安装

2017-08-03 15:32 190 查看
http://kafka.apache.org/documentation.html#monitoring

前提是安装好JAVA环境

[align=left]mkdir /data/soft[/align]
[align=left]cd /data/soft[/align]
[align=left]wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz[/align]
[align=left]tar zxf zookeeper-3.4.8.tar.gz[/align]
[align=left]/bin/cp -ap zookeeper-3.4.8 /data/mexue_apps/zookeeper[/align]
[align=left]cd /data/mexue_apps/[/align]

chown -R root:root zookeeper

[align=left]cd /data/mexue_apps/zookeeper/conf[/align]
[align=left]/bin/cp -ap zoo_sample.cfg zoo.cfg[/align]

cat > /data/mexue_apps/zookeeper/conf/zoo.cfg << EOF
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/mexue_apps/zookeeper/data
dataLogDir=/data/mexue_logs/zookeeper
clientPort=2181
server.1=10.45.147.4:3888:4888
server.2=10.45.147.29:3888:4888
server.3=10.25.147.13:3888:4888
#maxClientCnxns=900
#autopurge.snapRetainCount=5
#autopurge.purgeInterval=2
EOF

[align=left]mkdir -p /data/mexue_apps/zookeeper/data[/align]
[align=left]mkdir -p /data/mexue_logs/zookeeper[/align]
[align=left]cd /data/mexue_apps/zookeeper/data[/align]
[align=left]echo 1 > myid[/align]
[align=left]/data/mexue_apps/zookeeper/bin/zkServer.sh start[/align]
[align=left]#/data/mexue_apps/zookeeper/bin/zkServer.sh stop[/align]
[align=left]ps -ef | grep java[/align]
[align=left]#/data/mexue_apps/zookeeper/bin/zkCli.sh -server 10.45.139.29:2181[/align]
[align=left]##客户端登陆[/align]

cd /data/mexue_apps/zookeeper/bin
./zkServer.sh status

##ZooKeeper会自动选出Leader,一旦Leader挂了会选出新的Leader。
##Leader/Follower会通过选举算法进行选择。

##结果中,Mode: leader 代表zookeeper的角色状态,还可以是follower

 

[align=left]cd /data/soft[/align]
[align=left]wget http://mirror.bit.edu.cn/apache/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz[/align]
[align=left]tar zxf kafka_2.11-0.10.0.0.tgz[/align]
[align=left]/bin/cp -ap kafka_2.11-0.10.0.0 /data/mexue_apps/kafka[/align]

[align=left]cd /data/mexue_apps/[/align]
[align=left]chown -R root:root kafka[/align]

[align=left]cd /data/mexue_apps/kafka[/align]

cat > /data/mexue_apps/kafka/config/server.properties << EOF
broker.id=1
port=9092
host.name=10.45.147.4
advertised.host.name=10.45.147.4
advertised.port=9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/mexue_logs/kafka
num.partitions=1
num.recovery.threads.per.data.dir=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=10.45.147.4:2181,10.45.147.29::2181,10.25.147.13:2181
zookeeper.connection.timeout.ms=6000
EOF
#########################################################

broker.id=1
listeners=PLAINTEXT://10.45.147.4:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/mexue_logs/kafka
num.partitions=6
num.recovery.threads.per.data.dir=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=10.45.147.4:2181,10.45.147.29:2181,10.25.147.13:2181
zookeeper.connection.timeout.ms=6000
log.flush.interval.messages=100
log.flush.interval.ms=60000

#########################################################
##kafka的配置文件,生产环境董玉波设置
mkdir -p /data/mexue_logs/kafka
/data/mexue_apps/kafka/bin/kafka-server-start.sh -daemon /data/mexue_apps/kafka/config/server.properties
/data/mexue_apps/kafka/bin/kafka-server-stop.sh /data/mexue_apps/kafka/config/server.properties
#在有的环境中,例如阿里云,存在使用ps -ef | grep kafka出现的结果过长,从而显示不全,导致kafka-server-stop.sh执行失败
#在自己建的内网环境中没有该问题
/data/mexue_apps/kafka/bin/kafka-topics.sh --create --topic mexue  --partitions 2 --replication-factor 2 --zookeeper 10.45.147.4:2181

[align=left]/data/mexue_apps/kafka/bin/kafka-topics.sh --list --zookeeper 10.25.147.13:2181[/align]
[align=left]/data/mexue_apps/kafka/bin/kafka-topics.sh --list --zookeeper 10.25.147.13:2181[/align]
[align=left]/data/mexue_apps/kafka/bin/kafka-topics.sh --describe --zookeeper 10.45.147.4:2181,10.45.147.29:2181,10.25.147.13:2181 --topic kafka-topic[/align]
[align=left]/data/mexue_apps/kafka/bin/kafka-consumer-groups.sh --zookeeper localhost:2181 --list[/align]
[align=left]#查看group信息[/align]
[align=left]/data/mexue_apps/kafka/bin/kafka-consumer-groups.sh --group logstash --describe --zookeeper 127.0.0.1:2181[/align]
[align=left]#查看某个消费者group的详细信息的命令[/align]
[align=left]/data/mexue_apps/kafka/bin/kafka-consumer-groups.sh --list --new-consumer --bootstrap-server 10.45.147.4:9092[/align]
[align=left]#新的查看消费者group的命令[/align]
[align=left]/data/mexue_apps/kafka/bin/kafka-consumer-groups.sh --group mexue-push-topic_consumer --describe --new-consumer --bootstrap-server 10.45.147.4:9092  [/align]
[align=left]#新的查看某个消费者group的详细信息的命令[/align]
[align=left]/data/mexue_apps/kafka/bin/kafka-console-producer.sh --broker-list 10.45.147.29:9092 --topic kafka-topic[/align]
[align=left]/data/mexue_apps/kafka/bin/kafka-console-consumer.sh --zookeeper 10.25.147.13:2181 --from-beginning --topic kafka-topic[/align]
[align=left]/data/mexue_apps/kafka/bin/kafka-console-consumer.sh --zookeeper 10.25.147.13:2181 --from-beginning --topic kafka-topic >> /tmp/1111 &[/align]
[align=left]tailf /tmp/1111[/align]
[align=left]/data/mexue_apps/kafka/bin/kafka-consumer-groups.sh --zookeeper localhost:2181 --list[/align]
[align=left]#可以查看消费者的group信息[/align]
[align=left]/data/mexue_apps/kafka/bin/kafka-consumer-groups.sh --zookeeper localhost:2181 --describe --group console-consumer-63719[/align]
[align=left]#可以查看消费者的某个group的详情,包含topic,partition,current-offset,log-end-iffset,lag[/align]
[align=left]/data/mexue_apps/kafka/bin/kafka-replica-verification.sh --broker-list 192.168.2.83:9092 --topic-white-list mexue[/align]
[align=left]#可以动态检查kafka复制的max lag的复制延迟情况[/align]
[align=left]vim /data/mexue_apps/kafka/bin/kafka-server-start.sh[/align]

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
    export JMX_PORT="9999"
    #export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=$ip"
fi

[align=left]#修改该文件可以设置kafka的最大使用内存,还可以启用kafka的jvm监控[/align]
[align=left]supervisor管理zookeeper[/align]
[align=left]=======================================================================[/align]

由于Zookeeper是快速失败(fail-fast)的,且遇到任何错误情况,进程均会退出

因此,最好能通过监控程序将Zookeeper管理起来,保证Zookeeper退出后能被自动重启

因此一定要将zookeeper用supervisor管理起来

[program:zk]

command=/home/zookeeper/bin/zkServer.sh  start-foreground

 

[program:kafka]

command=/usr/local/kafka02/bin/kafka-server-start.sh  /usr/local/kafka02/config/server.properties

配置zookeeper启动内存

=======================================================================

配置bin目录下的zkServer.sh,使用vim打开,加入参数:

 

 vi zkServer.sh  +30

JVMPARAM="-Xms1024M -Xmx1024M -Xmn512M"

 

加入到141行:

 

vi zkServer.sh  +141

nohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \

-cp "$CLASSPATH" $JVMFLAGS $JVMPARAM $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &

 

使用jmap命令查看:

jmap -head 2204

#2204是zookeeper的进程号

 

从上图可知,已经生效。

 

使用命令:zkCli.sh –server 10.77.20.23:2181 确认客户端能连上。

注意:nohup $JAVA "-Xms1000M -Xmx1000M -Xmn512M -Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" 

不能直接加在nohup命令后面,会提示“初始化堆失败,无法创建虚拟机”


kafka-manager安装

需要JDK8+

tar zxf jdk-8u91-linux-x64.tar.gz

mkdir -p /data/mexue_apps/jdk/

/bin/cp -ap jdk1.8.0_91/* /data/mexue_apps/jdk/

cat > /etc/profile.d/java.sh << 'EOF'
export JAVA_HOME=/data/mexue_apps/jdk
export JRE_HOME=/data/mexue_apps/jdk/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
EOF

source /etc/profile.d/java.sh
java -version
git clone https://github.com/yahoo/kafka-manager

cd kafka-manager/
./sbt clean dist

#此步骤是是编译kafka-manager源码,会下载很多组件,非常费时,建议翻墙

cd /data/soft/kafka-manager/target/universal

#编译好的文件在这个目录

unzip kafka-manager-1.3.1.6.zip

#解压缩这个文件,可以单独保存这个文件,把这个文件放到一个安装好java环境的机器上直接启动,不用每次重新编译

cd kafka-manager-1.3.1.6

vim conf/application.conf

#修改conf/application.conf,把kafka-manager.zkhosts改为自己的zookeeper服务器地址

#这个配置文件可以增加认证,配置该工具的管理功能,能修改或者只查看等

#可以启动多个kafka-manager配置不同级别的权限,使用不同的密码认证

#修改conf/application.conf中的kafka-manager.zkhosts="ip:port"即可,其他行可以删除。

./kafka-manager -h
#查看帮助
nohup ./kafka-manager -Dconfig.file=../conf/application.conf >/dev/null 2>&1 & 
#后台启动,默认http端口是9000,可以修改配置文件里的http.port的值,或者通过命令行参数传递:./kafka-manager -Dhttp.port=9001
#正常来说,play框架应该会自动加载conf/application.conf配置里的内容,但是貌似这个不起作用,要显式指定才行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: