Flume的搭建及安装 上传HDFS网页当中 连接被拒绝……Trying ::1...telnet: connect to address ::1: Connection refused

目录

一、Flume

1.Flume的特点:

2、Flume能做什么?

3、Flume的采集与存储

4、Flume的三大组件

5.flume官网连接 中文版

二、安装Flume

(一)上传解压软件包

(二)配置环境变量

三、测试Flume

(一)编辑Flume配置文件并启动

1.创建一个新的配置文件

2.编辑配置文件

3.启动配置文件

4.安装Telnet服务

5.问题解决:

(1)问题:

(2)原因分析:

(3)解决方法:

四、编写数据迁移

1.新建文件夹

2.创建配置文件

3.启动集群并查看进程

 4.创建data文件目录,放入数据文件

 5.写python文件

1)要求:

2)运行python文件

3)查看生成文件

6.运行配置文件,上传网页

        1)运行配置文件:

2)查看是否运行成功

​编辑

 3)查看HDFS网页是否有文件

​编辑4)尝试下载文件

5)解决问题

        a)问题:

        b)原因分析:

        c)解决问题:

        6)下载成功

五、文件处理


一、Flume

1.Flume的特点:

        是一个分布式、可靠、和高可用的海量日志采集汇聚和传输的系统。Flume针对特殊场景也具备良好的自定义扩展能力,因此,flume可以适用于大部分的日常数据采集场景

2、Flume能做什么?

        Flume 是可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据源中集中起来存储的工具/服务。

3、Flume的采集与存储

        Flume可以采集文件,文件夹、kafka、mysql数据库等各种形式源数据,又可以将采集到的数据(下沉sink)输出到HDFS、hbase、hive、kafka等众多外部存储系统中。

4、Flume的三大组件

  • Source:读取数据
  • Channel:接收存储数据;写的方式:内容、文件
  • Sink:读取存储数据;写的方式:打印到控制台、HDFS

5.flume官网连接 中文版

https://flume.liyifeng.org/#exec-source


二、安装Flume

(一)上传解压软件包

  • 上传软件包:
cd /opt/softwares

  •   解压软件包:

        tar 命令 软件包名 -C 解压的路径

tar -xf apache-flume-1.9.0-bin.tar.gz -C /opt/modules/

  • 设置软连接:(环境变量可以直接使用)
​ ln -s apache-flume-1.9.0-bin/ flume

 

(二)配置环境变量

  • 路径:
vi /etc/profile

  • 配置环境变量:
export FLUME_HOME=/opt/modules/flume
export PATH=$FLUME_HOME/bin:$PATH

  • 更新环境变量:
source /etc/profile

  • 更改配置文件:
 cp flume-env.sh.template flume-env.sh

        复制文件去更改,方便我们出错了可以找到原来的文件 

  • 添加 java 环境变量:
export JAVA_HOME=/opt/modules/jdk1.8.0_241

  • 查看版本:
flume-ng version

三、测试Flume

(一)编辑Flume配置文件并启动

1.创建一个新的配置文件

vi nc-flume.conf

2.编辑配置文件

分别选择合适的组件 source、channel、sink

这里测试选择的是netcat 、内存、logger作为组件

#sink的别名 
a1.sinks = k1

# 配置source的相关信息 数据源的 netcat 一个主机的一个端口的数据 指定主机 端口
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# 配置channel-内存
a1.channels.c1.type =memory

# 配置sink-控制台打印
a1.sinks.k1.type=logger

# 绑定 source channel sink的对应关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

3.启动配置文件

 flume-ng agent -n a1 --conf-file nc-flume.conf -Dflume.root.logger=INFO,console

4.安装Telnet服务

另起节点!

yum install telnet -y

安装成功:

尝试连接

 telnet localhost 44444

连接被拒绝!

5.问题解决:

(1)问题:
  • Trying ::1...
    telnet: connect to address ::1: Connection refused
    Trying 127.0.0.1...
    telnet: connect to address 127.0.0.1: Connection refused
(2)原因分析:

         这是连接被拒接了,找不到端口

(3)解决方法:

        检查配置文件:!

这里发现配置错了

正确的:

# source的别名
a1.sources = r1
# channel的别名
a1.channels = c1
#sink的别名
a1.sinks = k1

# 配置source的相关信息 数据源的 netcat 一个主机的一个端口的数据 指定主机 端口
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# 配置channel-内存
a1.channels.c1.type =memory

# 配置sink-控制台打印
a1.sinks.k1.type=logger

# 绑定 source channel sink的对应关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

修改后:

再次启动配置文件:

 连接成功!!!这个很容易出现问题!!

四、编写数据迁移

尝试编写数据上传到Hdfs网页当中!

1.新建文件夹

