iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SparkStreaming两种方式连接Flume
  • 572
分享到

SparkStreaming两种方式连接Flume

SparkStreaming两种方式连接Flume 2020-08-06 04:08:25 572人浏览 才女
摘要

sparkStreaming 连接Flume的两种方式分别为:Push(推)和Pull(拉)的方式实现,以Spark Streaming的角度来看,Push方式属于推送(由Flume向Spark推送数据);而Pull属于拉取(Spark

SparkStreaming两种方式连接Flume

sparkStreaming 连接Flume的两种方式分别为:Push(推)和Pull(拉)的方式实现,以Spark Streaming的角度来看,Push方式属于推送(由Flume向Spark推送数据);而Pull属于拉取(Spark 拉取 Flume的输出数据);

 Flume向SparkStreaming推送数据没有研究明白,有大佬指点一下吗?

万分感谢!

1.Spark拉取Flume数据:

导入两个jar包到flume/lib下

 否则抛出这两个异常:

org.apache.flume.FlumeException: Unable to load sink type: org.apache.spark.streaming.flume.sink.SparkSink, class: org.apache.spark.streaming.flume.sink.SparkSink

java.lang.IllegalStateException: begin() called when transaction is OPEN!

2.编写flume 工作文件:

a1.sources = r1
a1.sinks = k1
a1.channels = c1
# source
a1.sources.r1.type=spooldir
a1.sources.r1.spoolDir=/home/zhuzhu/apps/flumeSpooding
a1.sources.r1.fileHeader=true

# Describe the sink
a1.sinks.k1.type = org.apache.spark.streaming.flume.sink.SparkSink
# 当前主机端口
a1.sinks.k1.hostname = 192.168.137.88
a1.sinks.k1.port = 9999

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

3.编写SparkStreaming程序:

package day02

import java.net.InetSocketAddress

import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}
import org.apache.spark.streaming.flume.{FlumeUtils, SparkFlumeEvent}
import org.apache.spark.{SparkConf, SparkContext}


object StreamingFlume {

  def main(args: Array[String]): Unit = {
    //1.创建SparkConf对象
    val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("StreamingFlume")
    //2.创建SparkContext对象
    val sc = new SparkContext(conf)
    //设置日志输出格式,只打印异常日志,在这里设置没有用
    //sc.setLogLevel("WARN")
    //3.创建StreamingContext,Seconds(5):轮询机制,多久执行一次
    val ssc = new StreamingContext(sc, Seconds(5))
    //4.定义一个flume集合,可以接受多个flume数据,多个用,隔开需要new
    val addresses = Seq(new InetSocketAddress("127.0.0.1", 5555))
    //5.获取flume中的数据,
    val stream: ReceiverInputDStream[SparkFlumeEvent] = FlumeUtils.createPollingStream(ssc, addresses, StorageLevel.MEMORY_AND_DISK_2)
    // 6.截取flume数据:{"header":xxxxx   "body":xxxxxx}
    val lineDstream: DStream[String] = stream.map(x => new String(x.event.getBody.array()))
    lineDstream.flatMap(x=>x.split(" ")).map(x=>(x,1)).reduceByKey(_+_).print()
    ssc.start()
    ssc.awaitTermination()
  }
}

 4。开启flume监控文件,开启SparkStreaming程序:

向指定目录上传文件

 

 

 

您可能感兴趣的文档:

--结束END--

本文标题: SparkStreaming两种方式连接Flume

