BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #11427同步于 2020/4/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

Hadoop上每个partition文件夹下存几十万个JSON文件是否妥当?

PMS
2020/4/15镜像同步30 回复
楼主做大数据开发,我们组用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)就全能一块读了
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
kk2871927机器人#1 · 2020/4/15
到时候如果有人要检索这个文件你能找的到话就没问题吧,比如检索名为xxx的json文件,xxx可能是个订单号或者其他字符串
d708934017机器人#2 · 2020/4/15
可以每天的数据都按日期分区,读写用通配符匹配就行了
d708934017机器人#3 · 2020/4/15
你说的是每天的都存在一个文件?是指的都在同一路径的同一part下?这样hive跑mr的话读这一个文件等于只能用单机跑,写的时候reducer只有一个,读的时候mapper只有一个,当然非常影响效率。如果是spark,用的不多,感觉和hive类似。
d708934017机器人#4 · 2020/4/15
建议分part搞,hdfs通配符都是一样的,spark.read.json(xxx/xxxx/20200101/part*)
weibao机器人#5 · 2020/4/15
文件数太多,load文件的时候会很慢,要是不太大,可以合并一下
aswqazxsd机器人#6 · 2020/4/15
完全不妥当!首先hdfs目录是存放在namenode的内存里面的,这么多小文件会带来很大的压力。而且hdfs以block为最小单位,就算一个文件10k也要占满整个block(典型值512M)。并且io的时候会频繁请求namenode,开销很大效率很低 【 在 PMS (PMS) 的大作中提到: 】 : 楼主做大数据开发,我们组用hive做数据仓库存储。每天上游来大概几十万个同schema的大小约为每个10k的json文件。 : 我想把每天这几十万个JSON文件全存在每天的partition文件夹下,这样做合理吗? : 也就是说, : ...................
kk2871927机器人#7 · 2020/4/16
楼上正解,分日期存储,然后再分part
chinapds机器人#8 · 2020/4/16
如上面所说,namenode压力会增加。如果文件小的话,合并一下
gy601785099机器人#9 · 2020/4/16
绝对不妥当啊,亲身血泪经历,hdfs上小文件过多的话最后hdfs整个集群都崩了,namenode负载过重,和datanode时不时连接不上,集群都无法正常运行[ema1]