写在前面

  • 因为本地电脑没装flume,nginx各种。所以之前写Streaming程序的时候,都是打包了放到集群上跑。就算我在程序代码里不停地logger,调试起来也hin不方便。
  • 于是本地写了两个程序,在intellj调试。
  • 主要就是包括两个程序:
    • 一个是GenerateChar.scala用来向某个指定端口,使用socket发消息;
    • 另一个就是要测试的Streaming程序了。

GenerateChar

package com.wttttt.spark

import java.io.PrintWriter
import java.net.ServerSocket /**
* Created with IntelliJ IDEA.
* Description:
* Author: wttttt
* Github: https://github.com/wttttt-wang/hadoop_inaction
* Date: 2017-05-19
* Time: 10:19
*/
object GenerateChar {
def main(args: Array[String]) {
val listener = new ServerSocket(9998)
while(true){
val socket = listener.accept()
new Thread(){
override def run() = {
println("Got client connected from :"+ socket.getInetAddress)
val out = new PrintWriter(socket.getOutputStream,true)
while(true){
Thread.sleep(3000)
val context1 = "GET /result.html?Input=test1 HTTP/1.1"
println(context1)
val context2 = "GET /result.html?Input=test2 HTTP/1.1"
println(context2)
val context3 = "GET /result.html?Input=test3 HTTP/1.1"
println(context3)
out.write(context1 + '\n' + context2 + "\n" + context2 + "\n" + context3 + "\n" + context3 + "\n" + context3 + "\n" + context3 + "\n")
out.flush()
}
socket.close()
}
}.start()
}
}
}
  • 要发送的数据就根据需要自定义。

streaming

  • streaming这边就是要调试的程序啦。

    • 一方面是,Mater设置成local[x],x > 1,因为这里需要receivers来接收数据。
    • 另一方面,设置一个本地checkpoint目录
      val conf = new SparkConf()
      .setMaster("local[2]")
      .setAppName("LocalTest")
      // WARN StreamingContext: spark.master should be set as local[n], n > 1 in local mode if you have receivers to get data,
      // otherwise Spark jobs will not get resources to process the received data.
      val sc = new StreamingContext(conf, Milliseconds(5000))
      sc.checkpoint("flumeCheckpoint/")
      val messages = ssc.socketTextStream("localhost", 9998)
  • 测试的时候就各种打log,做输出啦,hin方便哒

<Spark Streaming><本地调试>的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. JS实现继承的6种方式

    使用pretotype,call实现完美继承 父类: fuction Animal(name){     this.name=name||"Animal";     this.sl ...

  2. PHP const关键字

    常量是一个简单的标识符.在脚本执行期间该值不能改变(除了所谓的魔术常量,他们其实不是常量).常量默认大小写敏感.通常常量标识符总是大写的. 可以用define()函数来定义常量.在php5.3.0以后 ...

  3. Gifts by the List CodeForces - 681D (思维)

    大意: 给定森林, 要求构造一个表, 满足对于每个$x$, 表中第一次出现的$x$的祖先(包括$x$)是$a_x$. 刚开始还想着直接暴力分块优化一下连边, 最后按拓扑序输出... 实际上可以发现$a ...

  4. 牛客寒假算法基础集训营6 I-wzoi

    题目链接 分析:这个题本质上可以看成是一个括号匹配题,因为当出现00和11的时候,毫无疑问是前一天看题,后一天写题,这样可以得到最大的得分10 将全部00和11删掉后,就是交替出现的01串了 代码如下 ...

  5. rancher2.x添加node的坑。

    启动rancher server后,添加一台新节点为k8s的节点.设置如下 ps:worker:k8s的agent端 control:k8s的第二个master etcd:第二个etcd 坑1:节点上 ...

  6. python-flask-路由匹配源码分析

    @app.route('/') def hello_world(): return 'Hello World!' 第1步: class Flask(_PackageBoundObject): def ...

  7. QQ企业邮箱接口

    我推荐的这篇文章很好:http://wenku.baidu.com/link?url=KQIMyrECGb8GS_0fag4PRG64M8Z7wOLbsU1f3BhydXAyYJDC2JMHEuVcy ...

  8. Nginx配置——区分PC或手机访问不同域名

    新官网上线,但在手机上访问新官网的体验很差,要求在手机上访问新官网时访问旧官网,可以通过修改Nginx配置来实现自动跳转.首先是新官网的Nginx配置文件加个跳转判断,通过user-agent判断来源 ...

  9. [codechef July Challenge 2017] IPC Trainers

    IPCTRAIN: 训练营教练题目描述本次印度编程训练营(Indian Programming Camp,IPC)共请到了 N 名教练.训练营的日程安排有 M 天,每天最多上一节课.第 i 名教练在第 ...

  10. new 和 delete

    new 和 delete 众所周知,C中的malloc和free是用来申请和释放内存的,相应的C++中也有对应的申请和释放内存的操作,即是new和delete,但是C++的new和delete比C中的 ...