写在前面

  • 因为本地电脑没装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方便哒

最新文章

  1. 在.NET Core 里使用 BouncyCastle 的DES加密算法
  2. javascript动画系列第二篇——磁性吸附
  3. Android零碎知识
  4. [C#] Control.Invoke方法和跨线程访问控件(转载)
  5. μC/OS-Ⅲ中的临界段代码
  6. ldap + kerberos 整合
  7. AC日记——逆波兰表达式 openjudge 3.3 1696
  8. Java 实现多线程的三种方式
  9. windows下vagrant使用及工作环境配置
  10. iOS 重力感应 学习1 陀螺仪 水平仪 指南针
  11. POJ 3069 Saruman's Army(贪心)
  12. 搭建LNMP发布ecshop系统及压测启用opcache缓存与否的情况
  13. [置顶] 一步一步学android之事件篇——下拉列表事件
  14. 轻量级代码生成器-OnlyCoder
  15. git本地项目关联远程仓库
  16. Tuxedo 汇总
  17. Windows端口开放
  18. iOS中自动登录的设计
  19. django配置https
  20. 【转】通过blob获取图像并显示

热门文章

  1. DPDK 16.04/16.11.2 默认tx offload是关闭的引起tx vlan offload无效
  2. SVN入门使用
  3. 5月17 利用AJAX查询数据库
  4. 【Oracle】【5】主键、外键管理
  5. CF-877E-线段树+哈希
  6. SpringBoot利用注解@Value获取properties属性为null
  7. TOYS
  8. 二十二、Spring MVC与Structs2的区别总结
  9. Python内置模块之time、random、hashlib、OS、sys、UUID模块
  10. kaggle信用卡欺诈看异常检测算法——无监督的方法包括: 基于统计的技术,如BACON *离群检测 多变量异常值检测 基于聚类的技术;监督方法: 神经网络 SVM 逻辑回归