千家信息网

hive文件输出如何优化

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关hive文件输出如何优化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。开发ETL工具,抽取数据时遇到这样一个问题。hive执行sql语句MR执行只
千家信息网最后更新 2026年11月03日hive文件输出如何优化

这篇文章给大家分享的是有关hive文件输出如何优化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

开发ETL工具,抽取数据时遇到这样一个问题。hive执行sql语句MR执行只用了1分钟,相应的数据记录写到本地文件中间有十多分钟的时间都在写文件。细致的研究了一下hive导出文件的方式有两种方式:

第一种:大家最常用的,最后结果是生成一个大文件。操作方便。因为是单行写文件,CPU,IO浪费严重。

hive -e "use dw;select detail.siid siid, si.basic_class1_id, si.basic_class1_name, si.basic_class2_id, si.basic_class2_name, si.classify, si.bi_name, city_id, city.name city_name, operate_area, object_id, operate_type, operate_type_text, instock_amount, instock_price, instock_total, outstock_amount, outstock_price, outstock_total, stock_amount, stock_cost, stock_total, sale_price, sale_total, profit_total, operate_origin_amount, operate_origin_price, from_unixtime(operate_time,'yyyyMMdd HH:mm:ss'), if(delivery_datekey is null,0,delivery_datekey), financial_origin_adjustment, warehouse_origin_adjustment from dw.dw_wms_operate_flow_detail_v2 detail left join dw.dw_goods_standard_item si on detail.siid=si.id left join dim.dim_city city on city.id=detail.city_id where delivery_datekey>=20151213" > /home/meicai/test/data.txt

第二种方式:INSERT OVERWRITE LOCAL DIRECTORY '/home/meicai/test' row format delimited FIELDS TERMINATED BY '\t' 在hive中指定文件后。由mapper或者reduce来写文件。多线程并发写文件,结果为多分文件。充分利用CPU和IO等资源。

hive -e "use dw;INSERT OVERWRITE LOCAL DIRECTORY '/home/meicai/test' row format delimited FIELDS TERMINATED BY '\t' select detail.siid siid, si.basic_class1_id, si.basic_class1_name, si.basic_class2_id, si.basic_class2_name, si.classify, si.bi_name, city_id, city.name city_name, operate_area, object_id, operate_type, operate_type_text, instock_amount, instock_price, instock_total, outstock_amount, outstock_price, outstock_total, stock_amount, stock_cost, stock_total, sale_price, sale_total, profit_total, operate_origin_amount, operate_origin_price, from_unixtime(operate_time,'yyyyMMdd HH:mm:ss'), if(delivery_datekey is null,0,delivery_datekey), financial_origin_adjustment, warehouse_origin_adjustment from dw.dw_wms_operate_flow_detail_v2 detail left join dw.dw_goods_standard_item si on detail.siid=si.id left join dim.dim_city city on city.id=detail.city_id where delivery_datekey>=20151212"

通过测试第一种需要11分钟左右,第二种二十秒搞定。

对于第二种产生多个文件进行load到数据库或者做一次本地的文件合并

cat ./* | sed 's/NULL/\\N/g' > all.data (将文本中的NULL替换成\N,保障背mysql识别位空)。

或者循环load进数据库。

感谢各位的阅读!关于"hive文件输出如何优化"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

文件 数据 方式 输出 内容 数据库 更多 篇文章 结果 不错 实用 细致 中指 多个 工具 常用 文本 文章 时间 看吧 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡网 北京路客互联网科技有限公司 为想互联网科技怎么样 丰台科技园 互联网 深圳天众互联网科技公司 互联网养老 桔豆科技 互联网 科技服务平台 湖南洣水互联网科技有限公司扣款 深圳市运趣互联网科技有限公司 互联网大会黑科技排名 西安小鹰速贷互联网科技有限公司 佛山市拉法互联网科技有限公司 华中科技大学互联网的牛人 山东子淼互联网科技有限公司 上海创道互联网络科技有限公司 下一代互联网重大应用科技园 35岁以上互联网科技行业 马化腾互联网科技教学 互联网科技创业有什么好项目 六子台科技互联网展会 重生之互联网科技帝国 科技互联网公司装修 互联网最新的科技有限公司 深圳科技互联网 互联网科技排名 互联网系的金融科技公司 如何创新互联网科技 玉溪新华互联网科技好不好 明优互联网科技有限公司 众联互联网络科技
0