大数据之Hive:Hive数据倾斜问题及解决方案

1.数据倾斜原因:

① key分布不均匀
② 业务数据本身的特性
③ 建表时考虑不周
④ 某些SQL语句本身就有数据倾斜

2.解决方案:

  1. 设置参数
    set hive.map.aggr=true 这个配置项代表是否在map端进行聚合
  2. 如果数据量非常大时,group by 替换distinct;
    采用sum() group by的方式来替换count(distinct)完成计算。
    set hive.groupby.skwindata=true,决定 group by 操作是否支持倾斜数据 当选项设定为 true,生成的查询计划会有两个 MR Job;
  3. 当遇到一个大表和一个小表进行join操作时
    使用mapjoin 将小表加载到内存中
  4. 遇到需要进行join的但是关联字段有数据为空
    方法1:id为空的不参与关联,加where限制条件
    方法2:给空值分配随机的key值
  5. 不同数据类型关联产生数据倾斜
    方法:把数字类型转换成字符串类型
    如用户表user_id字段为int,log表中user_id字段既有string类型,又有int类型,当按照user_id进行量表join操作时,string类型的user_id,会放到一个reduce中,结果可能会造成数据倾斜。
select * from users a 
left outer join logs b
on a.user_id =cast(b.user_id as string)

6.控制空值分布
在生产环境中经常会遇到大量空置数据进入到一个reduce中去,最终导致数据倾斜。
解决方法:自定义分区,将空的值转换为字符串加随机数或纯随机数,将因空值而造成的倾斜的数据分到多个ruduce中;

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大数据实训是一门综合性实训课程,主要涉及到大数据的爬取、存储、分析和可视化。其中,Python是一种高级编程语言,被广泛应用于数据爬取、处理和分析的领域。 在课程中,我们会使用Python来编写爬虫程序,从股票相关的网站或API中获取股票数据。通过分析网站结构和数据接口,我们可以使用Python的各种库和框架来获取股票历史交易数据、实行情数据等。 一旦我们成功获取了股票数据,我们可以使用Hive这个大数据存储和分析工具来存储和处理这些数据。Hive是基于Hadoop平台的数据仓库工具,可以将结构化和半结构化的数据存储在分布式文件系统中,并使用类SQL语言进行查询和分析。 通过Hive,我们可以对爬取到的股票数据进行各种数据处理和分析操作,例如计算股价涨跌幅、交易量统计、计算股票均线指标等。Hive的强大功能和灵活性使得我们可以根据自己的需求和兴趣来进行数据分析,并从中发现有价值的股票市场信息。 为了更好地展示和传达我们的数据分析结果,课程中还会涉及到可视化工具。可视化是将数据以图表、图形等形式呈现出来,使得数据更具有直观性和易懂性。Python中有很多强大的可视化库和工具,例如Matplotlib、Seaborn和Plotly等,可以帮助我们将股票数据进行可视化展示。 总而言之,大数据实训课程中通过使用Python进行股票数据的爬取、使用Hive进行数据分析和使用可视化工具展示结果,帮助我们掌握大数据处理和分析的技能,同也使我们能够更好地理解和利用股票市场的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值