package test
import org.apache.spark._
import org.apache.spark.streaming._
/**
* @author LW
*/
object IPCount {
def main(args:Array[String]){
//接收一个本地文件夹目录参数
//SparkStreming 会监控指定文件夹,对于文件不会监控
val path=args(0)
// 这里我们创建一个带有4个本地线程的StreamingContext,并设置批处理间隔为5秒。
val conf = new SparkConf().setMaster("local[4]").setAppName("IPCount")
val ssc = new StreamingContext(conf, Seconds(5))
val lines = ssc.textFileStream(path)
// 对DStream进行转换,最终得到计算结果,因为取得是一行的第30个字段,用map而不是flatmap
val res = lines.map(_.split("\\|")(29)).map((_, 1)).reduceByKey(_ + _)
// 打印该DStream中每个RDD中的前十个元素
res.print()
ssc.start() // 开始计算
ssc.awaitTermination() // 等待计算终止
}
}
从eclipse 打包
执行:
spark-submit -class test.IPCount IPCount .jar file://home/test/data