项目中使用spark-sql来作ETL,遇到两个问题,记录一下。
问题1:
spark-sql –master yarn –hiveconf load_date=`date –d ..` -e ‘insert overwrite table tbl(.) select distinct * from tbl”
在hdfs上这个表所在的目录下面会产生很多的类似.hive-staging-yyyy-MM-dd…的文件
问题2:
spark-sql生成的目录特别多,尤其是我使用spark-streaming结合spark-sql来做实时数据收集与合并的时候
解决方法:
1。参考网络。配置hive.exec.stagingdir到一个特定目录,然后定时作业进行清除,请清除昨天的数据,今天的数据可能正在使用。
2。配置hive的作业项,然后使用hive进行合并小文件
set hive.merge.mapredfiles=true;
set hive.merge.size.pertask=128000000;
set hive.merge.smallfiels.avgsize=16000000;