2.创建配置文件

  • 采用exec、file、hdfs组件去配置 从而上传文件到网页当中
  • 指定生成文件的名字以及路径
#别名
a1.sources = r1
a1.channels = c1
a1.sinks = k1

#编辑sources
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /opt/data/students_info.txt

# 编辑 channels
a1.channels.c1.type = file
a1.channels.c1.checkpointDir = /opt/modules/flume/channels_checkpoints_file/checkpoint
a1.channels.c1.dataDirs = /opt/modules/flume/channels_check_file/data


#编辑sinks
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d
a1.sinks.k1.hdfs.filePrefix = user-
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 1
a1.sinks.k1.hdfs.roundUnit = minute
a1.sinks.k1.hdfs.rollInterval = 0
a1.sinks.k1.hdfs.rollSize = 0
a1.sinks.k1.hdfs.rollCount = 0
a1.sinks.k1.hdfs.useLocalTimeStamp = true
a1.sinks.k1.hdfs.fileType = DataStream

#编辑通道
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

3.启动集群并查看进程

 4.创建data文件目录,放入数据文件

mkdir data

 5.写python文件

1)要求:

  • 姓名为3个字且随机 姓名由1,2,3组成(每个字段19个字)
  • 性别为男或者女
  • 学号为3位(最小001,最大100)
  • 年龄15-22岁
  • 成绩有四个科目,最小60分,满分100分 (总成绩四个科目加起来)
  • 写入日志文件
#!/usr/bin/python
# coding=UTF-8
import random
import time

# 姓名
nameArray1 = ["赵", "钱", "孙", "李", "周", "武", "郑", "王", "邓", "马", "杨", "韩", "苏", "江", "蒋", "钟", "刘",
              "陈", "方", "曾"]
nameArray2 = ["明", "和", "建", "超", "洪", "空", "郑", "和", "九", "克", "向", "开", "会", "树", "佳", "普", "鹏",
              "家", "欧", "飞"]
nameArray3 = ["慧", "科", "军", "学", "区", "非", "心", "新", "美", "布", "丽", "风", "平", "高", "楼", "机", "表",
              "泥", "若", "俄"]

# 性别
sexArr = ["男", "女"]


# 定时(* * * * */1每秒1次)发送文件到students_info.txt文件中
def log():
    name1 = nameArray1[random.randint(0, 19)]
    name2 = nameArray2[random.randint(0, 19)]
    name3 = nameArray3[random.randint(0, 19)]
    name = name1 + name2 + name3
    # # 学号
    # student_id = str(random.randint(0, 100))

    # 生成3位数的学号,从001开始,最大为100
    student_id = str(random.randint(1, 100)).zfill(3)

    # 年龄 (15-22)
    age = random.randint(15, 22)
    sex = sexArr[random.randint(0, 1)]
    # 成绩
    chinese_score = random.randint(60, 100)
    math_score = random.randint(60, 100)
    english_score = random.randint(60, 100)
    computer_score = random.randint(60, 100)

    total_score = chinese_score + math_score + english_score + computer_score
    info = "{},{},{},{},{},{},{},{}".format(student_id, name, sex, chinese_score, math_score, english_score,
                                            computer_score, total_score)
    # info = f"{student_id},{name},{sex},{chinese_score},{math_score},{english_score},{computer_score},{total_score}"
    print(info)

    # 时间写入日志文件
    with open('students_info.txt', 'a+') as student_log:
        student_log.writelines(info)
        student_log.writelines("\n")


while True:
    log()
    time.sleep(1)  # 定时1s看一下

2)运行python文件

python student.py

3)查看生成文件

6.运行配置文件,上传网页

        1)运行配置文件:

flume-ng agent -n a1 --conf-file 文件名 +打印到控制台(-Dflume.root.loggger=INFO,console)

flume-ng agent -n a1 --conf-file student-score_exec-file-hdfs.conf -Dflume.root.logger=INFO,console

2)查看是否运行成功

 3)查看HDFS网页是否有文件

ip地址:9870

4)尝试下载文件

  • 查看是否与虚拟机中的文件一致
  • 点击下载

  • 下载不了 

5)解决问题

        a)问题:

                下载不了文件

        b)原因分析:

                可能是防火墙,映射的问题

        c)解决问题:
  •   查看防火墙状态:
systemctl status firewalld.service

已关闭

  • 找到Windows的映射文件,设置映射
C:\Windows\System32\drivers\etc

因为这里面的文件不能更改,要拖到外面去更改

用记事本打开

添加映射

192.168.58.3 hadoop01
192.168.58.4 hadoop02
192.168.58.5 hadoop03

再把它移动回去

        6)下载成功

五、文件处理

可以对这个文件进行图表分析以及后续的hive进行操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值