大数据入门(20)kafka安装配置

版权声明: https://blog.csdn.net/u011518709/article/details/83928855

kafka基本概念
1、kafka是一个分布式的消息缓存系统
2、kafka集群中的服务器都叫做broker
3、kafka有两类客户端,一类叫producer(消息生产者),一类叫做consumer(消息消费者),客户端和broker服务器之间采用tcp协议连接
4、kafka中不同业务系统的消息可以通过topic进行区分,而且每一个消息topic都会被分区,以分担消息读写的负载
5、每一个分区都可以有多个副本,以防止数据的丢失
6、某一个分区中的数据如果需要更新,都必须通过该分区所有副本中的leader来更新
7、消费者可以分组,比如有两个消费者组A和B,共同消费一个topic:order_info,A和B所消费的消息不会重复
比如 order_info 中有100个消息,每个消息有一个id,编号从0-99,那么,如果A组消费0-49号,B组就消费50-99号
8、消费者在具体消费某个topic中的消息时,可以指定起始偏移量

###############单节点启动######################

1、解压安装

2、启动zookeeper
使用自带的zookeeper,启动:bin/zookeeper-server-start.sh conf/zookeeper.properties
    启动报错:UseCompressedOops找不到
        修改文件:kafka-run-class.sh中,
         KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true"
         删掉 -XX:+UseCompressedOops
3、启动kafka
    bin/kafka-server-start.sh config/server.properties
4、create a topic
    bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test_name
    bin/kafka-topics.sh --list --zookeeper localhost:2181
5、send some message (生产者)
    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_name
    xiaomi
    iphone
    huawei
6、start a consumer(消费者)
    #接收所有的消息
    bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic test_name
    #只接收consumer启动后发送的消息
    bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test_name
    
############################集群安装(3台机子)########################################
集群安装
1、解压
2、配置zookeeper集群,修改config/server.properties
    broker.id=0
    port=9092
    log.dir=/home/admin/app/kafka_2.10-0.8.1.1/tmplogs/kafka-logs
    zookeeper.connect=weekend05:2181,weekend06:2181,weekend07:2181
    
    注意:broker.id必须唯一,port,log.dir可以不修改
3、copy到其他服务中
        scp -r kafka_2.10-0.8.1.1 weekend06:/home/admin/app/
        scp -r kafka_2.10-0.8.1.1 weekend07:/home/admin/app/    
    
    weekend06 config/server.properties
        broker.id=1        
        log.dir=/home/admin/app/kafka_2.10-0.8.1.1/tmplogs/kafka-logs-1
    weekend07 config/server.properties
        broker.id=2        
        log.dir=/home/admin/app/kafka_2.10-0.8.1.1/tmplogs/kafka-logs-2
    
4、将zookeeper集群启动
        
5、在每一台节点上启动broker
    
    前台启动:启动后,关闭连接,则服务关闭,操作其他需要克隆会话,比较繁琐
        命令:bin/kafka-server-start.sh config/server.properties
            
    后台启动:显示进程,继续可以操作其他,比较方便
        命令:bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &
            1>/dev/null 标准输出定向到一个文件中,2>&1,错误输出是标准输出打印出来,最后一个& 后台运行
            
6、在kafka集群中创建一个topic
    bin/kafka-topics.sh --create --zookeeper weekend05:2181 --replication-factor 3 --partitions 1 --topic order

7、查看话题
    bin/kafka-topics.sh --list --zookeeper weekend05:2181
    
8、用一个producer向某一个topic中写入消息
    bin/kafka-console-producer.sh --broker-list weekend05:9092 --topic order

9、用一个comsumer从某一个topic中读取信息
    bin/kafka-console-consumer.sh --zookeeper weekend05:2181 --from-beginning --topic order

10、查看一个topic的分区及副本状态信息
    bin/kafka-topics.sh --describe --zookeeper weekend05:2181 --topic order
    

猜你喜欢

转载自blog.csdn.net/u011518709/article/details/83928855