-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
之前似乎工作正常。
答案 0 :(得分:0)
它生成4个零件文件,因为减速器的数量是4。仅用于在输出中生成一个零件文件
您可以在配置终端中设置配置单元属性
set mapred.reduce.tasks=1
也
减速器数量还取决于输入文件的大小
默认情况下为1GB(1000000000字节)。你可以通过设置属性hive.exec.reducers.bytes.per.reducer来改变它:
通过更改hive-site.xml
<property>
<name>hive.exec.reducers.bytes.per.reducer</name>
<value>1000000</value>
</property>
或使用set
$ hive -e&#34;设置hive.exec.reducers.bytes.per.reducer = 1000000&#34;