def _install_lzo_support_if_needed(self, params): hadoop_classpath_prefix = self._expand_hadoop_classpath_prefix(params.hadoop_classpath_prefix_template, params.config['configurations']['tez-site']) hadoop_lzo_dest_path = extract_path_component(hadoop_classpath_prefix, "hadoop-lzo-") if hadoop_lzo_dest_path: hadoop_lzo_file = os.path.split(hadoop_lzo_dest_path)[1] config = Script.get_config() file_url = urlparse.urljoin(config['hostLevelParams']['jdk_location'], hadoop_lzo_file) hadoop_lzo_dl_path = os.path.join(config["hostLevelParams"]["agentCacheDir"], hadoop_lzo_file) download_file(file_url, hadoop_lzo_dl_path) #This is for protection against configuration changes. It will infect every new destination with the lzo jar, # but since the classpath points to the jar directly we're getting away with it. if not os.path.exists(hadoop_lzo_dest_path): copy_file(hadoop_lzo_dl_path, hadoop_lzo_dest_path)