gpt4 book ai didi

hadoop - 配置单元插入覆盖目录仅覆盖生成文件的直接路径而不是目录

转载 作者:可可西里 更新时间:2023-11-01 15:58:29 25 4
gpt4 key购买 nike

-bash-4.1$ hadoop fs -ls /mytest/warehouse/mytable/

Found 4 items
-------------

- -rwxrwxrwx 3 myvm users 1163 2016-11-24 03:11 /mytest/warehouse/mytable/000000_0
- -rwxrwxrwx 3 myvm users 0 2016-11-24 03:09 /mytest/warehouse/mytable/000000_1
- -rwxrwxrwx 3 myvm users 0 2016-11-24 03:09 /mytest/warehouse/mytable/000000_2
- -rwxrwxrwx 3 myvm users 0 2016-11-24 03:09 /mytest/warehouse/mytable/000000_3

问题

insert overwrite directory "/mytest/warehouse/mytable" select * from my_table

以上命令只会覆盖它正在生成的文件:/mytest/warehouse/mytable/000000_0

我希望它删除路径下的所有文件并创建 1 个具有所需输出的文件。

在使用 hive-1.1.0-cdh5.5.1 之前它似乎工作正常。

最佳答案

它正在生成 4 个部分文件,因为您的 reducer 数量是 4 个。用于在输出中仅生成一个部分文件

您可以在您的配置单元终端中设置配置单元属性

set mapred.reduce.tasks=1

还有

reducer 的数量还取决于输入文件的大小

默认为 1GB(1000000000 字节)。您可以通过设置属性 hive.exec.reducers.bytes.per.reducer 来更改它:

要么通过更改 hive-site.xml

<property>
<name>hive.exec.reducers.bytes.per.reducer</name>
<value>1000000</value>
</property>

或使用集合

$ hive -e "set hive.exec.reducers.bytes.per.reducer=1000000"

关于hadoop - 配置单元插入覆盖目录仅覆盖生成文件的直接路径而不是目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40799002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com