大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

记一次hadoop大数据导出

需求:导出一个月数据提供测试分析

港闸网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

实施:

直接hive -e “xxxxx”> testdata.txt

然后看输出信息,map%1 %2 %3...... %100,但是reduce一直是0%,等啊等,等了十几个小时,还是0%,最后杀掉进程,再试了几次,现象一样,可知每次等十几个小时,一转眼,两天了。

于是怀疑集群有问题,排查了好久,没发现问题。

又怀疑where条件有问题,折腾了半天还是一样。

后来加上了limit先看看有没有结果,有的话就证明语法没错;果然limit 10很快就出来了10条记录,语法正确。

又接着换了spark去提取,总是报buffer不足,加到原来10倍,还提示不足。

难道数据这么大?

准备count一下,等等等,一个月总共2亿8千万多条,mygod!!!我错了

于是先用hive导出一天的数据,等等等,重定性写文件就写了20分钟,我心想这得有多少啊,等写完了用wc -l  一看,800多万条,文件大小4G,哦哦哦,顿时明白了,不是集群问题,是因为数据太多reduce执行很慢。

最后,估算了每条约是600B,然后每天取1000条,连续取7天,最后文件大小约4MB

命令如下:

hive -e "set hive.cli.print.header=true;use dw;select * from aem where day ='2015-08-24' limit 1000" > aem_pg_8_24_30.txt

hive -e "use dw;select * from aem where day ='2015-08-25' limit 1000" >> aem_pg_8_24_30.txt

hive -e "use dw;select * from aem where day ='2015-08-26' limit 1000" >> aem_pg_8_24_30.txt

hive -e "use dw;select * from aem where day ='2015-08-27' limit 1000" >> aem_pg_8_24_30.txt

hive -e "use dw;select * from aem where day ='2015-08-28' limit 1000" >> aem_pg_8_24_30.txt

hive -e "use dw;select * from aem where day ='2015-08-29' limit 1000" >> aem_pg_8_24_30.txt

hive -e "use dw;select * from aem where day ='2015-08-30' limit 1000" >> aem_pg_8_24_30.txt

收获:

大数据处理的思路要稍微不同。首先估算数据量,这个很重要;然后确定导出方式,太大的话缩小颗粒度,多次导出。

思路很重要!思路很重要!思路很重要!


标题名称:记一次hadoop大数据导出
浏览地址:http://dzwzjz.com/article/jihojs.html
在线咨询
服务热线
服务热线:028-86922220
TOP