虚拟机基础常用操作命令(2)——软件安装、环境搭建
作者:互联网
虚拟机软件安装、环境搭建
1、 wget: 未找到命令
[root@localhost ~]# yum -y install wget
安装完毕即可。
上面的方法使用的前提是你的linux 系统是已经连接外网,可以ping一下百度主页,如果通,就是连接外网了,不是的话,就要先去打开网络链接(这个百度一下就很多),打开网络链接后,重启linux系统这样才真的可以上外网,因为wget是通过外网进行下载的,然后运行yum install wget,这样就可以.
2、在线安装下载JDK
命令:
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm
参考地址:
https://www.cnblogs.com/justuntil/p/11665540.html
3、创建目录
mkdir /data1/ehserver/env/kafka_2.11-2.2.0/logs/kafka-logs-1 -pv
解压缩:
tar -zxf kafka_2.11-2.0.0.tgz -C /data1/ehserver/env
4、 查看虚拟机中现存在的jdk版本:
输入指令:rpm -qa|grep jdk
5、安装下载ZK
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0.tar.gz
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
参考地址:
https://www.cnblogs.com/expiator/p/9853378.html
6、zk 启动找不到或无法加载主类 org.apache.zookeeper.ZooKeeperMain
https://www.cnblogs.com/zhoading/p/11593972.html
7、安装kafka
参考上篇kafka安装
8、测试demo
创建一个topic:
对于linux或者macos操作系统,执行kafka的shell文件
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
对于windows操作系统用户,请执行对应的bin/windows目录下的bat文件
bin/windows/kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
启动producer:
对于linux或者macos操作系统,执行kafka的shell文件
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
对于windows操作系统,执行kafka的bat文件
bin/windows/kafka-console-producer.bat --broker-list localhost:9092 --topic test
启动consumer:
对于linux或者macos操作系统,执行kafka的shell命令
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test
对于windows操作系统,执行kafka的bat命令
bin/windows/kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test
9、出现异常:
ERROR Error when sending message to topic test with key: null, value: 14 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.CorruptRecordException: This message has failed its CRC checksum, exceeds the valid size, has a null key for a compacted topic, or is otherwise corrupt.
原因:kafka 生成者创建需要一个key值
启动producer修改为:bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test \--property parse.key=true \--property key.separator=,
发送格式为:key,value
这样在消费端可以收到value.
10、安装Redis
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
参考资料:
https://blog.csdn.net/slss01/article/details/88920845
https://blog.csdn.net/weixin_44899258/article/details/93976868
启动: ./bin/redis-server /data1/ehserver/env/redis-4.0.8/etc/redis.conf
11、-bash: mkde: 未找到命令
原因是因为未安装gcc
解决方法:
yum install gcc-c++ -y
12、redis 启动日志 输出
https://www.cnblogs.com/hzb462606/p/9117193.html
logfile "/data1/ehserver/env/redis-4.0.8/logs/nohup.out"
/data1/ehserver/env/redis-4.0.8/bin/redis-server
/data1/ehserver/env/redis-4.0.8/etc/redis.conf
10、 tomcat
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.8/bin/apache-tomcat-9.0.8.tar.gz
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.100/bin/apache-tomcat-7.0.100.tar.gz
# docker run -d -p 58080:8080 -v /root/webapps/:/opt/tomcat/webapps/ --name mytomcat_1 mytomcat:1.0 /root/run.sh
11、kafka配置文件介绍(server.properties)
server.properties(broker.id和listeners每个节点都不相同)
#是否允许删除topic,默认false不能手动删除
delete.topic.enable=true
#当前机器在集群中的唯一标识,和zookeeper的myid性质一样
broker.id=0
#当前kafka服务侦听的地址和端口,端口默认是9092
listeners = PLAINTEXT://192.168.100.21:9092
#这个是borker进行网络处理的线程数
num.network.threads=3
#这个是borker进行I/O处理的线程数
num.io.threads=8
#发送缓冲区buffer大小,数据不是一下子就发送的,先会存储到缓冲区到达一定的大小后在发送,能提高性能
socket.send.buffer.bytes=102400
#kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘
socket.receive.buffer.bytes=102400
#这个参数是向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小
socket.request.max.bytes=104857600
#消息日志存放的路径
log.dirs=/opt/module/kafka_2.11-1.1.0/logs
#默认的分区数,一个topic默认1个分区数
num.partitions=1
#每个数据目录用来日志恢复的线程数目
num.recovery.threads.per.data.dir=1
#默认消息的最大持久化时间,168小时,7天
log.retention.hours=168
#这个参数是:因为kafka的消息是以追加的形式落地到文件,当超过这个值的时候,kafka会新起一个文件
log.segment.bytes=1073741824
#每隔300000毫秒去检查上面配置的log失效时间
log.retention.check.interval.ms=300000
#是否启用log压缩,一般不用启用,启用的话可以提高性能
log.cleaner.enable=false
#设置zookeeper的连接端口
zookeeper.connect=node21:2181,node22:2181,node23:2181
#设置zookeeper的连接超时时间
zookeeper.connection.timeout.ms=6000
12、kafka启动多个broker
如果想在同一台服务器启动多个broker可以复制多份config/server.propoerties文件
这里我复制了三份server.properties文件,这样我可以启动三个broker。在启动broker之前,需要先修改server.properties文件中的三个属性,broker.id、listeners和log.dirs,保证这三个属性不同。
bin/kafka-server-start.sh --daemon config/server1.properties
bin/kafka-server-start.sh --daemon config/server2.properties
bin/kafka-server-start.sh --daemon config/server3.properties
13、分发安装包到其他节点
[admin@node21 module]$ scp -r kafka_2.11-1.1.0 admin@node22:/opt/module/
[admin@node21 module]$ scp -r kafka_2.11-1.1.0 admin@node23:/opt/module/
修改node22,node23节点kafka配置文件conf/server.properties里面的broker.id和listeners的值。
14、 添加环境变量
[admin@node21 module]$ vi /etc/profile
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka_2.11-1.1.0
export PATH=$PATH:$KAFKA_HOME/bin
保存使其立即生效
[admin@node21 module]$ source /etc/profile
3.1 首先启动zookeeper集群
所有zookeeper节点都需要执行
[admin@node21 ~]$ zkServer.sh start
3.2 后台启动Kafka集群服务
所有Kafka节点都需要执行
[admin@node21 kafka_2.11-1.1.0]$ bin/kafka-server-start.sh config/server.properties &
15、kafka命令行操作
kafka-broker-list:node21:9092,node22:9092,node23:9092
zookeeper.connect-list: node21:2181,node22:2181,node23:2181
在node21节点上创建一个新的Topic
[admin@node21 kafka_2.11-1.1.0]$ bin/kafka-topics.sh --create --zookeeper node21:2181,node22:2181,node23:2181 --replication-factor 3 --partitions 3 --topic TestTopic
选项说明:
--topic 定义topic名
--replication-factor 定义副本数
--partitions 定义分区数
查看topic副本信息
[admin@node21 kafka_2.11-1.1.0]$ bin/kafka-topics.sh --describe --zookeeper node21:2181,node22:2181,node23:2181 --topic TestTopic
查看已经创建的topic信息
[admin@node21 kafka_2.11-1.1.0]$ kafka-topics.sh --list --zookeeper node21:2181,node22:2181,node23:2181
在node21上生产消息
[admin@node21 kafka_2.11-1.1.0]$ bin/kafka-console-producer.sh --broker-list node21:9092,node22:9092,node23:9092 --topic TestTopic
在node22上消费消息(旧命令操作)
[admin@node22 kafka_2.11-1.1.0]$ kafka-console-consumer.sh --zookeeper node21:2181,node22:2181,node23:2181 --from-beginning --topic TestTopic
--from-beginning:会把TestTopic主题中以往所有的数据都读取出来。根据业务场景选择是否增加该配置。
新消费者命令
[admin@node22 kafka_2.11-1.1.0]$ kafka-console-consumer.sh --bootstrap-server node21:9092,node22:9092,node23:9092 --from-beginning --topic TestTopic
删除topic
[admin@node22 kafka_2.11-1.1.0]$ bin/kafka-topics.sh --zookeeper node21:2181,node22:2181,node23:2181 --delete --topic TestTopic
需要server.properties中设置delete.topic.enable=true否则只是标记删除或者直接重启。
16、 停止Kafka服务
[admin@node21 kafka_2.11-1.1.0]$ bin/kafka-server-stop.sh stop
编写kafka启动脚本
[admin@node21 kafka_2.11-1.1.0]$ cd bin
[admin@node21 bin]$ vi start-kafka.sh
#!/bin/bash
nohup /opt/module/kafka_2.11-1.1.0/bin/kafka-server-start.sh /opt/module/kafka_2.11-1.1.0/config/server.properties >/opt/module/kafka_2.11-1.1.0/logs/kafka.log 2>&1 &
赋权限给脚本:chmod +x start-kafka.sh
17、-bash: unzip: 未找到命令
Install 安装
[root@dev-redis agent]# yum install -y unzip zip
这里介绍的是在虚拟机上搭建Kafka的开发环境过程中遇到的一些问题,在此做一下总计记录。仅自己学习
每天努力一点,每天都在进步。
标签:bin,操作命令,虚拟机,zookeeper,node21,kafka,topic,2181,搭建 来源: https://blog.csdn.net/dingjianmin/article/details/104826313