Hive如何处理大量小文件

Hive如何处理大量小文件,第1张

1.动态分区插入数据的时候,会产生大量的小文件,从而导致map数量的暴增

2.数据源本身就包含有大量的小文件

3.reduce个数越多,生成的小文件也越多

1 从HIVE角度来看的话呢,小文件越多,map的个数也会越多,每一个map都会开启一个JVM虚拟机,每个虚拟机都要创建任务,执行任务,这些流程都会造成大量的资源浪费,严重影响性能

2 在HDFS中,每个小文件约占150byte,如果小文件过多则会占用大量的内存。这样namenode内存容量严重制约了集群的发展

4.1 使用Hadoop achieve把小文件进行归档

4.2 重建表,建表时减少reduce的数量

4.3 通过参数调节,设洞闭置map/reduce的数量

4.3.1设置兄悔map输入合并小文件的相关纳尘裂参数:

4.3.2 设置map输出和reduce输出进行合并的相关参数:

hive读取orc文件行数:避免全分区字段是扮首动态的,必须有至少一个分区字段是指定有值的。

Hive的insert语句能够从查询语句中获取数据,并同时将数据Load到目标表中御顷。现在假定有一个已有数据的表staged_employees(雇员信息全量表),所属国家cnty和所属州st是该表的两个属性,我们做个试验将该表中的数据查询出来插入到另一个表employe。

ENT:按ENTER键一下:

\^:代表CTRL键,如要按组合键如CTRL+S:\^S;(其他如此类推)。

\%:代表ALT键,如要按组合键如ALT+F:\%F;(其他如此类推)。

\{}:代表按下键盘上功能键,之于要什么功厅拆数能键就在{}中写,如要按F1键:\{F1};向下的箭头键:\{DOWN}(其他如此类推)。

\^{F4}:代表按下Ctrl+F4键。

*ML(684,120):代表按下鼠标左键,括号中的数字代表鼠标在屏幕上的坐标;(注:我们可以在主窗口把鼠标的位置放好,然后通过ALT+TAB键的 *** 作切换到DATALOAD的窗口按下*+M+L就可以比较精确地定位鼠标)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12199811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存