最近需要做一个数据采集存储系统,需要将采集到的数据发送到emq中,再转发到kafka,通过监听kafka获取到数据存储到influxdb数据库中,所有的中间件都需要在Linux系统中搭建,由于第一次接触emqx和kafka,只能先用一个空的linux练练手了,由于kafka需要依赖zookeeper,而zookeeper又依赖jdk,所以开始从头安装咯。
1、安装jdk,我选择的是jdk1.8
(1)创建文件夹,选择jdk需要安装在哪个地方,我选择/usr/local下
cd usr/local/
mkdir software/
cd software/
(2)下载jdk,官网由于证书问题wget 不能直接下载,需要加忽略证书和请求头。这里下载的jdk-8u241-linux-x64.tar.gz版本的jdk。(下载不下来的,就去官网下载压缩包后通过rz命令上传到服务器)
yum -y install wget //安装wget
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u241-linux-x64.tar.gz
(3)选择自己安装的文件夹,解压缩
tar -zxvf jdk-8u241-linux-x64.tar.gz
(4)打开/etc/profile文件,配置jdk的环境变量,在文件末尾添加如下:
export JAVA_HOME=/usr/local/software/jdk1.8.0_241 (这个地方是安装的文件路径)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
(5)刷新一下profile配置文件,输入java -version查看jdk版本
source /etc/profile
java -version
(6)出现以下图片所示,就大功告成了!
2、安装zookeeper
(1)在usr/local/文件下,下载zookeeper的压缩包
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
(2)在当前文件夹下解压zookeeper
tar -vzxf apache-zookeeper-3.6.2-bin.tar.gz
(3)赋值zookeeper的配置文件
cp -r zoo_sample.cfg zoo.cfg
(4)在/etc/profile文件中配置环境变量
export ZOOKEEPER_HOME=/usr/local/software/apache-zookeeper-3.6.2-bin
export PATH=$ZOOKEEPER_HOME/bin:$PATH
export PATH
(5)更新配置文件
source /etc/profile
(6)zookeeper的默认端口为2181,需要将端口开放,我这linux的防火墙已经被我关闭了,所有不需要开放端口。如果要开放端口的话需要先安装firewalld。
yum -y install firewalld //安装防火墙工具
firewall-cmd -permanet -zone=public -add-port=2181/tcp //开放2181端口
firewall-cmd --reload //重启防火墙
(7)接下来就开始启动zookeeper服务了,进入zookeeper的bin目录下
cd apache-zookeeper-3.6.2-bin/bin/ //进入bin目录
./zkServer.sh start //启动zookeeper服务
(8)出现如图所示,代表zookeeper安装并启动成功
3、安装kafka
(1)wget命令下载kafka的压缩包(下载过程有点慢,建议去官网通过迅雷下载,再上传到服务器)
wget http://mirrors.hust.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.2.0.tgz
(2)解压到当前的文件夹
tar -zxvf kafka_2.11-2.2.0.tgz
(3)修改kafka的配置文件,更改zookeeper的ip为本机配置的静态ip
cd kafka_2.11-2.2.0/config/
vi server.properties
(4)进入kafka主目录,启动kafka服务,并指定配置文件
./bin/kafka-server-start.sh config/server.properties
(5)出现如下图所示代表启动成功!
(6) kafka的默认端口是9092,如果不关闭防火墙的话,根据上面开放zookeeper端口一样的操作开放kafka的端口。
(7)kafka创建一个名为test的topic,注意刚刚启动的kafka不是后台启动,需要另起页面进行操作,如果直接Ctrl+C的话会直接关闭kafka。
bin/kafka-topics.sh --bootstrap-server 192.168.228.132:9092 --create --topic test --partitions 1 --replication-factor 1 //:9092前的地址是linux系统本机配置的静态地址
(8)查看刚刚创建的topic
bin/kafka-topics.sh --bootstrap-server 192.168.228.132:9092 --list //ip地址同上
(9)向kafka中的topic生产和发送信息
bin/kafka-console-producer.sh --broker-list 192.168.228.132:9092 --topic test //往topic中生产消息
bin/kafka-console-consumer.sh --bootstrap-server 192.168.228.132:9092 --topic test --from-beginning //从topic中消费消息
(10)关闭kafka,也可用Ctrl+C直接关闭,也可通过命令
bin/kafka-server-stop.sh config/server.properties