返回信息流楼主做大数据开发,我们组用hive做数据仓库存储。每天上游来大概几十万个同schema的大小约为每个10k的json文件。
我想把每天这几十万个JSON文件全存在每天的partition文件夹下,这样做合理吗?
也就是说,
year=2020/month=04/day=13/几十万个JSON
year=2020/month=04/day=14/几十万个JSON
year=2020/month=04/day=15/几十万个JSON
...以此类推
请问这样做会不会影响效率?
我是想反正到时候用spark.read.json(path)就全能一块读了
这是一条镜像帖。来源:北邮人论坛 / database / #11427同步于 2020/4/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
Hadoop上每个partition文件夹下存几十万个JSON文件是否妥当?
PMS
2020/4/15镜像同步30 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
你说的是每天的都存在一个文件?是指的都在同一路径的同一part下?这样hive跑mr的话读这一个文件等于只能用单机跑,写的时候reducer只有一个,读的时候mapper只有一个,当然非常影响效率。如果是spark,用的不多,感觉和hive类似。
完全不妥当!首先hdfs目录是存放在namenode的内存里面的,这么多小文件会带来很大的压力。而且hdfs以block为最小单位,就算一个文件10k也要占满整个block(典型值512M)。并且io的时候会频繁请求namenode,开销很大效率很低
【 在 PMS (PMS) 的大作中提到: 】
: 楼主做大数据开发,我们组用hive做数据仓库存储。每天上游来大概几十万个同schema的大小约为每个10k的json文件。
: 我想把每天这几十万个JSON文件全存在每天的partition文件夹下,这样做合理吗?
: 也就是说,
: ...................
绝对不妥当啊,亲身血泪经历,hdfs上小文件过多的话最后hdfs整个集群都崩了,namenode负载过重,和datanode时不时连接不上,集群都无法正常运行[ema1]