shark 原理和架构《一》
来源:互联网 发布:东方证券炒股软件 编辑:程序博客网 时间:2024/06/07 12:17
1.shark简介
shark在spark中的位置:
2.shark 运行架构
shark对hive架构进行了修改,主要修改了内存管理,物理执行计划,执行器;使其能够运行在spark上。
在使用shark的时候要注意版本与hive版本的对应(shark0.92对应hive0.11)
3.性能对比(shark vs hive)
4.Shark动态优化( Dy namic Quer y Optimi z ation )
– 未发生数据加载过程中的新数据,缺乏数据统计信息;结合普遍使用的 UDF 缺乏,就必须使 用动态优化查询。
– 允许基于在运行时收集的数据统计信息来动态优化查询计划
部分的DAG运行,收集partition大小 ,最频繁数据表,数据分布直方图等统计信息,基于这些统计的信息来调整后面执行计划。
在Map join中有一小部分数据访问比较频繁,就会把这小部分数据以广播的方式发送到需要的各个节点,优化计算。
对于上图中的Shufffle join 采取的是重新分区来进行优化。
基于列的压缩和存储( Columnar Memor y Store )
对于基础的数据类型是存储在JVM基础数据集数组里;对于复杂的数据类型是先序列化然后存储在bate数组里。
5.shark 的基本操作
./bin/shark 启动 shark 客户端
./bin/shark -e " SELECT *FR OM foo"
./bin/shark -i q ueries.h q l 执行文件中的语句并进入客户端
./bin/shark -f q ueries.h q l 执行文件中的语句 ,不进入客户端
./bin/shark -H 查看shark的帮助信息
sharkserver (允许多个客户端连入shark)
– ./bin/shark – service sharkserver < port >
– ./bin/shark -h < server-host > -p < server-port >
同 hive 的操作,但要注意所兼容的版本
缓存表
– CREATE TA BLE ... T BL P R OPERTIES ( " shark.cache " = " true " ) AS SELECT ...
– CREATE TA BLE xxx _ cached AS SELECT ...
缓存分区表
– CREATE TA BLE srcpart _ cached (ke y int, value string) PARTITIONED BY (ke y part int);
– shark.cache.polic y= shark.memstore2.CacheAll P olic y| LR UCache Polic y| FIF OCache P olic y //指定缓存策略
– shark.cache.polic y .maxSi z e =100 //指定分区最大的数目
– 可以通过扩展 shark.memstore2.Cache P olic y 来实现自己的缓存策略
当遇到 shuffle data 的时候需要指定 reducer 的数量
– set mapred.reduce.tasks = xxx
可以使用 explain 看执行计划
0 0
- shark 原理和架构《一》
- spark和shark安装
- spark和shark
- MySQL架构和原理
- LuCI架构原理(一)
- spark架构原理(一)
- shark工作流学习(一)
- shark工作流学习(一)
- shark工作流学习(一)
- Enhydra Shark学习(一) Enhydra Shark 介 绍
- shark 和 Jbpl 的比较
- gsensor架构和原理分析
- gsensor架构和原理分析
- gsensor架构和原理分析
- gsensor架构和原理分析
- gsensor架构和原理分析
- gsensor架构和原理分析
- Hbase架构和实现原理
- WebView详解
- 加油,我的2015。
- js基础(3)
- 视频播放器的开源项目
- 联网加载图片,一个很原始,很古老的办法
- shark 原理和架构《一》
- Python 基础1
- Flume NG:Flume OG 区别对比
- jaxb解析xml关于处理list的注解
- Android 内存溢出解决方案(OOM) 整理总结
- UIView (GFExtension)扩展
- linux下scsi共享磁盘的简单搭建
- SAP 系统的消息类型分析 MESSAGE TYPE
- android 添加随意拖动的桌面悬浮窗口(续)