spark streaming中建立线程池的问题求助

mumumuyanyanyan 2017-11-12 04:53:15
为了避免延迟以及更快速的处理业务,在spark streaming中建立线程池,避免每条信息等待处理,代码大致如下
stream.foreachRDD(rdd=> {
rdd.foreachPartition { rddPartition => {
val client: Client = ESClient.getInstance.getClient
var num = Random.nextInt()
val threadPool: ExecutorService = Executors.newFixedThreadPool(5)
val confs = new Configuration()
rddPartition.foreach(x => {
threadPool.execute(new esThread(x._2, num, client, confs))
} ) } } } )

其中线程程序esThread主要对ES进行查询访问,然后把访问后的结果存入hdfs中,大概每个partition中平均有5条数据,所以线程池中设置为5,但是最后的hdfs中的文件的处理数据比实际少了很多,感觉有很多线程都没有执行,这是什么原因呢?

求大神分析指导一下,还有能否在spark streaming建立线程池?会有影响吗?还是只能提高vcores数,提高并发吗?
...全文
867 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mumumuyanyanyan 2017-11-14
  • 打赏
  • 举报
回复
哪位大神指导一下
mumumuyanyanyan 2017-11-12
  • 打赏
  • 举报
回复
在单机的情况下,不会出现数据丢失,但是集群的情况下,yarn-client的模式下,hdfs数据不见了,感觉线程好像没了

1,258

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