大数据踩坑点

1、kafka json消息拆U,为了防止出现主键变化的情况,update数据是一条before一条after。如果只拿after的数据去更新,此时,主键变化了,则无法删除,所有应该用before的数据去做删除,再用after的数据去新增
2、小文件合并,因为hdfs底层存储是以block块为单位,默认为128M,如果过多的小文件不满128m,在做map的时候每一个文件就需要生成一个映射,过多的小文件会生成很多映射,会导致程序运行缓慢。将小文件合并成接近128m大小的文件,会大大增加map的效率。
3、字段分隔符,推荐使用" || "作为分隔符,如果使用"|",则容易对中文字段造成干扰
4、HDFS租约:hdfs同一个文件在被执行写入操作时会对该客户端赋予租约,如果程序在写入hdfs文件时发生中断,该租约还在存续,再想写入就会写不进。解决方法:1、写入程序发生意外中断时,要及时释放租约。2、或者每次写入写入到不同的文件,绕开租约问题。实际使用前者,hdfs shell命令为:hdfs debug recoverLease -retries 3 -path /...
5、spark-sql当前处理完表后尤其是表结构,需要refresh,否则再次查询会报错。spark-sql在查询时,有时候要设置一个参数limitscan=false;否则查询后加了limit会报权限错误
6、hdfs的facl权限控制着表的文件权限,这个facl权限又受mask权限影响,如果facl权限小于组或者用户权限,那以facl权限为生效,
7、在spark-sql中     create table xxx as select * from xxx;   这种方式建出来的表,默认存储方式是txt,正确的方式应该使用 create table like,然后将数据insert 进去
8、视图的优缺点
9、删除外表不会删除数据,只是删除了外表的源数据,如果将外表删表重建后,外表数据还指向之前的分区,那么此时查询是查不到数据的,必须msck repair才能恢复分区数据
10、parquet格式的在hive中移动字段,数据文件确实会移动,但是ORC格式的表,移动字段只会将修改表结构,实际底层文件不会移动,会造成查询列错位
11、spark-sql:用between and 代替in,也不要用 <>   和  like   都是全表扫描
12、华为集群采坑:在表路径下会生成_temporary临时文件,有着临时文件,用户访问就会报权限丢失
13、实时程序落地和转发程序拆分,原先先落地,再转发,等待落地完才能转发;后拆分为两套程序,分别消费topic,落地和转发分开,性能提升50%;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值