Yep, this is my confusion. I was thinking that initOnMaster was executed on each slave. This code all needs to move to initOnSlave. It is basically trying to generate one words array that is shared by all of the nodes in the cluster.

About your earlier comment, this stage is meant to be used by any benchmark that needs data in the cache. I am planning to use it for distributed execution and MR tests, but I am trying to make it general purpose. Are you saying that the String objects are stored as UTF-8 in the cache or something else?