nowwowww

导航

 

centoskafka安装

安装jdk

1、检查jdk版本
java -version
2、检测系统jdk默认安装包
rpm -aq |grep java
3、卸载jdk
 1 卸载命令rpm:
2 [root@localhost ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.242.b08-1.el7.x86_64
3 [root@localhost ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64
4
5 或者
6
7 卸载命令yum:
8 [root@localhost ~]# yum remove *openjdk*
9
10 检查
11 [root@localhost root]$ java -version
12 bash: java: 未找到命令...
13 或者
14 [root@localhost ~]# rpm -qa | grep java
15 python-javapackages-3.4.1-11.el7.noarch
16 tzdata-java-2019c-1.el7.noarch
17 javapackages-tools-3.4.1-11.el7.noarch
4、安装jdk
 1 ########利用Xftp上传从Oracle官网下载的JDK到该目录中:上传后查看是否存在
2 [root@localhost /]# cd downfile
3 [root@localhost downfile]# ll
4 总用量 139760
5 -rw-r--r--. 1 root root 143111803 1014 18:04 jdk-8u261-linux-x64.tar.gz
6
7 ########解压JDK到指定的目录,如果不存在请建立该目录:/usr/lib/jvm
8 [root@localhost downfile]# tar -xvf jdk-8u261-linux-x64.tar.gz -C /usr/lib/jvm
9
10 ########进入目录检查是否有文件
11 [root@localhost downfile]# cd /usr/lib/jvm
12 [root@localhost downfile]# ll
13 总用量 0
14 drwxr-xr-x. 3 root  root   17 9月  30 12:25 java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64
15 drwxr-xr-x. 8 10143 10143 273 6月  18 14:59 jdk1.8.0_261
配置环境变量
vim /etc/profile

在文本的最后一行粘贴如下:注意JAVA_HOME=/usr/java/jdk1.8.0_144 就是你自己的目录

#java environment
export JAVA_HOME=/lib/java/jdk1.8.0_221
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

让刚刚设置的环境变量生效

source /etc/profile

安装kafka

1、下载
2、百度网盘
kafka_2.12-1.1.0 [https://pan.baidu.com/s/1tsEPnnVwAHxHwLS7mUtZFQ]
提取码:53j4

zookeeper-3.4.12 [https://pan.baidu.com/s/1VJLMIMaQjx5X0cT5Snsq8g]
提取码:244b
3、安装zookeeper
解压
tar -zxvf zookeeper-3.4.14.tar.gz
移动到目标目录下
mv zookeeper-3.4.14/ ../
复制conf下的zoo_sample.cfg为zoo.cfg
cp zoo_sample.cfg zoo.cfg
新建一个data目录,作为数据目录
mkdir /lib/zookeeper/data
编辑zoo.cfg文件
dataDir=/lib/zookeeper/data
clientPort=2181
启动
cd /lib/zookeeper/zookeeper/bin
./zkServer.sh start #启动
./zkServer.sh stop #关闭
4、安装kafka
解压
#解压
tar -zvxf kafka_2.12-1.1.0.tgz
#将解压后的文件夹移动到/soft 下
mv kafka_2.12-1.1.0.tgz /soft
#修改文件夹名称
mv kafka_2.12-1.1.0.tgz kafka
修改配置文件配置
vi server.properties
broker.id=0
listeners=PLAINTEXT://192.168.2.133:9092
host.name=192.168.2.133
log.dirs=/lib/kafka/kafka-logs
启动kafka
./kafka-server-start.sh ../config/server.properties
./kafka-server-start.sh ../config/server.properties > /lib/kafka/kafka/logs/kafka.log 2>&1 &
默认服务端口为9092
[root@orderer kafka_2.11-2.2.2]# netstat -tunlp|grep 9092
tcp6       0      0 :::9092                 :::*                    LISTEN      28052/java
创建topic
[root@orderer kafka_2.11-2.2.2]# bin/kafka-topics.sh --zookeeper localhost:2181 --create --replication-factor 1 --partitions 1 --topic demo
Created topic demo.
删除topic
[root@orderer kafka_2.11-2.2.2]# bin/kaftopics.sh --zookeeper localhost:2181 --delete --topic demo
Topic demo is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
查看topic列表
[root@orderer kafka_2.11-2.2.2]# bin/kafka-topics.sh --zookeeper localhost:2181 --list
demo
查看指定topic信息
[root@orderer kafka_2.11-2.2.2]# bin/kafka-topics.sh  --zookeeper localhost:2181 --describe --topic demo
Topic:demo      PartitionCount:1        ReplicationFactor:1     Configs:
Topic: demo     Partition: 0    Leader: 0       Replicas: 0     Isr: 0
启动生产者
[root@orderer kafka_2.11-2.2.2]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic demo
>hello!
启动消费者
[root@orderer kafka_2.11-2.2.2]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic demo
hello!

配置自启

在 /lib/systemd/system/ 目录下创建 zookeeper服务和kafka服务 的配置文件(以上两个文件 根据自己的 jdk 和 kafka 安装目录相应的修改)
# vim zookeeper.service
# vim kafka.service
zookeeper.service 添加内容:
[Unit]
Description=Zookeeper service
After=network.target

[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-0.el7_9.x86_64/bin"
User=root
Group=root
ExecStart=/lib/kafka/kafka/bin/zookeeper-server-start.sh /lib/kafka/kafka/config/zookeeper.properties
ExecStop=/lib/kafka/kafka/bin/zookeeper-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target
kafka.service 添加内容:
[Unit]
Description=Apache Kafka server
After=network.target zookeeper.service

[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-0.el7_9.x86_64/bin"
User=root
Group=root
ExecStart=/lib/kafka/kafka/bin/kafka-server-start.sh /lib/kafka/kafka/config/server.properties
ExecStop=/lib/kafka/kafka/bin/kafka-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target
刷新配置
# systemctl daemon-reload
zookeeper、kafka服务加入开机自启
#systemctl enable zookeeper

#systemctl enable kafka
移除开机自启
#systemctl disable kafka.service
#systemctl disable zookeeper.service
使用systemctl启动/关闭/重启 zookeeper、kafka服务systemctl start/stop/restart zookeeper/kafka

注:启动kafka前必须先启动zookeeper 。

 # systemctl start zookeeper

# systemctl start kafka
查看状态
 # systemctl status zookeeper

# systemctl status kafka

配置SASL

kafka-server-start.sh
if [ $# -lt 1 ];
then
echo "USAGE: $0 [-daemon] server.properties [--override property=value]*"
exit 1
fi
base_dir=$(dirname $0)

if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then
   export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/log4j.properties"
fi

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
   export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi

EXTRA_ARGS=${EXTRA_ARGS-'-name kafkaServer -loggc'}

COMMAND=$1
case $COMMAND in
 -daemon)
   EXTRA_ARGS="-daemon "$EXTRA_ARGS
  shift
  ;;
*)
  ;;
esac

export KAFKA_OPTS="-Djava.security.auth.login.config=/lib/kafka/kafka/config/kafka_server_jaas.conf"

exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"
kafka-console-producer.sh
export KAFKA_OPTS="-Djava.security.auth.login.config=/lib/kafka/kafka/config/kafka_client_jaas.conf"

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
   export KAFKA_HEAP_OPTS="-Xmx512M"
fi
exec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsoleProducer "$@"
kafka-console-consumer.sh
export KAFKA_OPTS="-Djava.security.auth.login.config=/lib/kafka/kafka/config/kafka_client_jaas.conf"

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
   export KAFKA_HEAP_OPTS="-Xmx512M"
fi

exec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsoleConsumer "$@"
server.properties
listeners=SASL_PLAINTEXT://192.168.2.133:9092
host.name=192.168.2.133
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
allow.everyone.if.no.acl.found=true

advertised.listeners=SASL_PLAINTEXT://192.168.2.133:9092
advertised.host.name=192.168.2.133
advertised.port=9092
producer.properties
bootstrap.servers=localhost:9092

compression.type=none

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
consumer.properties
bootstrap.servers=localhost:9092

group.id=test-consumer-group

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
kafka_server_jaas.conf
KafkaServer {
   org.apache.kafka.common.security.plain.PlainLoginModule required
   username="shmashine"
   password="123456"
   user_shmashine="123456"
   user_producer="123456";
};
kafka_client_jass.conf
KafkaServer {
   org.apache.kafka.common.security.plain.PlainLoginModule required
   username="shmashine"
   password="123456"
   user_shmashine="123456"
   user_producer="123456";
};
posted on 2021-11-29 17:02  nowwowww  阅读(361)  评论(0)    收藏  举报