windows 使用 hadoop3.2.2+flume1.9.0+kafka2.13-3.2

解压至D盘 D:/bigdata

image.png

创建data目录


data目录
  • 在data目录 创建所需 namenode 和 datanode 文件夹


    数据目录
  • 覆盖bin目录 ,注意解压路径为 winutils-master\hadoop-3.2.2 中的bin文件夹


    image.png

使用对应的版本即 winutils 中的3.2.2文件夹中的bin目录

修改文件地址 D:\bigdata\hadoop-3.2.2\etc\hadoop\core-site.xml


   
       fs.default.name
       hdfs://localhost:9000
   

修改文件 D:\bigdata\hadoop-3.2.2\etc\hadoop\mapred-site.xml


    
       mapreduce.framework.name
       yarn
   

修改 D:\bigdata\hadoop-3.2.2\etc\hadoop\hdfs-site.xml 文件


  
      dfs.permissions.enabled
      false
  
      
    
        dfs.replication
        1
    
     
     dfs.permissions 
     false 
  
   
       dfs.namenode.name.dir
       D:\bigdata\hadoop-3.2.2\data\namenode
   

    
       dfs.datanode.data.dir
       D:\bigdata\hadoop-3.2.2\data\datanode
   

修改 D:\bigdata\hadoop-3.2.2\etc\hadoop\yarn-site.xml


    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
   
   
        yarn.nodemanager.auxservices.mapreduce.shuffle.class  
        org.apache.hadoop.mapred.ShuffleHandler
   

确保环境变量中设置了 JAVA_HOME 且路径中没有空格

image.png

打开cmd或者powershell 进入到 D:\bigdata\hadoop-3.2.2\bin 目录执行命令

.\hdfs namenode -format
image.png

执行命令

..\sbin\start-all.cmd

弹出这样四个命令窗口


image.png

访问hadoop

http://localhost:8088/ 集群状态管理

http://localhost:9870/ 文件管理页面

image.png

安装Flume

下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.9.0/apache-flume-1.9.0-bin.tar.gz

  • 解压到 D:\bigdata


    image.png
  • 新建系统变量FLUME_HOME


    image.png
  • 编辑Path 追加如下图内容


    image.png
  • 在D:\bigdata\apache-flume-1.9.0-bin\conf 目录新增 flume-file.conf文件,内容如下
a1.sources = r1
a1.channels = c1
a1.sinks = test1


a1.sources.r1.type = netcat
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 6666

a1.sources.r1.channels = c1

# a1.sinks.test1.type = logger

a1.sinks.test1.channel = c1

a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 1000


a1.sinks.test1.type = hdfs
a1.sinks.test1.hdfs.path=hdfs://localhost:9000/mytest/%Y%m%d/%H/%{type}
#上传⽂件的前缀
a1.sinks.test1.hdfs.filePrefix = test1-
#上传⽂件的后缀
a1.sinks.test1.hdfs.fileSuffix = .log
#写 sequence ⽂件的格式。包含:Text, Writable(默认)
a1.sinks.test1.hdfs.writeFormat = TEXT
#间隔多长将临时⽂件滚动成最终⽬标⽂件,单位:秒,如果设置成0,则表⽰不根据时间来滚动⽂件
a1.sinks.test1.hdfs.rollInterval = 0
#当临时⽂件达到 1024bytes=1KB  生产环境设置为 134217728  128M
a1.sinks.test1.hdfs.rollSize = 128000000
#是否使⽤当地时间
a1.sinks.test1.hdfs.useLocalTimeStamp = true
#当 events 数据达到该数量时候,将临时⽂件滚动成⽬标⽂件,如果设置成0,则表⽰不根据events数据来滚动⽂件
a1.sinks.test1.hdfs.rollCount = 0
#⽂件格式,包括:SequenceFile, DataStream,CompressedStre,当使⽤DataStream时候,⽂件不会被压缩,不需要设置hdfs.codeC;当使⽤CompressedStream时候,必须设置⼀个正确的hdfs.codeC值;
a1.sinks.test1.hdfs.fileType = DataStream

运行flume

cd D:\bigdata\apache-flume-1.9.0-bin\conf

flume-ng agent --conf ./conf --conf-file ./flume-file.conf --name a1 -property flume.root.logger=INFO,console

如果往下的步骤遇到如下错误 删除 cd D:\bigdata\apache-flume-1.9.0-bin\lib下的guava-11.0.2.jar 包即可


image.png

重新打开命令窗口,使用telnet 测试

telnet localhost 6666

输入 ctrl+]  

回车

模拟发送数据


image.png

输入内容即可上传日志到 hdfs了

image.png

如果看不到日志,窗口停留在 Flume 启动窗口,可以使用 ctrl+c 强制将内存中的日志信息发送到hdfs

Kafka安装

D:\bigdata 创建两个文件夹 kafka-log 和 zkdata

image.png

需要修改两个文件


image.png
  • 打开zookeeper.properties 修改dataDir如下
    image.png
  • 打开server.properties 修改两处
image.png

进入到 文件夹D:\bigdata\kafka_2.13-3.2
按住shift+鼠标右键,打开命令窗口,重复执行4次(需要打开四个窗口)

image.png

第一个窗口启动zookeeper

.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties

第二个窗口启动kafka (注意顺序不能乱,kafka 依赖于zookeeper)

.\bin\windows\kafka-server-start.bat .\config\server.properties

第三个窗口启动消息生产者

.\bin\windows\kafka-console-producer.bat --broker-list localhost:11000 --topic mytopic

注意端口号要和server.properties 文件中配置的端口号一致

image.png

第四个窗口启动消息消费者

.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:11000 --topic mytopic

在第三个窗口输数据后,在第四个窗口查看效果


image.png

搭配Flume做日志采集

D:\bigdata\apache-flume-1.9.0-bin\conf新建一个文件 x2010-kafka.conf
日志采集配置如下

a1.sources = r1
a1.channels = c1
a1.sinks = k1


a1.sources.r1.type = netcat 
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 10002
a1.sources.r1.channels = c1

# a1.sinks.test1.type = logger


a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100


# kafka
a1.sinks.k1.channel = c1
a1.sinks.k1.type =  org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.topic = mytopic
a1.sinks.k1.brokerList = localhost:11000
a1.sinks.k1.kafka.flumeBatchSize = 2
a1.sinks.k1.kafka.producer.acks = 1

启动采集窗口

flume-ng agent --conf ./conf --conf-file ./x2010-kafka.conf --name a1 -property flume.root.logger=INFO,console

使用telnet模拟发送数据

telnet localhost 10002
crtl+] 回车
再回车

发送数据就可以看到效果了


image.png

image.png

你可能感兴趣的:(windows 使用 hadoop3.2.2+flume1.9.0+kafka2.13-3.2)