• 寒假学习报告15


    实验 6  Spark Streaming 编程初级实践 

    一、实验目的
    (1)通过实验学习日志采集工具 Flume 的安装和使用方法; (2)掌握采用 Flume 作为 Spark Streaming 数据源的编程方法。
    二、实验平台
    操作系统: Ubuntu16.04 Spark 版本:2.1.0 Flume 版本:1.7.0
    三、实验内容和要求
    1.安装 Flume
    Flume 是 Cloudera 提供的一个分布式、可靠、可用的系统,它能够将不同数据源的海量 日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。Flume 的 核心是把数据从数据源收集过来,再送到目的地。请到 Flume 官网下载 Flume1.7.0 安装文 件,下载地址如下: http://www.apache.org/dyn/closer.lua/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz 或者也可以直接到本教程官网的“ 下 载 专 区 ” 中的“ 软件” 目 录 中 下 载 apache-flume-1.7.0-bin.tar.gz。 下载后,把 Flume1.7.0 安装到 Linux 系统的“/usr/local/flume”目录下,具体安装和使 用方法可以参考教程官网的“实验指南”栏目中的“日志采集工具 Flume 的安装与使用方法”。 

    ⑴解压安装包

    cd ~/ 下载
    sudo tar -zxvf apache-flume-1.7.0-bin.tar.gz -C /usr/local 
    cd /usr/local 4.sudo mv ./apache-flume-1.7.0-bin ./flume 
    sudo chown -R hadoop:hadoop ./flume 

    ⑵配置环境变量

    sudo vim ~/.bashrc

    然后在首行加入如下代码:

    export JAVA_HOME=/usr/lib/jvm/default-java;
    export FLUME_HOME=/usr/local/flume
    export FLUME_CONF_DIR=$FLUME_HOME/conf4.export PATH=$PATH:$FLUME_HOME/bin 

    使环境变量生效:

    source ~/.bashrc 

    修改 flume-env.sh 配置文件: 

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

    打开 flume-env.sh 文件以后,在文件的最开始位置增加一行内容,用于设置 JAVA_HOME 变量:

    export JAVA_HOME=/usr/lib/jvm/default-java

    ⑶查看 flume 版本信息

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

    系统里安装了 hbase,会出现错误: 找不到或无法加载主类 org.apache.flume.tools.GetJavaProperty

     将 HBASE_CLASSPATH改为 JAVA_CLASSPATH

     然后就好了

    2使用 Avro 数据源测试 Flume
    Avro 可以发送一个给定的文件给 Flume,Avro 源使用 AVRO RPC 机制。请对 Flume 的相关配置文件进行设置,从而可以实现如下功能:在一个终端中新建一个文件 helloworld.txt(里面包含一行文本“Hello World”),在另外一个终端中启动 Flume 以后, 可以把 helloworld.txt 中的文本内容显示出来。

    ⑴agent 配置文件 

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

    ⑵启动 flume agent a1

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

    把这个窗口称为 agent 窗口

    ⑶创建指定文件
    先打开另外一个终端,在/usr/local/flume 下写入一个文件 log.00,内容为 hello,world:

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


    再打开另外一个终端,执行:

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


    可以看到第一个终端(agent 窗口)下的显示,也就是在日志控制台,就会把 log.00 文件的内容打印出来:

     avro source 就执行成功了

    3. 使用 netcat 数据源测试 Flume
    请对 Flume 的相关配置文件进行设置,从而可以实现如下功能:在一个 Linux 终端(这 里称为“Flume 终端”)中,启动 Flume,在另一个终端(这里称为“Telnet 终端”)中, 输入命令“telnet localhost 44444”,然后,在 Telnet 终端中输入任何字符,让这些字符可以 顺利地在 Flume 终端中显示出来。

    ⑴创建 agent 配置文件 

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

    ⑵启动 flume agent (即打开日志控制台):

    /usr/local/flume/bin/flume-ng agent --conf ./conf --conf-file ./conf/example.conf --name a1 -Dflume.root.logger=INFO,console

    再打开一个终端,输入命令:telnet localhost 44444

    telnet localhost 44444

    可以在终端下输入任何字符,第一个终端的日志控制台也会有相应的显示,输入”hello,world”,得出 

     netcatsource 运行成功

    flume只能传递英文和字符,不能用中文。

  • 相关阅读:
    Jmeter 设置中文
    不同JDK版本直接的intern()方法的区别---JDK6 VS JDK6+
    java内存模型中堆和栈的区别
    JVM三大性能调优参数 -Xms -Xmx -Xss的含义
    Class<?>中isAssignableFrom()方法与instanceof关键字
    Lua中ipairs 和 pairs的区别
    Redis主从同步中的repl_backlog_buffer和repl_buffer
    Redis-开启使用AOF日志
    将windows 文件复制到linux上去
    winform集成第三方应用引起灾难性崩溃处理
  • 原文地址:https://www.cnblogs.com/baimafeima/p/12308486.html
Copyright © 2020-2023  润新知