• 寒假学习记录18


    寒假学习记录18

    实验 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 的安装与使用方 法”。

    2. 使用 Avro 数据源测试 Flume

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

    cd /usr/local/flume 
    sudo vim ./conf/avro.conf
    /usr/local/flume/bin/flume-ng agent -c . -f /usr/local/flume/conf/avro.conf -n a1 -Dflume.root.logger=INFO,console 
    /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 
    bin/flume-ng avro-client --conf conf -H localhost -p 4141 -F /usr/local/flume/log.00

    3. 使用 netcat 数据源测试 Flume

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

    cd /usr/local/flume 
    sudo vim ./conf/example.conf 
    /usr/local/flume/bin/flume-ng agent --conf ./conf --conf-file ./conf/example.conf --name a1 -Dflume.root.logger=INFO,console 
    telnet localhost 44444

    4.使用 Flume 作为 Spark Streaming 数据源

     Flume是非常流行的日志采集系统,可以作为Spark Streaming的高级数据源。请把Flume Source 设置为 netcat 类型,从终端上不断给 Flume Source 发送各种消息,Flume 把消息汇集 到 Sink,这里把 Sink 类型设置为 avro,由 Sink 把消息推送给 Spark Streaming,由自己编写 的 Spark Streaming 应用程序对消息进行处理。

    cd /usr/local/flume 
    cd conf 
    vim flume-to-spark.conf 
    .cd /usr/local/spark 2
    ./bin/spark-shell 
    cd /usr/local/spark/jars 
    mkdir flume 
    cd ~ 
    cd /Doenloads
    cp ./spark-streaming-flume_2.11-2.1.0.jar /usr/local/spark/jars/flume 
    cd /usr/local/flume/lib 
    ls 
    cp ./* /usr/local/spark/jars/flume
    cd /usr/local/spark/mycode 
    mkdir flume 
    cd flume 
    mkdir -p src/main/scala 
    cd src/main/scala 
    vim FlumeEventCount.scala 
    .cd /usr/local/spark 
    ./bin/spark-submit --driver-class-path /usr/local/spark/jars/*:/usr/local/spark/jars/flume/* --class "org.apache.spark.examples.streaming.FlumeEventCount" /usr/local/spark/mycode/flume/target/scala-2.11/simpleproject_2.11-1.0.jar localhost 44444 
    .cd /usr/local/flume 
    bin/flume-ng agent --conf ./conf --conf-file ./conf/flume-to-spark.conf --name a1 -Dflume.root.logger=INFO,console 
    telnet localhost 33333 
  • 相关阅读:
    4.19Java.util.Arrays类
    4.19Java数组的拷贝
    Inverse matrix of 4x4 matrix
    自言自语
    病了两天
    当年3ds max盗版光碟上的广告
    头晕的厉害
    复习了一下STL容器的知识
    一个简单的能处理MIPMAP的类
    空间变换代码,相当简洁优美
  • 原文地址:https://www.cnblogs.com/zhoulonghai/p/12300884.html
Copyright © 2020-2023  润新知