当前位置: 首页 > news >正文

无锡做网站公司多少钱旅游网站建设项目报告论文

无锡做网站公司多少钱,旅游网站建设项目报告论文,瑞昌建站公司,企业网站制作素材Hive 数据倾斜优化 在使用 Hive 进行大数据处理时#xff0c;数据倾斜是一个常见的问题。本文将详细介绍数据倾斜的概念、表现、常见场景及其解决方案。 1. 什么是数据倾斜#xff1f; 数据倾斜是指由于数据分布不均匀#xff0c;导致大量数据集中到某个节点或任务中数据倾斜是一个常见的问题。本文将详细介绍数据倾斜的概念、表现、常见场景及其解决方案。 1. 什么是数据倾斜 数据倾斜是指由于数据分布不均匀导致大量数据集中到某个节点或任务中造成处理延迟和性能瓶颈。 2. 数据倾斜的表现 作业进度长时间维持在接近完成状态99%或100%。查看任务监控页面时发现少量 reduce 任务未完成因为其处理的数据量远超其他任务。 3. 容易产生数据倾斜的场景 3.1 Join 操作 小表与大表 join 时key 分布不均。大表与大表 join 时分桶字段存在大量空值。 3.2 Group By 操作不和聚集函数搭配使用的时候 原因 当某些 key 的值在数据集中频繁出现时相关的数据将集中到一个或少数的 Reducer 上进行处理。这些 Reducer 处理的数据量过大导致运行时间长。 表现 某个 Reducer 的任务处理时间明显长于其他 Reducer。资源分配不均匀影响整体作业效率。 方法 调整数据分布通过添加随机数等方法重新分配数据减少单个 key 负载。增加 Reducer 数量合理增加 Reducer 来分散压力。 3.3 Count Distinct 操作 原因 需要对唯一值进行计算因为 count(distinct)是按 group by字段分组按 distinct字段排序。如果某个字段的值分布不均匀某些值过于集中会导致相关 Reducer 负载过重。 表现 处理时间长可能导致内存溢出。某些任务比其他任务需要更多的时间来完成。 解决方法 近似计算使用 approx_distinct 或其他近似方法减少计算复杂度。预聚合在进行去重前先对数据进行预处理减少数据量。 4. 数据倾斜的原因 Key 分布不均匀 在分组Group By或连接Join中某些 key 的数据远多于其他 key。 业务数据特性 某些特定值如默认值、异常值出现频率过高。 建表时考虑不周 未合理设计表的分区或分桶策略。 SQL 语句特性 特定 SQL 语句在逻辑上引起数据集中。 5. 解决数据倾斜的常用方案 1. JOIN优化 1空值产生的数据倾斜 场景说明日志中的 user_id 丢失导致与用户表关联时出现倾斜。解决方案 方案1不参与关联 SELECT * FROM log a JOIN user b ON a.user_id IS NOT NULL AND a.user_id b.user_id UNION ALL SELECT * FROM log c WHERE c.user_id IS NULL;方案2赋予空值新 key 值 SELECT * FROM log a LEFT OUTER JOIN user b ON CASE WHEN a.user_id IS NULL THEN CONCAT(hive, RAND()) ELSE a.user_id END b.user_id;总结方案2效率更高通过随机字符串分散空值数据。 2不同数据类型关联产生的数据倾斜 场景说明user 表中的 user_id 为 intlog 表中为 string。 解决方案统一数据类型 SELECT * FROM user a LEFT OUTER JOIN log b ON b.user_id CAST(a.user_id AS STRING);3大小表关联查询产生的数据倾斜 场景说明使用 map join 解决小表关联大表的倾斜问题。 解决方案 使用 map join 在内存中处理小表避免 reduce 阶段 SELECT /* MAPJOIN(b) */ a.id, b.name FROM large_table a JOIN small_table b ON a.id b.id;Hive 中自动开启 map join 优化SET hive.auto.convert.jointrue; SET hive.mapjoin.smalltable.filesize25000000;大表关联将大表切分成小表再分别进行 map join。 小表不大不小 如果小表较大无法直接用 map join则采用如下策略 SELECT /* MAPJOIN(x) */ * FROM log a LEFT OUTER JOIN (SELECT /* MAPJOIN(c) */ d.*FROM (SELECT DISTINCT user_id FROM log) cJOIN users d ON c.user_id d.user_id ) x ON a.user_id x.user_id;总结根据具体场景选择适合的优化策略。 2. Map 阶段优化 使用 Combiner 在 Map 阶段聚合中间结果减少传输数据量。 MapJoin 优化 对小表进行 MapJoin在 Map 阶段完成连接。 SELECT /* MAPJOIN(small_table) */ ... FROM large_table JOIN small_table ON ...3. 增加 Reducer 个数 根据数据量合理调整 Reducer 的数量以分散负载。SET mapreduce.job.reduces num;4. 优化 Count Distinct 减少使用使用Count Distinct次数或使用 approx_distinct 等近似计算方法。 6. 其他 数据扩散 定义数据扩散指的是在执行某些操作如连接操作时数据量显著增加。例如当两个表进行连接时结果集的大小远远超过原始表的大小。影响会导致资源消耗增加处理时间变长甚至可能导致内存溢出。解决方法 优化连接条件确保只连接必需的数据。使用过滤条件提前减少数据量。 数据漂移 定义数据漂移通常指的是数据在不同时间段内的分布或特征发生了变化。例如由于时间延迟当天的数据可能在第二天被处理。影响数据分析结果可能不准确影响实时性。解决方法 设计合理的时间窗口确保数据在合适的时间范围内被处理。定期检查和调整数据处理策略以适应数据特征的变化。
http://www.hkea.cn/news/14519792/

相关文章:

  • 网站建设学习视频网络营销赚钱
  • 万链网站做的怎么样?百度seo服务方案
  • 个体户可以注册网站建设服务wordpress主题DUX大前端
  • 如何防止网站攻击wordpress使用七牛防止降权
  • 自己做的网站出现广告盘锦市建设银行网站
  • wordpress 站内信插件seo和sem是什么意思
  • 求职网站开发多少钱地方o2o同城网站源码
  • 坪山公司网站建设公司网站费用构成需要多少钱
  • 郴州网站建设案例网站开发维护公司经营范围
  • 课程设计代做网站推荐领优惠券的小网站怎么做
  • 软件开发工资一般多少钱一个月做关键词优化的公司
  • 北京公司模板网站专业做生鲜的网站
  • 承德网站建设报价浦东新区办营业执照哪里办
  • 微信公众号和网站建设的意义seo优化包括什么
  • 城市建设与管理网站新浪云sae免费wordpress网站
  • 礼品网站建设公司百度招聘
  • 专业公司网站建设服务公司免费wordpress资源
  • 搭建网站难吗企业网站建设介绍
  • 网站建设的公司哪家强网站开发语言有什么
  • 网站素材免费如何建设数据报表网站
  • 山西省轻工建设有限责网站海口发布公众号
  • 网站建设关健词优化网络公司怎么样网站后台设置网站地图
  • 美词网站建设社交网络服务网站
  • 做那个的网站网站建设哪家好公司
  • wordpress 多语言网站html5网站模板
  • 购物网站 后台模板唯尚广告联盟
  • 投资公司取名常州网站seo代理加盟
  • 惠州seo工作室太原关键词优化软件
  • 扬州做企业网站网站开发制作平台
  • 陕西做网站的公司沧州网站优化价格