# The list of Impalads must be provided as a comma separated list of either host:port # combination or just host. for impalad in split_and_strip(options.impalads): if len(impalad.split(":")) not in [1,2]: raise RuntimeError("Impalads must be of the form host:port or host.") if __name__ == "__main__": logging.basicConfig(level=logging.INFO, format='[%(name)s]: %(message)s') # Check for badly formed user options. _validate_options() # Intialize the PluginRunner. plugin_runner = None if options.plugin_names: plugin_runner = PluginRunner(split_and_strip(options.plugin_names)) # Intialize workloads. workload_runners = list() query_name_filters = split_and_strip(options.query_names) # Create a workload config object. for workload_name, scale_factor in get_workload_scale_factor(): config = create_workload_config() workload = Workload(workload_name, query_name_filters=query_name_filters) workload_runners.append(WorkloadRunner(workload, scale_factor, config)) # Run all the workloads serially result_map = dict() exit_code = 0 for workload_runner in workload_runners: try:
# Only two client types are allowed (for now) assert options.client_type in ["beeswax", "jdbc"], "Invalid Client Type %s" % options.client_type # Check for duplicate workload/scale_factor combinations workloads = split_and_strip(options.workloads) assert len(set(workloads)) == len(workloads), "Duplicate workload/scale factor combinations are not allowed" if __name__ == "__main__": # Check for badly formed user options. _validate_options() # Intialize the PluginRunner. plugin_runner = None if options.plugin_names: plugin_runner = PluginRunner(split_and_strip(options.plugin_names)) # Intialize workloads. workload_runners = list() query_name_filters = split_and_strip(options.query_names) # Create a workload config object. for workload_name, scale_factor in get_workload_scale_factor(): config = create_workload_config() workload = Workload(workload_name, query_name_filters=query_name_filters) workload_runners.append(WorkloadRunner(workload, scale_factor, config)) # Run all the workloads serially result_map = dict() for workload_runner in workload_runners: try: if plugin_runner:
""" if options.use_kerberos: try: import sasl except ImportError: print 'The sasl module is needed to query a kerberized impalad' sys.exit(1) VALID_CLIENT_TYPES = ['beeswax', 'jdbc'] if options.client_type not in VALID_CLIENT_TYPES: LOG.error("Invalid client type %s" % options.client_type) sys.exit(1) plugin_runner = None if options.plugin_names: plugin_runner = PluginRunner(options.plugin_names.split(',')) # create a dictionary for the configuration. workload_config = vars(options) workload_config['plugin_runner'] = plugin_runner workload_runner = WorkloadRunner(**workload_config) failure_injector = None if options.failure_frequency > 0: # If not doing failure testing there is no reason to import these modules which # have additional dependencies. from common.failure_injector import FailureInjector from common.impala_cluster import ImpalaCluster cluster = ImpalaCluster(options.cm_server_host, options.cm_cluster_name,