refactor ByteUtils

Currently, in HadoopReader it creates new instance of ByteUtils for every line in input file. It is better to change to static function call, thus fewer object created