Flume安装与使用(仅为课堂任务)

Flume安装与使用(仅为课堂任务)

随着大数据时代的到来,数据科学与大数据技术已经成为了一个热门领域。作为一名学习了三年数据科学与大数据技术的学生,我在这个领域中遇到了很多挑战,也掌握了很多知识和技术。
在这篇博客中,我将分享虚拟机的Flume安装与使用

安装与使用

安装

在linux系统下打开火狐浏览器搜索

https://www.apache.org/dyn/closer.lua/flume/1.9.0/apache-flume-1.9.0-bin.tar.gz 进入官网点击红色框下载。在这里插入图片描述
点击红色框的链接后会跳出以下界面,一共有两种方法,后面分别有对其的介绍。在这里插入图片描述

下载方法一

点击打开,通过这个选项,会下载到归档管理器里,不是/home/Hadoop/下载/中,且无法复制粘贴。可以直接将文件提取到/home/Hadoop/下载/目录下。

在终端输入sudo nautilus命令进行文件的复制,因为复制到/usr/local/需要权限,直接简单的进行复制会提示‘没有再次文件夹中创建归档文件的权限’。由于之后许多的步骤要用到/usr/local/这个目录,所以要将文件移动到该目录下。但通过该方法的不需要进行解压,因为提取的文件是已经解压好的。

在这里插入图片描述

将文件名称修改为flume,简化文件名方便之后的操作,操作命令如下:

cd /usr/local
sudo mv ./apache-flume-1.9.0-bin ./flume

下载方法二

由于本书全部采用hadoop用户登录Linux系统,所以点击保存文这个选项的话,apache-flume-1.9.0-bin.tar.gz文件会被保存到“/home/Hadoop/下载/“目录下。该方法比较简单,打开一个终端,直接输入代码,移动解压到/usr/local/ 目录下。改名操作同方法一一致。

cd ~
cd sudo tar -zxvf /home/hadoop/下载apache-flume-1.9.0-bin.tar.gz -C /usr/local

其中,要注意的是,将apache-flume-1.9.0-bin.tar.gz文件解压到/usr/local/目录下时,命令中一定要加上-C,否则会出现归档找不到的错误。

配置环境变量

使用vim编辑器打开~/.bashrc文件,命令如下:

sudo vim ~/.bashrc

在该文件开头加入以下代码,原来已有的环境变量可以保留:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64;
export FLUME_HOME=/usr/local/flume
export FLUME_CONF_DIR=$FLUME_HOME/conf
export PATH=$PATH:$FLUME_HOME/bin

在这里插入图片描述执行语句使修改文件生效。

source ~/.bashrc

修改配置文件flume-env.sh,命令如下:

cd /usr/local/flume/conf
sudo mv flume-env.sh.template flume-env.sh
sudo vim flume-env.sh

需要注意的是,不同版本的flume安装包的文件flume-env.sh位置可能不同,有的直接在/usr/local/flume目录下,有的在/usr/local/flume/conf下,要根据自己下载版本的位置写路径。

在flume-env.sh文件开头加入如下语句:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64;

在这里插入图片描述
输入以下代码,出现下图内容则说明启动成功。

cd /usr/local/flume
./bin/flume-ng version

flume启动成功截图

**本文使用的虚拟机是已经安装过HBase,根据上述方法进行配置会出现‘找不到或无法加载主类org.apache.flume.tools.GetJavaProperty’。**可以通过修改hbase-env.sh文件来解决该问题,首先使用vim编辑器打开hbase-env.sh文件,输入代码命令如下:

cd /usr/local/hbase/conf
sudo vim hbase-env.sh

在这里插入图片描述

一个案例

使用Flume接受来自AvroSource的信息

AvroSource可以发送一个给定的文件给 Flume,Flume 接收到以后可以进行相应的处理,例如显示到屏幕上。

  1. 创建Agent配置文件

使用如下命令在/usr/local/flume/conf目录下创建一个新文件avro.conf:

cd /usr/local/flume
sudo vim ./conf/avro.conf

在avro.conf文件中写入以下内容:

#配置一个agent,agent的名称可以自定义(如a1)
#指定agent的sources(如s1)、sinks(如k1)、channels(如c1)
#分别指定agent的sources,sinks,channels的名称 名称可以自定义
a1.sources = s1
a1.sinks = k1
a1.channels = c1

#配置source
a1.sources.s1.channels = c1
a1.sources.s1.type = avro
a1.sources.s1.bind = 0.0.0.0
a1.sources.s1.port = 4141

#配置channels
a1.channels.c1.type = memory
a1.channels.c1.capacity  =  1000
a1.channels.c1.transactionCapacity  =  100

#配置sinks
a1.sinks.k1.channel = c1
a1.sinks.k1.type = logger
#为sources和sinks绑定channels
a1.sources.s1.channels = c1

注意,该配置文件的内容可能会更新,所以要根据去官网(‘下载专区’)搜新的配置文件信息,用旧的信息配置,运行后面内容是会报错的。

2)启动Flume Agent al
执行如下命令启动日志控制台:

/usr/local/flume/bin/flume-ng agent -c . -f /usr/local/flume/conf/avro.conf -n a1 -Dflume.root.logger=INFO,console

出现以下截图说明启动成功:
Flume Agent al启动成功示意图
3)创建制定文件
打开另一个Linux终端,使用如下命令在/usr/local/flume目录下新建一个文件log.11,并在文件中加入一行内容‘I love flume’;

cd /usr/local/flume
sudo sh -c 'echo "I love flume" > /usr/local/flume/log.11'

在终端建立log.11文件并写入内容
4)再打开另一个终端,执行下面命令:

cd /usr/local/flume
./bin/flume-ng avro-client --conf conf -H localhost -p 4141 -F /usr/local/flume/log.11

在日志窗口显示成功示意图
注意,该命令行如果出现./logs/flume.log (没有那个文件或目录)这个报错,如下图所示。

报错示意图
首先查看自己的路径有无问题,不能排除是因为版本的问题导致文件放置位置的不同,排除这个问题还有这个报错,就是在/usr/local/目录下没有授权的原因,无法搜索本地计算机的绝对路径,需要在root和普通用户之间进行切换。输入代码如下:

sudo passwd root#重新设置root密码,否则容易报su认证失败的错
su
chown hadoop 文件名

授权输入后不再报错。

\centering
\includegraphics[scale=0.65]{figures/p20.png}
\label{fig:label12}
\caption{授权输入代码成功后界面}

执行完后,AvroSource就向Flume发送了一个文件,这是切换回之前的日志控制台所在的终端窗口,就可以看到Flume已接收到信息。

可能出现报错的原因

(1)运行文件路径有问题
(2)当前运行文件的地址没有授权
(3)配置文件信息过时

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值