В Hadoop HDFS, когда вы включаете ACL, я обнаружил, что максимальное количество записей ACL установлено на 32. Я получил исходный код здесь, в org / apache / hadoop / hdfs / server / namenode / AclTransformation.java:
частный статический финал int MAX_ENTRIES = 32;
На чем это основано? Какие соображения? Можем ли мы изменить 32 на другое большее число? Я хочу его перенастроить.
ACL были реализованы в HDFS-4685 - Реализация ACL в HDFS.
Насколько я могу судить, не было проектного решения в отношении предела 32. Однако, поскольку большинство систем Hadoop работают в Linux, и эта функция была основана на списках контроля доступа Linux, это значение, скорее всего, было заимствовано из ограничений на ext3, упомянутых в Списки контроля доступа POSIX в Linux Андреаса Грюнбахера.
Далее в статье упоминается, что наличие слишком большого количества ACL создает проблемы, а также показаны различия в производительности, возникающие при включении ACL (см. Раздел «Эффективность EA и ACL»).
Я не вижу никаких проблем, если вам удобно использовать Hadoop из ваших собственных jar-файлов.
Большое тебе спасибо. В некоторых особых ситуациях я хочу установить max_entries (текущий - 32) на 64. Поскольку для некоторых файлов и каталогов требуется более 32 записей acl (например, 40). Как вы думаете, возможно ли изменить константу MAX_ENTRIES на 64? (Если я выдержу снижение производительности.)