本文链接: https://www.lsjlt.com/news/8179.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • spring data 连接mongodb的两种方式
    什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库。 由 C++ 语言编写,是一个开源数据库系统。 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 M...
    99+
    2024-04-02
  • 详解python连接telnet和ssh的两种方式
    目录Telnet 连接方式ssh连接方式Telnet 连接方式 #!/usr/bin/env python # coding=utf-8 import time import...
    99+
    2024-04-02
  • python连接telnet和ssh的两种方式是什么
    本篇内容主要讲解“python连接telnet和ssh的两种方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python连接telnet和ssh的两种方式是什么”吧!Telnet 连接方...
    99+
    2023-06-25
  • Java连接服务器的两种方式SFTP和FTP
    目录区别FtpUtilSFTPUtil问题区别 FTP是一种文件传输协议,一般是为了方便数据共享的。包括一个FTP服务器和多个FTP客户端。FTP客户端通过FTP协议在服务器上下载资...
    99+
    2023-02-25
    Java SFTP连接服务器 Java FTP连接服务器
  • python连接clickhouse数据库的两种方式小结
    目录python连接clickhouse数据库主要针对clickhouse_driver的使用进行简要介绍python将数据写入clickhousepython连接clickhous...
    99+
    2024-04-02
  • 数据库连接超时java处理的两种方式
    目录数据库连接超时java处理的方式1.使用socket的方式设置连接超时(通用)2.使用DriverManager.setLoginTimeout()方法来设置超时java的远程数...
    99+
    2023-05-15
    数据库连接超时 java处理超时 java数据库连接超时
  • php接口加密的两种方式
    在我们做项目的时候免不了使用接口请求数据,或者通过接口给其他应用提供数据,但是在网络请求中我们的数据是可以别一些软件抓取到的,这样我们的数据就会别泄露或者被人篡改,在我们实际项目中应该怎么处理呢? 下...
    99+
    2023-09-24
    php 开发语言
  • Python3连接MySQL数据库的两种方式——mysql-connector与pymysql模块
    Python3连接MySQL数据库的两种方式——mysql-connector与pymysql模块 在Python中,我们可以使用多种不同的方法来操作MySQL数据库。在本文中,我们将介绍两种最常用的...
    99+
    2023-08-31
    数据库 mysql sql python
  • VMware网络连接的3种方式
    1.bridged(桥接模式) 在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系...
    99+
    2023-01-31
    方式 网络 VMware
  • adb连接设备的几种方式
    1、USB连接 前提条件: 一台已安装adb环境的电脑一台手机、一根可传输数据的线(数据线,非充电线) 连接步骤: 将手机上的开发者选项打开(一般是:设置 > 关于手机,然后点按版本号七次)进入开发者...
    99+
    2023-09-01
    android
  • iSCSI存储的3种连接方式
    我们分析了iSCSI存储的系统结构,下面来看iSCSI是如何与服务器、工作站等主机设备来连接的,也就是我们如何建立一个iSCSI网络存储系统。 iSCSI设备的主机接口一般默认都是IP接口,可以直接与以太网络交换机和iSCSI交换机连接,形...
    99+
    2023-01-31
    方式 iSCSI
  • Java连接服务器的两种方式SFTP和FTP有什么区别
    这篇文章主要介绍了Java连接服务器的两种方式SFTP和FTP有什么区别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java连接服务器的两种方式SFTP和FTP有什么区别文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-07-05
  • golang中接口对象的转型两种方式
    接口对象的转型有两种方式: 1. 方式一:instance,ok:=接口对象.(实际类型)   如果该接口对象是对应的实际类型,那么instance就是转型之后对象,ok的值为tru...
    99+
    2024-04-02
  • oracle表连接的方式有哪几种
    内连接(INNER JOIN):返回两个表中符合连接条件的记录。 外连接(OUTER JOIN):包括左外连接(LEFT J...
    99+
    2024-04-09
    oracle
  • 3、vagrant的3种网络连接方式
    1. 简介vagrant提供了3种网络连接方式,分别是forwarded ports,host-only networking和bridged networking2. forwarded portsconfig.vm.network "f...
    99+
    2023-01-31
    方式 网络 vagrant
  • java连接zookeeper的3种方式小结
    目录java连接zookeeper3种方式1、使用zookeeper原始api2、使用ZkClient客户端连接,这种连接比较简单3、使用curator连接Java集成zookeep...
    99+
    2024-04-02
  • Java调用CXF WebService接口的两种方式实例
    方式一:使用CXF提供的工具生成客户端代码。1. 在项目中添加CXF的依赖。2. 使用CXF提供的命令行工具生成客户端代码,命令如下...
    99+
    2023-09-16
    java
  • 华为二面:adb 连接 Android 手机的两种方式,看完你就懂了
     前言 随着现在移动端技术的突飞猛进,导致现在市场上,APP 应用数不胜数,那对于测试工程师而言,对于 APP 的测试,那基本就是一个必修课了。 今天,我就来给大家介绍一下,adb 连接 Android 手机的两种方式 USB 线连接手机 ...
    99+
    2023-09-05
    android adb 功能测试 自动化测试 面试
  • 两个云服务器之间的连接方式
    两个云服务器之间的连接方式可以根据云服务提供商的不同而有所不同。以下是一些常见的云服务器配置和连接方式: 公共云(Public Cloud) 公共云提供商通常会提供两种类型的服务器:集群服务器和分布式服务器。其中,集群服务器负责处理大...
    99+
    2023-10-26
    两个 方式 服务器
  • postMessage的两种使用方式
    postMessage是一个用于跨窗口通信的方法,它有两种使用方式:1. 发送消息给指定窗口:可以使用postMessage方法将消...
    99+
    2023-08-15
    postMessage
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作