kafka和flume伪分布式安装
一、上传并解压压缩包(不是root带上sudo 并且按要求输入密码)
Kafka和flume的安装包同理

1.1 进入解压路径/usr/local然后ll发现解压包所属用户和组为root,需修改为个人账户
chown和chgrp

1.2创建一个名为kafka的文件夹,然后将解压的kafka移动进去(注意sudo)

二、修改kafka的配置文件
2.1首先创建本地数据存放的目录:
mkdir /usr/local/kafka/kafka_2.12-2.4.1/data

注意看创建文件所在的文件夹位置
修改config下的server.properties

注意看每一步所在位置
60行左右

自己再加一个(注意看注释)

三、修改zookeeper配置
3.1首先创建本地数据存放的目录:
mkdir /usr/local/kafka/kafka_2.12-2.4.1/zookeeper

vim config/zookeeper.properties
主要修改如下配置:16行左右

配置环境变量etc/profile

刷新环境变量
四、启动zookeeper
启动Kafka服务必须先启动Zookeeper服务,
使用如下命令后台启动自带的Zookeeper:
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties (注意看运行命令所在的目录,因为有daemon选项,所以是后台运行,如果没有加这个选项,需再开一个终端,因为zookeeper的启动就会一直挂在这儿)

五、启动kafka
注意使用-daemon后台启动Kafka服务:
bin/kafka-server-start.sh -daemon config/server.properties
六、查看进程 jps

七、验证
7.1创建一个名为testTopic的主题(由于只有一个Kafka服务,
创建主题时指定副本和分区都是1个)
kafka-topics.sh --create --topic testTopic --replication-factor 1 --partitions 1 --zookeeper localhost:2181 (注意是在bin目录下运行)

7.2查看刚创建的主题
kafka-topics.sh --list --zookeeper localhost:2181

7.3使用producer生产者发送消息
注意使用上面配置的host.name连接,
而且Kafka服务端口号默认为9092,
否则有可能无法连接成功:
kafka-console-producer.sh --broker-list 192.168.17.12:9092 --sync --topic testTopic (红色为你自己的ip)

然后输入要发送的消息:
"hello wrold"
7.4使用consumer消费者查看刚才发送的消息
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning (注意需要新开一个窗口来执行该命令,不是把前一条命令ctrl + c结束)

八、安装flume
8.1重命名apache-flume-1.9.0-bin为flume

8.2进入/etc/profile/修改环境变量
添加以下内容:
export FLUME_HOME=/usr/local/flume
export PATH=$PATH:$FLUME_HOME/bin

刷新环境变量
8.3进入路径/usr/local/flume/conf
复制一份flume-env.sh.template文件并将其改为flume-env.sh
修改flume-env.sh配置文件 (22行左右)


8.4查看flume版本:
flume-ng version 有结果就说明安装成功了

进入路径/usr/local/flume/conf创建agent.conf文件,添加以下内容:

a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

8.5启动flume
flume-ng agent --conf conf --conf-file /usr/local/flume/conf/agent.conf --name a1 -Dflume.root.logger=INFO,console

启动成功

8.6验证
采用telnet测试
linux需要先安装telnet命令:yum install -y telnet

新开窗口输入:telnet localhost 44444

随便打点东西,去另一个终端查看


另:此处有个解决连接,并非错误

原因是因为telnet不支持ipv6的监听方式,所以使用了127.0.0.1的ipv4监听方式,如果不想看见报错的话,可以这样写,效果一样的

