Currently Impala both starts a JVM and creates a Frontend in executor mode impalads:
The 3rd argument of is init_jvm. This is actually needed for some executor features, e.g. Hive UDFs and HBase.
The frontend code itself doesn't really seem to care about whether it serves as a coordinator.
It would be great to remove the Frontend object from executors completely, but this may be tricky as Java features used by the executor can have widespread dependencies.
The critical part is to avoid starting services that are both not needed and are problematic, e.g. connecting to HMS and Auth services. These can consume resource and cause errors if not configured well.
The executor only setting is only tested by custom_cluster test, so probably we'll need to extend those to ensure that HBase/Hive UDFs are not broken.