通过sparkstreaming分析url的数据
spark version 1.6.2
scala verson 2.10.6
此代码参考官方例子----
自定义接收器
import java.io.BufferedReader import org.apache.spark.Logging
import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming.receiver.Receiver import scala.io.{BufferedSource, Source} /**
* 自定义接收器
* @param URL url
*/
class UrlReceiver(URL:String) extends Receiver[String](StorageLevel.MEMORY_AND_DISK) with Logging{
override def onStart(): Unit = {
new Thread("创建一个线程"){
override def run(){
url()
}
}.start() } override def onStop(): Unit = { } private def url(): Unit ={
var input:String=null
try{
val fileContent: BufferedSource = Source.fromURL(URL, "utf-8")
val reader: BufferedReader = fileContent.bufferedReader()
input=reader.readLine()
while (!isStopped && input!=null){ //推送数据给streaming
store(input)
input=reader.readLine()
} reader.close()
logInfo("停止接受")
restart("尝试再次连接~~~~~~~~~~~~~")
}catch {
case t:Throwable =>{
restart(s"接受数据错误${t}")
}
case s=>{
restart(s"连接出现错误${URL}:${s}")
}
}
}
}
写streming程序
import org.apache.spark.streaming.dstream.ReceiverInputDStream
import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.{SparkConf, SparkContext} object urlstreaming { def main(args: Array[String]): Unit = {
new SparkConf
SparkContext
//此处以百度为例
val URL= "https://www.baidu.com"
val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName(s"${this.getClass.getSimpleName}").set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
.set("spark.streaming.stopGracefullyOnShutdown", "true") val ssc = new StreamingContext(conf,Seconds(3)) val value: ReceiverInputDStream[String] = ssc.receiverStream(new UrlReceiver(URL)) value.foreachRDD(
rdd=>{ rdd.foreach(println)
}
) ssc.start()
ssc.awaitTermination() }
}
通过sparkstreaming分析url的数据的更多相关文章
- HTTP 请求方式: GET和POST的比较当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。
什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议. HTTP在客户端和服务器之间以request ...
- MapReduce分析明星微博数据
互联网时代的到来,使得名人的形象变得更加鲜活,也拉近了明星和粉丝之间的距离.歌星.影星.体育明星.作家等名人通过互联网能够轻易实现和粉丝的互动,赚钱也变得前所未有的简单.同时,互联网的飞速发展本身也造 ...
- C#分析URL参数获取参数和值得对应列表
原文: C#分析URL参数获取参数和值得对应列表 /// <summary> /// 分析url链接,返回参数集合 /// </summary> /// <param n ...
- Hadoop权威指南:从Hadoop URL读取数据
[TOC] Hadoop权威指南:从Hadoop URL读取数据 使用java.net.URL对象从Hadoop文件系统读取文件 实现类似linux中cat命令的程序 文件名 HDFSCat.java ...
- region URL请求数据
#region URL请求数据 /// <summary> /// HTTP POST方式请求数据 /// </summary> /// <param name=&quo ...
- C#分析URL参数获取参数和值得对应列表(一)
C#操作Url参数 http://www.cnblogs.com/RobotH/archive/2008/11/17/1335322.html 用 C# 分析 URL 中的参数信息 http://ww ...
- java跨服务器请求url获得数据
在项目中,有时需要通过请求远程服务器上的url获取数据(前提是程序所在服务器可以和url服务器ping成功), 用java在后台发送请求时,用到了java.net.URL, java.net.URLC ...
- SEO需要分析哪些网站数据
http://www.wocaoseo.com/thread-227-1-1.html 一.网站的基本数据 1.网站流量详情(ip.pv.需要看pv与ip的比) 2.网站的跳出率(可以看出一个网站的用 ...
- 大数据离线分析平台 JavaSDK数据收集引擎编写
JavaSDK设计规则 JavaSDK提供两个事件触发方法,分别为onChargeSuccess和onChargeRefund.我们在java sdk中通过一个单独的线程来发送线程数据,这样可以减少对 ...
随机推荐
- js中的scrollTop、offsetTop、clientTop
scrollHeight:获取对象可滚动的高度. scrollWidth:获取对象可滚动的宽度. scrollTop:获取对象最顶端与对象可见区域最顶端的距离. scrollLeft:获取对象左边界与 ...
- 什么是DirectShow?
DirectShow是微软出的用于流媒体开发的开发包.开发语言是C++,没提供C#接口的调用方式.
- Scintilla开源库使用指南
http://www.cnblogs.com/superanyi/archive/2011/04/07/2008636.html http://download.csdn.net/detail/den ...
- 桌面程序阻止Windows关机(使用Message.Result取得DefWindowProc API函数的返回值,非常重要)
Windows Client 客户端在关机,不外乎两种情况: 1. 没有处理 Windows 关机消息: 2.处理了关机消息,但是超时了: 上面这两种情况,都会让Windows 关不了机.在现实生活中 ...
- asp.net mvc实现微信外H5支付方法
一.微信支付方式介绍 微信提供了各种支付方式,试用于各种不同的支付场景,主要有如下几种: 1.刷卡支付 刷卡支付是用户展示微信钱包内的“刷卡条码/二维码”给商户系统扫描后直接完成支付的模式.主要应用线 ...
- 简单了解HashCode()
在java的内部类中,计算HashCode通常使用 code = 元素* 31 + 下一个元素 以String为例 public int hashCode() { int h = hash; if ( ...
- Linux系统下解锁Oracle的Scott用户
1).在Oracle用户下面输入命令:lsnrctl status查看监听是否开启,如果未开启则需要开启监听,输入命令:lsnrctl start; 2).如果没有设置监听的话需要先建立一个监听,然后 ...
- 微服务之服务注册与发现--Consul(转载)
http://blog.csdn.net/buxiaoxia/article/details/69788114 https://www.cnblogs.com/xiaohanlin/p/8016803 ...
- SHELL 中条件语句的运用 if for 条件测试语句
if条件测试语句可以让脚本根据实际情况自动执行相应的命令.从技术角度来讲,if语句分为单分支结构.双分支结构.多分支结构:其复杂度随着灵活度一起逐级上升. if条件语句的单分支结构由if.then.f ...
- Linux下编译PHP常见错误及解决方法
1.configure: error: xml2-config not found. Please check your libxml2 installation.yum install libxml ...