加入收藏 | 设为首页 | 会员中心 | 我要投稿 柳州站长网 (https://www.0772zz.cn/)- 基础存储、数据迁移、云安全、数据计算、数据湖!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

码农带你揭穿少儿编程的骗局

发布时间:2021-01-27 13:25:59 所属栏目:外闻 来源:互联网
导读:3.3 MapTask 并行度 数据块:Block 是 HDFS 物理上把数据分成一块一块。 数据切片:数据切片只是在逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储。 切片核心注意点: 一个 Job 的 Map 阶段并行度又客户端提交Job时的切片数决定 每个 Split 切片

3.3 MapTask 并行度

数据块:Block 是 HDFS 物理上把数据分成一块一块。

数据切片:数据切片只是在逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储。

切片核心注意点:

  • 一个 Job 的 Map 阶段并行度又客户端提交Job时的切片数决定
  • 每个 Split 切片分配个 MapTask 并行实例处理
  • 模型情况下 切片大小 = BlockSize
  • 切片时不会考虑数据集整体大小,而是逐个针对每个文件单独切片的。

3.3.1 FileInputFormat 切片源码追踪

  • FileInputFormat切片源码追踪
  • 程序先找到目标数据存储目录
  • 开始遍历目录下每个文件。每个文件都会做如下操作
  • 获取切片大小,默认情况下切片大小 = blocksize
  • 开始切片,每次切片都要判断剩余部分是否大于块的1.1倍,不大于则就划分到一个切片。
  • 切片信息写到切片规划文件中。
  • 切片核心过程在getSplit方法完成。
  • InputSplit只是记录了切片元数据信息,如起始位置、长度跟所在节点列表等。

3.3.2 切片大小计算

SplitSize= Math.max(minSize,Math.min(maxSize,blockSize))

  • mapreduce.input.fileinputformat.split.minsize 默认 1
  • mapreduce.input.fileinputformat.split.maxsize 默认 Long.MAXValue
  • blockSize 默认128M
  • maxsize :该参数如果比blockSize小灰导致切片变小,且就等于配置的整个参数。
  • minsize :该参数如果调的比blockSize大,则切片大小会比blockSize还大。

3.3.3 切片举例
 

上述代码分别代表了三个Window的类型:

  • 子Window。需要从decorview中拿到token。
  • 系统Window。不需要token。
  • 应用Window。直接拿mAppToken,mAppToken是在setWindowManager方法中传进来的,也就是新建Window的时候就带进来了token。

然后在WMS中的addWindow方法会验证这个token,下次说到WMS的时候再看看。

所以这个token就是用来验证是否能够添加Window,可以理解为权限验证,其实也就是为了防止开发者乱用context创建window。

拥有token的context(比如Activity)就可以操作Window。没有token的上下文(比如Application)就不允许直接添加Window到屏幕(除了系统Window)。

Application中可以直接弹出Dialog吗?

这个问题其实跟上述问题相关:

  • 如果直接使用Application的上下文是不能创建Window的,而Dialog的Window等级属于子Window,必须依附与其他的父Window,所以必须传入Activity这种有window的上下文。
  • 那有没有其他办法可以在Application中弹出dialog呢?有,改成系统级Window:

(编辑:柳州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读