更新时间:2024-12-10 GMT+08:00
结束BulkLoad客户端程序导致作业执行失败
问题
执行BulkLoad程序导入数据时,如果结束客户端程序,为什么有时会导致已提交的作业执行失败?
回答
BulkLoad程序在客户端启动时会生成一个partitioner文件,用于划分Map任务数据输入的范围。
此文件在BulkLoad客户端退出时会被自动删除。
一般来说当所有Map任务都启动运行以后,退出BulkLoad客户端也不会导致已提交的作业失败。但由于Map任务存在重试机制和推测执行机制;Reduce任务下载一个已运行完成的Map任务的数据失败次数过多时,Map任务也会被重新执行。
如果此时BulkLoad客户端已经退出,则重试的Map任务会因为找不到partitioner文件而执行失败,导致作业执行失败。
因此,强烈建议BulkLoad程序在数据导入期间不要结束客户端程序。
父主题: HBase常见问题