开发者社区> 问答> 正文

yarn中同一个container的private和application资源下载时,把一个单线程的线程池改成多线程,这样会导致冲突吗?

同一个container的private和application资源下载时,是使用了一个单线程的线程池,我现在把这个线程池改成多线程,这样会导致冲突吗?如果改成了多线程,但是下载的文件的存放目录并没有改变,比如那个目录下原来是A.jar和B.jar这样的顺序,现在只是改变了两个文件的顺序呢?那如果同一个目录下 A.jar包有两个版本,它怎么判断取哪个版本呢?这个如果有两个版本的jar包,单线程下载时应该也会存在冲突的问题我能这样理解吗,成多线程并不会新创造出这种问题,如果多线程有这种问题,单线程也有?那public类型资源,在多线程下载时,它怎么避免这种问题呢?

展开
收起
hbase小助手 2018-11-21 09:42:47 2277 0
1 条回答
写回答
取消 提交回答
  • 同一个container的private和application资源下载时,把单线程改成多线程的线程池,就要看你如果标示你的下载进度和下载资源情况。下载文件的存放目录不改变的话,应该没有影响classloader加载jar包的时候并不会判断jar包顺序。如果有两个版本的jar包jvm就很难判断了,尽量避免吧。


    同一个container的private和application资源下载时,是使用了一个单线程的线程池,把这个线程池改成多线程,就要看你如果标示你的下载进度和下载资源情况。但是下载的文件的存放目录并没有改变,应该没有影响classloader加载jar包的时候并不会判断jar包顺序。如果有两个版本的jar包jvm就很难判断了,尽量避免吧。con下载jar包的时候会判断jar包的日期,会跟hdfs上的jar包日期比对,如果有更新会先删掉本地jar包从hdfs重新下载,所以,所以单线程不会出现jar冲突。

    2019-07-17 23:15:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
多IO线程优化版 立即下载
Docker on Yarn 微服务实践 立即下载
深度学习+大数据-TensorFlow on Yarn 立即下载