在java mapreduce作业中写入配置单元

r55awzrz  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(298)

我目前正在处理一个javamapreduce作业,它应该将数据输出到一个带方框的配置单元表。
我想到两种方法:
首先通过hcatalog直接写入hive。问题是,这种方法不支持写入带扣的配置单元表。因此,当使用带扣的配置单元表时,我需要首先写入非带扣的表,然后将其复制到带扣的表。
第二个选项是将输出写入文本文件,然后将此数据加载到配置单元中。
这里的最佳做法是什么?
哪种方法在处理大量数据时更有效(就内存和所用时间而言)?
如果我也可以使用无扣Hive表,哪种方法会更好?
谢谢!

zbdgwd5y

zbdgwd5y1#

对于非嵌套表,可以将mapreduce输出存储在表存储位置。那你就只需要跑了 MSCK REPAIR TABLE 使用新分区更新元数据。
hive的load命令实际上只是将数据复制到表存储位置。
此外,根据hive文档:
clustered by和sorted by创建命令不影响数据插入表的方式,只影响数据的读取方式。这意味着用户必须小心地正确插入数据,方法是指定reducer的数量等于bucket的数量,并在查询中使用cluster-by和sort-by命令。
所以您需要调整mapreduce输出以适应这些约束。

相关问题